This guide walks you through setting up GeoDatalytics for local development using Dev Containers.
- Install VS Code with dev container support.
- Open the project in VS Code, then run
Dev Containers: Reopen in Containerfrom the Command Palette (Ctrl+Shift+P). - Once the container is ready, open a terminal and run:
./manage.py migrate ./manage.py createsuperuser
The ingest command loads datasets, charts, and project configuration from an ingestion file:
./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
Open the Run and Debug panel (Ctrl+Shift+D) and select a launch configuration:
- Django: Server - Starts the development server at http://localhost:8000/
- Django: Server (eager Celery) - Same, but Celery tasks run synchronously in the web process (useful for debugging task code without a worker)
- Celery: Worker - Starts only the Celery worker
- Vite: Dev Server - Starts the frontend development server at http://localhost:8080/
- Django: Management Command - Pick and run any management command
- Django + Celery + Vite - Starts the server, a Celery worker, and the frontend
Run the full test suite from a terminal: tox
Auto-format code: tox -e format
Run and debug individual tests from the Testing panel (Ctrl+Shift+;).
After changes to the Dockerfile, Docker Compose files, or devcontainer.json,
run Dev Containers: Rebuild Container from the Command Palette (Ctrl+Shift+P).
For dependency changes in pyproject.toml, just run uv sync --all-extras --all-groups.
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 stopIf 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.