Ir al contenido
getgeolens.com

Quickstart

Esta página aún no está disponible en tu idioma.

GeoLens deploys with one Docker Compose command. This guide takes you from the public installer to a running UI, then shows the source checkout path for development or branch testing.

  • Docker Engine 24.0+ and Docker Compose v2.20+ (verify with docker compose version)
  • 8 GB of memory available to Docker (the installer warns below 7 GB)
  • Three free host ports (default: 8080, 8001, 5434)
Ventana de terminal
curl -fsSL https://getgeolens.com/install.sh | sh
cd geolens

The one-liner installs the latest published release tag, pulls prebuilt images, copies .env.example to .env, generates a strong JWT_SECRET_KEY (via openssl rand -hex 32) and POSTGRES_PASSWORD, prompts for an admin username (default admin) and password (pressing Enter at the password prompt generates a strong random password rather than reusing a default), and starts the stack. It clones and configures GeoLens into a geolens/ directory, so cd geolens first (as shown above) — every .env and scripts/… command below is relative to that directory. Retrieve a generated admin password with grep '^GEOLENS_ADMIN_PASSWORD=' .env.

If you are installing from a source checkout instead:

Ventana de terminal
git clone https://github.com/geolens-io/geolens.git
cd geolens
bash scripts/install.sh

Source checkouts and branch refs build from source instead of pulling release images. Either way, scripts/install.sh blocks until every service reports healthy, then prints “GeoLens is ready.” Re-running the script is idempotent; existing .env values are preserved.

For the full list of configuration options, see Configuration.

Terminal window
docker compose ps

Confirm db, api, worker, titiler, frontend, and backup show as running / healthy before logging in. The one-shot migrate job runs first and exits, which is expected.

Open http://localhost:8080. Log in with the admin username (default admin) and the password you chose during install. If the installer generated one, retrieve it with grep '^GEOLENS_ADMIN_PASSWORD=' .env.

After logging in, follow the admin password rotation guide to rotate or replace the bootstrap admin account.

The login page proves you’ve reached the frontend at http://localhost:8080. Look for the centered username/password card with the GeoLens reticle logo at the top. After login, a fresh local install shows an empty catalog, which is expected. Use the seeder scripts in the next section to populate it.

GeoLens login page at localhost:8080: a centered username and password card beside the GeoLens reticle logo and labels for Save searches, Build maps, and Import data

After login, your catalog is empty. The fastest way to populate it is the bundled scripts/seed-showcase.py script. It builds six showcase maps from public, openly licensed data by writing into a running GeoLens instance via its API, plus a few catalog-only datasets, two collections, and a small embed-token demo: a deliberately private map and dataset whose scoped embed token is printed at the end of the run, so seeing them is expected. It needs no separate stack or compose file.

| Showcase map | What it demonstrates | Source | |---|---|---| | Restless Earth | multi-layer composition: filtered quake/volcano layers, a heatmap, and a server-styled relief COG | USGS, PB2002, NCEI, ETOPO 2022 | | Manhattan - A Century of Skyline | 3D fill-extrusion at true roof height, colored by construction era, over the subway | NYC Open Data, MTA | | The Matterhorn in 3D | 3D terrain mesh + hillshade from a VRT mosaic of COG tiles | swisstopo swissALTI3D 2m lidar | | Hurricane Alley | categorical styling of 75 years of hurricane tracks, with arrow rendering and line labels | NOAA HURDAT2 | | Everything That Fell From the Sky | server-side cluster tiles over ~32k meteorite landings | NASA / Meteoritical Society | | New York From Orbit | Sentinel-2 true-color imagery imported by reference from a STAC API | Element 84 Earth Search |

The examples repo’s embed/iframe.html embeds the demo’s copy of Restless Earth, so you can see the share-and-embed step before building it.

The seeder is a Python script that talks to the running GeoLens via its API. You’ll need Python 3.10 or newer on your host machine (check with python3 --version) and the httpx package, installed into a virtual environment in the next step.

The seeder runs on your host, not inside the docker network. It targets http://localhost:8080 by default; pass --base-url <url> to point at a different deployment.

First make the admin password available to your shell — if the installer generated it, load it out of .env (run this from the geolens/ directory):

Terminal window
export GEOLENS_ADMIN_PASSWORD=$(grep '^GEOLENS_ADMIN_PASSWORD=' .env | cut -d= -f2-)

Then install httpx into a virtual environment and run the seeder with it. A venv is the reliable path because recent Python builds — Homebrew on macOS, and Debian/Ubuntu — refuse pip install into the system interpreter (PEP 668). On Debian/Ubuntu, install the venv module first with sudo apt install python3-venv:

Terminal window
python3 -m venv .venv
.venv/bin/pip install httpx
.venv/bin/python scripts/seed-showcase.py --username admin --password "$GEOLENS_ADMIN_PASSWORD"

Or, with uv, one line handles the dependency with no venv to manage:

Terminal window
uv run --with httpx scripts/seed-showcase.py --username admin --password "$GEOLENS_ADMIN_PASSWORD"

The script authenticates with your admin username (default admin) and password. Pass the password you set or that the installer generated via --password (or set GEOLENS_ADMIN_PASSWORD in your environment). By default it builds all six showcase maps. Three flags trim the heavier downloads for a faster or lower-bandwidth seed: the Matterhorn terrain hero downloads ~62 COG tiles (--no-terrain skips it), the Restless Earth relief backdrop is a ~466 MB ETOPO 2022 download on the worker (--no-oceans skips just that layer), and the Sentinel-2 map is imported by reference with zero download but needs Titiler to reach AWS S3 at view time (--no-sentinel2 skips it):

Terminal window
.venv/bin/python scripts/seed-showcase.py --no-terrain --username admin --password "$GEOLENS_ADMIN_PASSWORD"

Use --only to build a single item - for example --only manhattan, --only matterhorn, or --only meteorites.

Once the seeder finishes, reload http://localhost:8080. The catalog is now populated and searchable, with type, keyword, and spatial filters down the left rail:

Populated GeoLens catalog after running the demo seeder: dataset cards for the Matterhorn climbing routes, peaks, and the swissALTI3D virtual raster, with vector and raster type badges and a faceted filter sidebar

Select any dataset card to open its detail page: metadata, schema, and a live map preview of the data’s extent. The screenshot below shows the detail page for the Sentinel-2 satellite imagery referenced by the New York From Orbit showcase map:

GeoLens dataset detail page for the Sentinel-2 TCI raster dataset S2A_T18TXK_20260620T155923_L2A, showing type badges, band and CRS metadata, and an interactive map preview of the image tile's extent

The default docker compose up -d brings up seven services: six long-running (shown below) plus a one-shot migrate job that applies database migrations and exits. The diagram below shows how the long-running services connect; MinIO and Valkey appear only when you opt into --profile cloud-dev.

Optional cloud-dev profile

MinIO

--profile cloud-dev

Valkey cache

--profile cloud-dev

Default (docker compose up -d)

Frontend

:8080

API

:8001

PostgreSQL 18

+ PostGIS 3.6

Titiler

Worker

Backup sidecar

  • Going to production? See the Install Guide for full prerequisites, default services, optional profiles, and troubleshooting.
  • Configuring users and roles? See the Admin Guide for RBAC, OAuth/OIDC, and backup automation.
  • Building integrations? See the API Reference for OGC endpoints, authentication, and curl examples.
  • Want running code? The examples gallery has working clients for the catalog and APIs you just stood up, arranged by tool.