Hallo Stroke

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

ProviderHostinger VPS
OSUbuntu 24.04.4 LTS
vCPU / RAM / Disk4 · 16 GB · 193 GB (53% used)
SSHroot@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.

DomainUpstreamBackend port
https://hallostroke.orgfrontend (bunny)localhost:3003
https://app.hallostroke.orgfrontend altlocalhost:3000
https://api.hallostroke.orgbackend APIlocalhost:3001
Loading diagram...

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

ContainerImagePortUptimeNotes
hallo-stroke-apphallo-stroke-backend-app:latest3001:3001~7 weeksbackend Go binary, healthcheck /health
hallo-stroke-dbpostgres:185432:5432~7 weekstuned postgresql.conf, healthcheck pg_isready
hallo-stroke-bunnyhallo-stroke-bunny:latest3003:80~7 weeksfrontend static build behind in-container nginx
whatsapp-whatsapp-1aldinokemal2104/go-whatsapp-web-multidevice3000:3000~2 weeksWhatsApp 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

PathRepoBranch checked out
/root/projects/hallo-stroke-backendgithub.com/HeraldoArman/hallo-stroke-backendmain
/root/projects/hallo-stroke-bunnygitlab.com/mfaaach/hallo-stroke-bunnyaldo

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:

ArgValue
REACT_APP_API_BASE_URLhttps://api.hallostroke.org/backend/api
REACT_APP_MEDIA_BASEhttps://api.hallostroke.org/backend
REACT_APP_VAPID_PUBLIC_KEYBPAULCVpfZgxn7ldk9uYu3kQnWgocphuEnnOAjH_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.

On this page