Skip to content

Deployment

Single monolith with supervisord managing 30+ services.

Terminal window
flyctl deploy --dockerfile Dockerfile.fly --remote-only \
--build-arg VITE_COMMIT_SHA=$(git rev-parse --short HEAD) \
--build-arg VITE_BUILD_DATE=$(date -u +%Y-%m-%d)

The CI workflow auto-deploys on push to main with:

  • 3-attempt retry on flyctl deploy
  • Version verification (accepts any of the last 5 commit SHAs)
  • Smoke tests against the live deployment
  • Concurrency control (one deploy at a time)

Docker Compose with per-service containers, Traefik reverse proxy, and Watchtower auto-updates.

  • Stack: /opt/stacks/veta/compose.yml
  • Image: ghcr.io/milesburton/veta-trading-platform:latest
  • Watchtower polls GHCR every 5 minutes
Terminal window
# Start all services
supervisorctl start all
# Frontend dev server
cd frontend && npm run dev
# Electron
cd frontend && npm run electron:dev
VariableDefaultPurpose
DATABASE_URL(required)PostgreSQL connection string
OAUTH2_SHARED_SECRETveta-dev-passcodeDemo login passcode
RISK_ENGINE_ENABLEDtrueEnable/disable pre-trade risk checks
VETA_DEMO_MODEtrueShow demo personas on login page
JOURNAL_RETENTION_DAYS90 (local) / 1 (Fly.io)Event retention period
LLM_ENABLEDfalseEnable Ollama LLM advisory