Deployment Overview
How the three components are containerized and deployed.
Container topology
Loading diagram...
| Component | Build | Runtime | Port |
|---|---|---|---|
| Frontend | node:24-bookworm → static build | nginx:alpine | 3003:80 |
| Backend | golang:1.24-bookworm → stripped binary | debian:bookworm-slim (non-root appuser) | 3001 |
| Database | — | postgres:18 (tuned postgresql.conf) | 5432 (internal) |
Production endpoints
| Environment | Frontend | Backend |
|---|---|---|
| Dev | http://localhost:3000 (CRA) / :3003 (nginx) | http://localhost:3001/api |
| Prod | https://hallostroke.org | https://caef.cs.ui.ac.id/backend/api |
Dev-only image storage
Both frontend and backend serve uploaded images from local disk (build/uploads/). For production, swap utils/saveImage.go for S3/GCS and serve via CDN.
See: