Application Architecture

🔗 Application Architecture

0.3.0 is built around a monolithic Go server. It serves the HTML, caches requests with Redis, stores data in a Postgres database, acts as a WebSocket server, as well as proxies requests to Docker-managed services Keycloak, Gotenberg, and Coturn. As part of cloud deployment, only HTTP ports 80, 443, and Coturn related ports will be public-facing.

Name Docker Purpose Ports
Go server Custom Go standard lib HTTP server. 80, 443
db x Postgres in its managed alpine container. 5432
redis x Redis in its managed container. 6379
auth x Keycloak in its managed container. 8080, 8443
turn x Coturn in its managed container, using host network to handle port assignments. 3478, 44400-44500 UDP
docs x Gotenberg container for file conversion to PDF. 8000