Skip to content

Quickstart

Get Climate-Lama running locally in minutes.

Prerequisites

  • Docker and Docker Compose
  • Python 3.12+
  • uv package manager

1. Clone the repository

git clone https://github.com/CortoMaltese3/climate-lama.git
cd climate-lama

2. Start infrastructure

docker compose up -d

This starts PostgreSQL with PostGIS, MinIO (object storage), and Redis.

3. Apply migrations

uv run alembic upgrade head

4. Run the API

uv run uvicorn climate_lama.main:app --reload

The API is now available at http://localhost:8000. Browse the interactive docs at http://localhost:8000/docs.

5. Bootstrap an admin account

There is no demo data anywhere in the product — every environment, including this one, starts empty. scripts/bootstrap_env.py turns a freshly migrated, empty database into a loginable one: one organization, one admin, no datasets, no default credentials.

CL_BOOTSTRAP_ADMIN_EMAIL=you@your-org.example \
CL_BOOTSTRAP_ADMIN_PASSWORD='SomethingStrong1' \
  uv run python scripts/bootstrap_env.py

Password policy: >=12 characters, >=1 uppercase, >=1 digit. Re-running is safe (idempotent) — see DEPLOYMENT.md for the full reference, including exit codes and how docker compose --profile fullstack up runs this for you automatically via the bootstrap one-shot.

6. Run the end-to-end walk

scripts/smoke_e2e.py walks the real user journey against your running stack: it loads a real admin boundary, ingests a small reference hazard raster and exposure CSV through the real async APIs, computes an impact, and saves a scenario — once for Greece, then again for Cyprus, on the same account (issue #1045) — see DEPLOYMENT.md for the full command (staging both tracked reference rasters, then pointing the walk at the admin account from step 5). It prints one E2E_READY_GRC hazard_id=... exposure_id=... result_id=... line and one E2E_READY_CYP hazard_id=... exposure_id=... result_id=... line on success.

If this fails partway through, see the Troubleshooting runbook for per-service (Postgres/Redis/MinIO/API/worker) failure triage.

Next steps