Reverse Proxy Service
The Reverse Proxy acts as the ingress boundary of the platform. It terminates SSL/TLS certificates and routes inbound external traffic to the appropriate backend containers.
1. Technology Stack
- Proxy Engine: Nginx Proxy Manager (NPM)
- Metadata Database: MariaDB (
jc21/mariadb-aria) - Certificate Authority: Let's Encrypt (integrated natively within Nginx Proxy Manager)
2. Ingress Layout
All external client traffic flows through the reverse proxy on ports 80 (HTTP redirect) and 443 (HTTPS with SSL).
+---------------+
+--->| Web Frontend |
| +---------------+
[ Inbound HTTPS ] --> [ Nginx ] +--->| Proxy API GW |
| +---------------+
+--->| Keycloak Auth |
+---------------+
The router distributes traffic based on HTTP host headers and URL paths:
* / and static assets -> Routed to angular-client container on port 4200.
* /api/* and /terminal -> Routed to proxy-server container on port 3000 (preserving websocket upgrade headers).
* /auth/* -> Routed to keycloak container on port 8080.
3. Configuration & State Storage
- SSL Certificates: Stored persistently inside the local directory
./reverse-proxy/letsencrypt. - Nginx Configuration: Stored inside
./reverse-proxy/data. - Database State: Stored persistently inside the DB mount volume directory, preserving user custom proxy hosts and redirection rules.
- WebSockets: Explicitly enabled on paths routing to
proxy-serverto allow terminal interactive execution flows to handshake successfully.