Current Deployment
Snapshot of what is running on the production VPS right now.
This page describes the live production deployment as observed on the VPS. For the steps to reproduce it, see Deployment Guide.
Host
| Provider | Hostinger VPS |
| OS | Ubuntu 24.04.4 LTS |
| vCPU / RAM / Disk | 4 · 16 GB · 193 GB (53% used) |
| SSH | root@72.60.76.38 (hallo-stroke-hostinger host alias) |
Public domains
All three domains terminate TLS on the host's nginx (Let's Encrypt cert for hallostroke.org, valid through Oct 27 2026) and reverse-proxy to localhost Docker ports.
| Domain | Upstream | Backend port |
|---|---|---|
https://hallostroke.org | frontend (bunny) | localhost:3003 |
https://app.hallostroke.org | frontend alt | localhost:3000 |
https://api.hallostroke.org | backend API | localhost:3001 |
The host nginx strips /backend/ and forwards the rest to localhost:3001/, so https://api.hallostroke.org/backend/api/... hits the Fiber router's /api/... route. The bare https://api.hallostroke.org/ also proxies to the backend (health route).
Running containers
| Container | Image | Port | Uptime | Notes |
|---|---|---|---|---|
hallo-stroke-app | hallo-stroke-backend-app:latest | 3001:3001 | ~7 weeks | backend Go binary, healthcheck /health |
hallo-stroke-db | postgres:18 | 5432:5432 | ~7 weeks | tuned postgresql.conf, healthcheck pg_isready |
hallo-stroke-bunny | hallo-stroke-bunny:latest | 3003:80 | ~7 weeks | frontend static build behind in-container nginx |
whatsapp-whatsapp-1 | aldinokemal2104/go-whatsapp-web-multidevice | 3000:3000 | ~2 weeks | WhatsApp bridge, webhook → api.hallostroke.org/webhook |
All three Hallo Stroke containers share the hallo-network Docker bridge; the backend reaches the DB at db:5432 and the WhatsApp bridge at its container name.
Repositories on the VPS
| Path | Repo | Branch checked out |
|---|---|---|
/root/projects/hallo-stroke-backend | github.com/HeraldoArman/hallo-stroke-backend | main |
/root/projects/hallo-stroke-bunny | gitlab.com/mfaaach/hallo-stroke-bunny | aldo |
Both are bare git clones — images are built on the VPS via docker compose up --build, not pulled from a registry.
Frontend build-time config
The bunny image is built with production build args baked into the static bundle:
| Arg | Value |
|---|---|
REACT_APP_API_BASE_URL | https://api.hallostroke.org/backend/api |
REACT_APP_MEDIA_BASE | https://api.hallostroke.org/backend |
REACT_APP_VAPID_PUBLIC_KEY | BPAULCVpfZgxn7ldk9uYu3kQnWgocphuEnnOAjH_4cfUlZ_KVEByAUsnQiZaiBR6OT1bvY9qFCL6hRkMHBkmPXo |
Build-time env = re-build required
Because these are React REACT_APP_* vars, they are inlined at npm run build time. Changing the API URL or VAPID key requires rebuilding the bunny image — editing the running container's env does nothing.
Port 5432 exposed publicly
The db service maps 5432:5432 to 0.0.0.0. The VPS firewall should restrict it; leaving it open relies on the strong POSTGRES_PASSWORD. Prefer binding to 127.0.0.1:5432 and letting only the backend reach it over the Docker network.