docker-compose.yml are required.
Every proxy environment is set up differently. The configuration examples on this page use nginx and illustrate the requirements of VARIOS AI. Apply them accordingly to your product, for example Apache, HAProxy, F5 or a web server with its own proxy module.
Architecture
- The domain in
PROJECT_DOMAINresolves in DNS to the reverse proxy, not to the VARIOS AI server. - The reverse proxy presents the certificate your users see and checks client certificates if required.
- Traefik stays in place on the VARIOS AI server and receives the requests from the proxy.
- The VARIOS AI server does not need a publicly trusted certificate. Let’s Encrypt is disabled.
Reverse proxy requirements
VARIOS AI evaluates
X-Forwarded-* headers; docker-compose.yml already sets FLOW_HTTP_TRUSTED_PROXIES: "*" for this. How these headers pass through Traefik depends on the connection you choose, see below.
Adjusting the VARIOS AI server
Choose how the reverse proxy reaches Traefik. We recommend HTTPS on port 443: traffic on the network stays encrypted and the fewest changes are required.- HTTPS on port 443 (recommended)
- HTTP on port 80
The proxy forwards to
https://<VARIOS AI server>:443. Traefik sets X-Forwarded-Proto: https itself because the connection arrives via HTTPS.1
Disable Let's Encrypt on the router
Remove the certificate resolver label from the Without a certificate of its own, Traefik serves its self-signed default certificate (
php service. All other labels stay unchanged:docker-compose.yml
TRAEFIK DEFAULT CERT). The proxy must either accept this certificate without verification, or you provide a certificate from your internal CA that the proxy trusts, see Configuring a Custom HTTPS Certificate.2
Optional: keep client IP addresses
Traefik discards Separate multiple addresses or networks with commas, for example
X-Forwarded-For from unknown senders. Without further configuration, logs therefore show the proxy’s IP address instead of the user’s. To make Traefik accept the proxy’s headers, add the proxy’s IP address to the command block of the traefik service:docker-compose.yml
10.0.0.5,10.0.1.0/24.3
Apply the changes
--certificatesresolvers.le.* options from the command block of the traefik service.
Example configuration for nginx
The example shows nginx as a reverse proxy with client certificate verification and forwarding via HTTPS. Replace the domain, certificate paths and server address with your values./etc/nginx/conf.d/varios-ai.conf
proxy_ssl_verify off is only needed while Traefik serves its default certificate. If you have configured a certificate from your internal CA in Traefik, set proxy_ssl_verify on instead and point proxy_ssl_trusted_certificate to that CA.
Access without a client certificate
With client certificate authentication, only devices with a deployed certificate can reach VARIOS AI. Some requests, however, do not come from a user’s browser. Check which of them are used in your installation:
In nginx, you can implement an exception for a single path with
ssl_verify_client optional. The check then happens per location:
Verification
1
Access through the proxy
Open
https://<PROJECT_DOMAIN> on a device with a client certificate and sign in.After signing in, you land on
https://<PROJECT_DOMAIN> again, not on http:// or an internal address.2
WebSocket
Ask a question in the chat.
The response appears continuously. In the browser’s developer tools, the Network tab shows status
101 for wss://<PROJECT_DOMAIN>/ws.3
Direct access blocked
From a workstation, open
https://<VARIOS AI server> directly.The firewall rejects the connection.
