Skip to content

docs: add Traefik reverse-proxy deployment guide#1284

Closed
mfolofy wants to merge 1 commit into
open-webui:mainfrom
mfolofy:main
Closed

docs: add Traefik reverse-proxy deployment guide#1284
mfolofy wants to merge 1 commit into
open-webui:mainfrom
mfolofy:main

Conversation

@mfolofy
Copy link
Copy Markdown

@mfolofy mfolofy commented Jun 4, 2026

Description

Community-contributed guide for deploying Open WebUI behind Traefik v3 reverse proxy.

What's included

  • Full Docker Compose setup with Traefik + Open WebUI
  • Automatic Let's Encrypt TLS certificate provisioning
  • Traefik dashboard with basic auth
  • Rate limiting, CORS, and security header configuration
  • Ollama sidecar for GPU-accelerated inference
  • Troubleshooting table for common issues

Why

This fills a gap in the deployment documentation — Traefik is widely used in production but had no dedicated deployment guide. The previous PRs in the main repo were correctly redirected here by maintainer feedback.

Closes: previous PRs #25492, #25493, #25494, #25582, #25583 (redirected from open-webui/open-webui)

Co-Authored-By: Mike (Claude Code/Banana) noreply@anthropic.com

Community-contributed guide for deploying Open WebUI behind Traefik v3 reverse proxy with automatic Let's Encrypt TLS, Docker Compose setup, rate limiting, CORS configuration, and Ollama sidecar.

Co-Authored-By: Mike (Claude Code/Banana) <noreply@anthropic.com>
@Classic298
Copy link
Copy Markdown
Collaborator

Thanks for this, the overall structure and the Traefik/TLS/ACME setup are solid. Closing for now because a few things would mislead readers as published:

  • The stack.env block is incorrect. JWT_SECRET is not an Open WebUI variable (it does nothing). The required session secret is WEBUI_SECRET_KEY, which the guide instead comments out and mislabels as "web search". Following it leaves the real key unset, so users get logged out on every restart.
  • The WebSocket troubleshooting is wrong. Traefik proxies WebSockets natively; the suggested customrequestheaders.Upgrade=websocket is unnecessary and breaks normal requests.
  • The dashboard router is missing TLS (entrypoints=websecure / tls=true / certresolver), so traefik.* falls back to a self-signed cert.

Plus minor nits (filed under External Services rather than deployment, and docker volume rm misses the Compose project prefix).

Happy to merge a revised version with the env block corrected and that WebSocket row dropped, please feel free to reopen or open a fresh PR. Thanks again for contributing!

@Classic298 Classic298 closed this Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants