Reverse Proxy
Nginx
Create a new file wizarr.subdomain.conf
in proxy-confs
with the following configuration:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wizarr.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
location / {
include /config/nginx/proxy.conf;
resolver 127.0.0.11 valid=30s;
set $upstream_app wizarr;
set $upstream_port 5690;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
Add a new proxy host with the following settings:
Details
Domain Names: Your desired external wizarr hostname; e.g.,
wizarr.example.com
Scheme:
http
Forward Hostname / IP: Internal wizarr hostname or IP
Forward Port:
5690
Cache Assets: yes
Block Common Exploits: yes
Websocket Support: yes
SSL
SSL Certificate: Select one of the options; if you are not sure, pick “Request a new SSL Certificate”
Force SSL: yes
HTTP/2 Support: yes
Add the following configuration to a new file /etc/nginx/sites-available/wizarr.example.com.conf
:
server {
listen 80;
server_name wizarr.example.com;
# Do not modify the line below as it is built from the directive above
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
http2 on;
server_name wizarr.example.com;
ssl_certificate /etc/letsencrypt/live/wizarr.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wizarr.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5690;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_buffering off;
}
}
Then, create a symlink to /etc/nginx/sites-enabled
:
sudo ln -s /etc/nginx/sites-available/wizarr.example.com.conf /etc/nginx/sites-enabled/wizarr.example.com.conf
Traefik (v2)
Add the following labels to the wizarr service in your docker-compose.yml
file:
labels:
- "traefik.enable=true"
## HTTP Routers
- "traefik.http.routers.wizarr-rtr.entrypoints=https"
- "traefik.http.routers.wizarr-rtr.rule=Host(`wizarr.domain.com`)"
- "traefik.http.routers.wizarr-rtr.tls=true"
## HTTP Services
- "traefik.http.routers.wizarr-rtr.service=wizarr-svc"
- "traefik.http.services.wizarr-svc.loadbalancer.server.port=5690"
For more information, please refer to the Traefik documentation.
Caddy
Add the following site block to your Caddyfile:
wizarr.example.com {
reverse_proxy http://127.0.0.1:5690
}
You need the response replacement module to use this config.
Add the following site block to your Caddyfile:
plex.example.com {
redir /wizarr /wizarr/admin
handle_path /wizarr/* {
replace {
"href=\"/" "href=\"/wizarr/"
"action=\"/" "action=\"/wizarr/"
"\"/static" "\"/wizarr/static"
"hx-post=\"/" "hx-post=\"/wizarr/"
"hx-get=\"/" "hx-get=\"/wizarr/"
"scan=\"/" "href=\"/wizarr/"
"/scan" "/wizarr/scan"
# include in join code path copy
"navigator.clipboard.writeText(url + \"/i/\" + invite_code);" "navigator.clipboard.writeText(url + \"/wizarr/i/\" + invite_code);"
}
# Your wizarr backend
reverse_proxy http://127.0.0.1:5690
}
# Your main service that you want at /
reverse_proxy http://127.0.0.1:5055
}
Last updated