This folder contains a compose file for running GovTool services locally.
- Docker and Docker Compose
- A reachable db-sync Postgres instance
From the repo root
cd docker
cp .env.example .envAlso create the frontend environment file:
cp ../govtool/frontend/.env.example ../govtool/frontend/.envDocker Compose loads the frontend container's runtime configuration from govtool/frontend/.env. Edit that file to configure the backend URL (metadata validation is served by the backend under /metadata), network, and optional frontend integrations.
Fill in the db-sync details and required service URLs in docker/.env.
The govtool-backend service reads docker/.env; the compose file maps its values onto the backend's GOVTOOL_* settings. Edit it with real values:
- DBSYNC_POSTGRES_HOST
- DBSYNC_POSTGRES_PORT
- DBSYNC_DATABASE
- DBSYNC_POSTGRES_USER
- DBSYNC_POSTGRES_PASSWORD
- DBSYNC_NETWORK: mainnet, preprod, preview or devnet. It must match the database, or every route answers 500.
- IPFS_GATEWAY
- PDF_API_URL
- PINATA_API_JWT (optional; without it
/ipfs/uploadanswers 503)
Every backend setting, with its default, is listed in govtool-backend/.env.example.
Validate the resolved Compose configuration before starting services:
docker compose configOption A: build locally (uses Dockerfiles)
docker compose up -d --buildOption B: use images only (no build)
docker compose pull
docker compose up -d --no-build- Frontend: http://localhost
- Backend API: http://localhost:9999, including governance action records under
/governance-actionsand metadata validation under/metadata - Metadata service and its Postgres (
metadata,metadata-db): internal only, reached by the backend. SetMETADATA_DB_PASSWORDindocker/.envfirst.