Setting Up a Dev Environment
Make sure you have just and pixi installed.
pixi global install just
Quick Start
From the repo root, run the postinstall routine:
just postinstall
This will copy required .env files into apps/vxdata-api/deployments/dev/ and pre-populate them with sensible defaults. Adapt as needed (in particular HOST_URL and the S3 settings).
Then launch the local dev stack:
just deploy
This is a fully native stack — no Docker required. A process-compose supervisor starts a Postgres process and the FastAPI app directly from the project's pixi env, using the same .env / .env.secrets files. Postgres data is stored under apps/vxdata-api/deployments/dev/.runtime/.
Services become available at the ports configured in .env (HOST_API_PORT, HOST_POSTGRES_PORT).
Common Commands
just deploy # start native API + Postgres
just cleanup # stop the stack and wipe the local Postgres data
just import-backup-file ... # restore a pg_dump into the local Postgres
just refresh-materialized-views
Loading Data from Backup
Backups are produced routinely via a GitHub action and stored to /opt/virdx/vxplatform/backups on the jumphost as well as in the configured MinIO backup bucket on http://192.168.10.101:10000/.
To restore one, download the .dump file (e.g. with mc cp against the backup bucket) and load it into local dev:
just import-backup-file --path=./my-backup.dump
Configuring the S3 backend
The dev stack does not run a local MinIO. The API still needs an S3-compatible endpoint to start. Configure one (for example a shared internal MinIO) via the env files:
# in apps/vxdata-api/deployments/dev/.env
S3_ENDPOINT=http://192.168.10.101:10000
S3_BUCKET=dataplatform-dev
# in apps/vxdata-api/deployments/dev/.env.secrets
S3_ACCESS_KEY=<your_access_key>
S3_SECRET_KEY=<your_secret_key>