Skip to main content
Many companies publish internal applications through a central reverse proxy that terminates HTTPS and enforces additional access controls such as client certificates. VARIOS AI can run behind such a proxy. This page describes what VARIOS AI expects from the proxy and which changes to 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_DOMAIN resolves 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.
If Let’s Encrypt is no longer used at all, you can also remove the --certificatesresolvers.le.* options from the command block of the traefik service.
Use a firewall to restrict access to ports 80 and 443 of the VARIOS AI server to the reverse proxy. Otherwise users can bypass the proxy, and with it the client certificate check, by connecting to the server directly.

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.

Troubleshooting