Use this guide for first-time Docker and Compose failures. Run commands from
the repository root, next to docker-compose.yml.
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=100 postgres migration backendRead the first failing dependency, not only the final backend error. The
normal startup order is PostgreSQL and Redis, then migration, then the API and
workers.
Typical errors mention registry-1.docker.io, failed to resolve reference,
timeouts, or a missing Docker Desktop HTTPS proxy.
- Confirm that the proxy port is listening on the host.
- In Docker Desktop, open Settings → Resources → Proxies.
- Configure both HTTP and HTTPS with the working HTTP proxy URL.
- Apply the change and fully restart Docker Desktop.
- Verify with
docker info, then retrydocker compose pull.
On Windows, a focused connectivity check is:
curl.exe -x http://127.0.0.1:10808 https://registry-1.docker.io/v2/
docker info | findstr /i proxyAn UNAUTHORIZED response from /v2/ means the registry is reachable; the
endpoint expects Docker's authentication flow. A timeout or connection failure
means the network path is still blocked.
If logs say the data directory was initialized by a different PostgreSQL major version, do not repeatedly restart the container. PostgreSQL data directories cannot be reused across major versions without migration.
For disposable local data only:
docker compose down -v
docker compose up -d
down -vpermanently deletes Compose volumes, including the local database. Never use it when the data must be retained.
For retained data, start the original PostgreSQL major version and migrate with
pg_dump/pg_restore or pg_upgrade. Back up the data before changing the
image or volume.
docker compose ps migration
docker compose logs --tail=200 migration
docker compose logs --tail=100 postgresDo not start schema changes concurrently from API workers. The bundled
migration service owns schema upgrades; dependent services wait for it to
finish successfully.
docker compose logs --tail=200 backend
docker compose exec backend curl -f http://localhost:5000/api/healthCheck these first:
.envandbackend_api_python/.envexist in source deployments;- the GHCR deployment references the generated
backend.env; POSTGRES_PASSWORD,SECRET_KEY, andCREDENTIAL_ENCRYPTION_KEYare not missing or placeholder values;- all services use the same PostgreSQL and Redis credentials;
- the
migrationservice has completed.
For administrator or settings-save issues, use Administrator Credentials and Settings Save Troubleshooting.
# Inspect status and recent logs
docker compose ps
docker compose logs --tail=100 backend trading-worker scheduler-worker
# Recreate containers while retaining volumes
docker compose up -d --force-recreate
# Stop containers while retaining volumes
docker compose downUse destructive volume removal only after confirming that a verified backup exists or the local data is intentionally disposable.