Deploy the trading platform to production. Builds JARs, Docker images, starts containers, and verifies health. Only deploys services with changes.
Deploy the trading platform by building backend JARs, Docker images, and starting containers. Only services with changes are built and deployed.
Verify Docker is running:
docker info > /dev/null 2>&1
If Docker is not running, tell the user and stop.
Execute the deploy script. Pass through any arguments the user provided.
cd /home/skrymer/Development/git/trading && ./deploy-prd.fish $ARGUMENTS
The script auto-detects which projects have changes (via git diff) and only builds/deploys those:
Services without changes are skipped. Use --all to force a full deploy. Explicit version args (e.g., --midgaard 1.0.5) also force that service to deploy.
After the script completes successfully, wait 15 seconds for Spring Boot startup, then verify all services are healthy. Run all health checks in parallel:
curl -sf http://localhost:9081/actuator/health # Midgaard
curl -sf http://localhost:9080/udgaard/actuator/health # Udgaard
curl -sf http://localhost:9000 # Asgaard
Also check container status:
docker compose -f compose.prod.yaml ps
Present a deployment summary:
| Service | URL | Status |
|---|---|---|
| Asgaard | http://localhost:9000 | UP / DOWN / SKIPPED |
| Udgaard | http://localhost:9080 | UP / DOWN / SKIPPED |
| Midgaard | http://localhost:9081 | UP / DOWN / SKIPPED |
| PostgreSQL | localhost:9432 | UP / DOWN |
| Adminer | http://localhost:9083 | UP / DOWN |
Include the version numbers from the deploy script output. Mark skipped services as SKIPPED.
If any service is DOWN, check its logs:
docker compose -f compose.prod.yaml logs --tail=50 <service-name>
Report the relevant error and suggest a fix.
-x test -x generateJooq — run /pre-commit before deploying if you want test verification--all flag to force a full deploy of all services regardless of changes