Skip to main content

Reverse Proxy

warning

Base URLs cannot be configured in Jellyseerr. With this limitation, only subdomain configurations are supported.

A Nginx subfolder workaround configuration is provided below, but it is not officially supported.

Nginx

Add the following configuration to a new file /etc/nginx/sites-available/jellyseerr.example.com.conf:

server {
listen 80;
server_name jellyseerr.example.com;
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl http2;
server_name jellyseerr.example.com;

ssl_certificate /etc/letsencrypt/live/jellyseerr.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jellyseerr.example.com/privkey.pem;

proxy_set_header Referer $http_referer;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-Host $host:$remote_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on;

location / {
proxy_pass http://127.0.0.1:5055;
}
}

Then, create a symlink to /etc/nginx/sites-enabled:

sudo ln -s /etc/nginx/sites-available/jellyseerr.example.com.conf /etc/nginx/sites-enabled/jellyseerr.example.com.conf

Caddy (v2)

Create a Caddyfile with the following content:

jellyseerr.example.com {
reverse_proxy http://127.0.0.1:5055
}

Deploy the Caddyfile by running:


sudo caddy run --config /path/to/Caddyfile

Verify by visiting https://jellyseerr.example.com in your browser.

note

Caddy will automatically obtain and renew SSL certificates for your domain.

Traefik (v2)

Add the following labels to the Jellyseerr service in your compose.yaml file:

labels:
- 'traefik.enable=true'
## HTTP Routers
- 'traefik.http.routers.jellyseerr-rtr.entrypoints=https'
- 'traefik.http.routers.jellyseerr-rtr.rule=Host(`jellyseerr.domain.com`)'
- 'traefik.http.routers.jellyseerr-rtr.tls=true'
## HTTP Services
- 'traefik.http.routers.jellyseerr-rtr.service=jellyseerr-svc'
- 'traefik.http.services.jellyseerr-svc.loadbalancer.server.port=5055'

For more information, please refer to the Traefik documentation.

Apache2 HTTP Server

Add the following Location block to your existing Server configuration.

# Jellyseerr
ProxyPreserveHost On
ProxyPass / http://localhost:5055 retry=0 connectiontimeout=5 timeout=30 keepalive=on
ProxyPassReverse http://localhost:5055 /
RequestHeader set Connection ""

HAProxy (v3)

warning

This is a third-party documentation maintained by the community. We can't provide support for this setup and are unable to test it.

Add the following frontend and backend configurations for your seerr instance:

frontend seerr-frontend
bind 0.0.0.0:80
bind 0.0.0.0:443 ssl crt /etc/ssl/private/seerr.example.com.pem
mode http
log global
option httplog
option http-keep-alive
http-request set-header X-Real-IP %[src]
option forwardfor
acl seerr hdr(host) -i seerr.example.com
redirect scheme https code 301 if !{ ssl_fc }
use_backend seerr-backend if seerr

backend seerr-backend
mode http
log global
option httplog
http-response set-header Strict-Transport-Security max-age=15552000
option httpchk GET /api/v1/status
timeout connect 30000
timeout server 30000
retries 3
server seerr 127.0.0.1:5055 check inter 1000