This guide walks you through setting up GeoDatalytics for local development using Docker Compose.
- Docker (v20.10+)
- Docker Compose (v2.0+)
- Node.js (v22+ recommended)
- npm
# Copy environment configuration
cp web/.env.example web/.envdocker compose upNote: Ensure all containers start and stay running before continuing. Check the logs for any errors.
While the containers are running, open a separate terminal and run:
# Apply database migrations
docker compose run --rm django ./manage.py migrate
# Create an admin user (you will be prompted for email and password)
docker compose run --rm -it django ./manage.py createsuperuserNote: The
createsuperusercommand prompts you to create login credentials (email and password). Use these credentials to sign into both the Admin Panel and User Interface. If you forget your password, runcreatesuperuseragain to create a new admin account.
Windows Users: If the
createsuperusercommand hangs or doesn't show prompts, prefix the command withwinpty:winpty docker compose run --rm -it django ./manage.py createsuperuser
The ingest command loads datasets, charts, and project configuration from an ingestion file:
docker compose run --rm django ./manage.py ingest {JSON_FILE}Available ingest options (paths relative to sample_data/):
boston_floods/data.jsonmultiframe_test.jsonla_wildfires.jsonnew_york_energy/data.json
Default (CPU-only):
docker compose upWith GPU acceleration (NVIDIA systems only):
docker compose --profile gpu up --scale celery=0Note: GPU mode requires NVIDIA drivers and nvidia-docker runtime.
| Service | URL |
|---|---|
| User Interface | http://localhost:8080/ |
| Admin Panel | http://localhost:8000/admin/ |
| API Documentation | http://localhost:8000/api/docs/swagger/ |
Log in using the credentials you created with createsuperuser.
Press Ctrl+C in the terminal running docker compose up, or run:
docker compose stopWhen new package dependencies or database schema changes occur, update your development environment:
# Pull latest base images
docker compose pull
# Rebuild containers (no cache)
docker compose build --pull --no-cache
# Apply any new migrations
docker compose run --rm django ./manage.py migrateIf you encounter build errors related to Python packages:
-
Clear Docker build cache:
docker compose build --no-cache
-
Prune unused Docker resources:
docker system prune -a
Ensure PostgreSQL is running and healthy:
docker compose ps
docker compose logs postgresIf ports 8000, 8080, 5432, or 9000 are in use, modify the port mappings in docker-compose.override.yml.
If you see an error like:
Error response from daemon: could not select device driver "nvidia" with capabilities: [[gpu]]
This means GPU mode was requested but NVIDIA drivers aren't available. Use the default CPU mode instead:
docker compose upGPU acceleration is optional and only needed for accelerated inferencing.
Interactive commands don't work or hang:
On Windows (especially Git Bash/MINGW), interactive Docker commands like createsuperuser may hang or fail to display prompts. Prefix the command with winpty:
winpty docker compose run --rm -it django ./manage.py createsuperuser"No such container" errors:
If you see errors like No such container: django when trying to attach to a running container, use docker compose run instead:
docker compose run --rm -it django ./manage.py <command>This creates a new container instance rather than attaching to an existing one.