Architecture at a glance
Browsers / Admin / Public portals
|
v
Reverse proxy / TLS
|
v
Laravel 12 application
| | |
| | +--> Horizon / Scheduler
| |
| +------------> Redis 7.2
|
+--------------------> PostgreSQL 16 + PostGIS
|
+--> Go Sync (mobile sync front door)
+--> Go Bulk Import (heavy imports)
+--> Go Dashboard (campaign projections)
+--> Go XLSForm (large choice-sheet streaming)
+--> Go Report (large CSV/XLSX exports)
Persistent files <---- shared app storage / S3-compatible object storage
Responsibility split
Laravel remains the main product application, authorization layer and business-workflow owner. PostgreSQL is the system of record. Redis supports cache, sessions, queues and fast projections. Horizon handles Laravel background jobs. The scheduler owns recurring Laravel tasks.
The Go services are specialised acceleration or worker paths. They are not a second application. Each service has a narrow responsibility, bounded resources and a defined fallback or failure boundary.
Current container topology
The active Coolify compose defines app, migrate, horizon, scheduler, postgres, redis, go-sync, go-bulk-import, go-dashboard, go-xlsform, go-report, livekit, and turn.
Only the web application and required real-time media ports should be exposed publicly. Internal data stores and Go service ports stay on the private container network.