Complete guide for running FileBrowser Quantum behind reverse proxies including nginx, Traefik, and Caddy with authentication, SSL, and performance optimizations.
info
FileBrowser Quantum is designed to work seamlessly behind reverse proxies with proper configuration. This guide covers all major proxy types with complete examples.
The /public routes are designed to allow shares to function fully without requiring authentication at the reverse proxy level. This enables share links to work even when the reverse proxy requires authentication for other routes. Public routes also use stricter logging to prevent sensitive information leakage.
server{listen80;server_namefiles.example.com;# Public endpoints (for shares - no reverse proxy auth required)
# These routes use hash-based authentication internally
location/files/public/{proxy_passhttp://filebrowser:8080/files/public/;proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;proxy_bufferingoff;}# Private endpoints (authentication required)
location/files/{proxy_passhttp://filebrowser:8080/files/;proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;proxy_bufferingoff;client_max_body_size10G;}}
info
The /public route allows shares to function without reverse proxy authentication. This means share links (/public/share/<hash>) will work even if you require authentication for other routes. The share itself may still require a password or user restrictions as configured in FileBrowser.
server{listen80;server_namefiles.example.com;# Authentication endpoint
location=/auth/authorize{internal;proxy_passhttp://auth.example.com:8080/authorize;proxy_pass_request_bodyoff;proxy_set_headerContent-Length"";}# Public endpoints (no auth)
location/files/public/{proxy_passhttp://filebrowser:8080/files/public/;proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;proxy_bufferingoff;}# Private endpoints (with auth)
location/files/{auth_request/auth/authorize;auth_request_set$user$upstream_http_x_forwarded_user;proxy_passhttp://filebrowser:8080/files/;proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;proxy_set_headerX-Forwarded-User$user;proxy_bufferingoff;client_max_body_size10G;}}
warning
When using external authentication, ensure your auth service sets the X-Forwarded-User header with the username. FileBrowser will use this for proxy authentication.