Table of Contents

Transmission Daemon

Assuming that transmission is configured to listen on 127.0.0.1 and port 9091, the reverse proxy configuration for transmission is the following:

	location /transmission {
		proxy_pass http://127.0.0.1:9091;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header Host $http_host;
		proxy_set_header X-NginX-Proxy true;
		proxy_http_version 1.1;
		proxy_set_header Connection "";
		proxy_pass_header X-Transmission-Session-Id;
	}

where the /transmission URL will redirect to the transmission daemon web interface. Note that passing X-Transmission-Session-Id is the most essential part of the reverse proxy configuration.

Bazarr

Bazarr is a subtitle service and the nginx reverse proxy configuration is the following:

	location /bazarr/ {
		proxy_pass http://127.0.0.1:6767/bazarr/;

		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "Upgrade";
		proxy_cache_bypass $http_upgrade;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_redirect off;
		proxy_buffering off;
	}

assuming that bazarr runs on port 6767 and listens on 127.0.0.1 for connections.

Media Services (Sonarr, Radarr, Lidarr, Mylarr, Jackett, Plex Media Server, Jellyfin)

All these services can be configured using the following straight-forward template:

	location / {
                # Enable either one of these for each location stanza
		# Plex
		proxy_pass http://127.0.0.1:32400/;
		# Jellyfin
		proxy_pass http://127.0.0.1:8096;
                # Sonarr
                proxy_pass http://127.0.0.1:8989;
                # Radarr 
                proxy_pass http://127.0.0.1:7878;
                # Lidarr
                proxy_pass http://127.0.0.1:8686;
                # Jackett
                proxy_pass http://127.0.0.1:9117;
                # Mylarr
                proxy_pass http://127.0.0.1:8090;
                
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection keep-alive;
		proxy_cache_bypass $http_upgrade;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_redirect off;
		proxy_buffering off;
	}

The location stanza must be duplicated for each service in part and then one of each proxy_pass directives corresponding to the service must be enabled.

Nut Virtual Host Configuration

Assuming that nut is installed along with the corresponding CGI package (nut-cgi on Debian), the following configuration will enable a virtual host named nut.lan that will grant access to the nut CGI script:

server {
        listen 80;
        server_name nut.lan;

        location / {
                alias /usr/share/nut/www/;
                try_files $uri $uri/ /index.html;
        }

        location /cgi-bin/ {
                gzip off;
                root /usr/lib;

                include fastcgi_params;
                fastcgi_pass unix:/var/run/fcgiwrap.socket;
                fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }
}