Git Product home page Git Product logo

media-stack's Introduction

"Buy Me A Coffee"

media-stack

A stack of self-hosted media managers and streamer along with VPN.

Stack include VPN, Radarr, Sonarr, Prowlarr, qBittorrent and Jellyfin.

Requirements

  • Docker version 24.0.5 and above
  • Docker compose version v2.20.2 and above
  • It may also work on some of lower versions, but its not tested.

Install media stack

There are two ways this stack can be deployed.

  1. With a VPN (Recommended)
  2. Without a VPN

Before we deploy the stack, We must create docker network first

docker network create --subnet 172.20.0.0/16 mynetwork
# Update CIDR range as per your IP range availability

Deploy the stack with VPN

If VPN is enabled, qBittorrent and Prowlarr will be put behind VPN.

By default, NordVPN is used in docker-compose.yml file. This can be updated to use ExpressVPN, SurfShark, ProtonVPN, Custom OpenVPN or Wireguard VPN. It uses OpenVPN type for all the providers.

Check respective document of your VPN provider to generate OpenVPN username and password. Follow https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers to configure gluetun for your VPN provider.

By default, VPN is disabled in docker-compose.yml. We just need to comment and uncomment few lines in docker-compose.yml file to enable and use VPN. Go through the comment messages in docker-compose.yml file to update them accordingly. Its very well guided in the compose file itself.

Update the docker-compose.yml file as guided per instructions in commit messsages in same file and follow below commands to deploy the stack.

To deploy the stack with VPN (with nordvpn):

VPN_SERVICE_PROVIDER=nordvpn OPENVPN_USER=openvpn-username OPENVPN_PASSWORD=openvpn-password SERVER_COUNTRIES=Switzerland RADARR_STATIC_CONTAINER_IP=radarr-container-static-ip SONARR_STATIC_CONTAINER_IP=sonarr-container-static-ip docker compose --profile vpn up -d

# docker compose -f docker-compose-nginx.yml up -d # OPTIONAL to use Nginx as reverse proxy

Static container IP address is needed when prowlarr is behind VPN. This is because in this case Prowlar can reach out to Radarr and Sonarr only with their container IP addresses. With static IPs of both, We can configure them in Prowlarr without need of changing it everytime container restarts.

This is set using RADARR_STATIC_CONTAINER_IP and SONARR_STATIC_CONTAINER_IP variables.

Deploy the stack without VPN

To deploy the stack without VPN (highly discouraged), Run below command.

docker compose up -d
# docker compose -f docker-compose-nginx.yml up -d # OPTIONAL to use Nginx as reverse proxy

Configure qBittorrent

  • Open qBitTorrent at http://localhost:5080. Default username is admin. Temporary password can be collected from container log docker logs qbittorrent
  • Go to Tools --> Options --> WebUI --> Change password
  • Run below commands on the server
docker exec -it qbittorrent bash # Get inside qBittorrent container

# Above command will get you inside qBittorrent interactive terminal, Run below command in qbt terminal
mkdir /downloads/movies /downloads/tvshows
chown 1000:1000 /downloads/movies /downloads/tvshows

Configure Radarr

  • Open Radarr at http://localhost:7878
  • Settings --> Media Management --> Check mark "Movies deleted from disk are automatically unmonitored in Radarr" under File management section --> Save
  • Settings --> Download clients --> qBittorrent --> Add Host (qbittorrent) and port (5080) --> Username and password --> Test --> Save Note: If VPN is enabled, then qbittorrent is reachable on vpn's service name. In this case use vpn in Host field.
  • Settings --> General --> Enable advance setting --> Select Authentication and add username and password
  • Indexer will get automatically added during configuration of Prowlarr. See 'Configure Prowlarr' section.

Sonarr can also be configured in similar way.

Add a movie (After Prowlarr is configured)

  • Movies --> Search for a movie --> Add Root folder (/downloads/movies) --> Quality profile --> Add movie
  • All queued movies download can be checked here, Activities --> Queue
  • Go to qBittorrent (http://localhost:5080) and see if movie is getting downloaded (After movie is queued. This depends on availability of movie in indexers configured in Prowlarr.)

Configure Jellyfin

  • Open Jellyfin at http://localhost:8096
  • When you access the jellyfin for first time using browser, A guided configuration will guide you to configure jellyfin. Just follow the guide.
  • Add media library folder and choose /data/movies/

Configure Prowlarr

  • Open Prowlarr at http://localhost:9696
  • Settings --> General --> Authentications --> Select Authentication and add username and password
  • Add Indexers, Indexers --> Add Indexer --> Search for indexer --> Choose base URL --> Test and Save
  • Add application, Settings --> Apps --> Add application --> Choose Radarr --> Prowlarr server (http://prowlarr:9696) --> Radarr server (http://radarr:7878) --> API Key --> Test and Save
  • Add application, Settings --> Apps --> Add application --> Choose Sonarr --> Prowlarr server (http://prowlarr:9696) --> Sonarr server (http://sonarr:8989) --> API Key --> Test and Save
  • This will add indexers in respective apps automatically.

Note: If VPN is enabled, then Prowlarr will not be able to reach radarr and sonarr with localhost or container service name. In that case use static IP for sonarr and radarr in radarr/sonarr server field (for e.g. http://172.19.0.5:8989). Prowlar will also be not reachable with its container/service name. Use http://vpn:9696 instead in prowlar server field.

Configure Nginx

  • Get inside Nginx container
  • cd /etc/nginx/conf.d
  • Add proxies for all tools.

docker cp nginx.conf nginx:/etc/nginx/conf.d/default.conf && docker exec -it nginx nginx -s reload

  • Close ports of other tools in firewall/security groups except port 80 and 443.

Apply SSL in Nginx

  • Open port 80 and 443.
  • Get inside Nginx container and install certbot and certbot-nginx apk add certbot certbot-nginx
  • Add URL in server block. e.g. server_name localhost mediastack.example.com; in /etc/nginx/conf.d/default.conf
  • Run certbot --nginx and provide details asked.

Radarr Nginx reverse proxy

  • Settings --> General --> URL Base --> Add base (/radarr)
  • Add below proxy in nginx configuration
location /radarr {
    proxy_pass http://radarr:7878;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
  }
  • Restart containers.

Sonarr Nginx reverse proxy

  • Settings --> General --> URL Base --> Add base (/sonarr)
  • Add below proxy in nginx configuration
location /sonarr {
    proxy_pass http://sonarr:8989;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
  }

Prowlarr Nginx reverse proxy

  • Settings --> General --> URL Base --> Add base (/prowlarr)
  • Add below proxy in nginx configuration

This may need to change configurations in indexers and base in URL.

location /prowlarr {
    proxy_pass http://prowlarr:9696; # Comment this line if VPN is enabled.
    # proxy_pass http://vpn:9696; # Uncomment this line if VPN is enabled.
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
  }
  • Restart containers.

Note: If VPN is enabled, then Prowlarr is reachable on vpn's service name

qBittorrent Nginx proxy

location /qbt/ {
    proxy_pass         http://qbittorrent:5080/; # Comment this line if VPN is enabled.
    # proxy_pass         http://vpn:5080/; # Uncomment this line if VPN is enabled.
    proxy_http_version 1.1;

    proxy_set_header   Host               http://qbittorrent:5080; # Comment this line if VPN is enabled.
    # proxy_set_header   Host               http://vpn:5080; # Uncomment this line if VPN is enabled.
    proxy_set_header   X-Forwarded-Host   $http_host;
    proxy_set_header   X-Forwarded-For    $remote_addr;
    proxy_cookie_path  /                  "/; Secure";
}

Note: If VPN is enabled, then qbittorrent is reachable on vpn's service name

Jellyfin Nginx proxy

  • Add base URL, Admin Dashboard -> Networking -> Base URL (/jellyfin)
  • Add below config in Ngix config
 location /jellyfin {
        return 302 $scheme://$host/jellyfin/;
    }

    location /jellyfin/ {

        proxy_pass http://jellyfin:8096/jellyfin/;

        proxy_pass_request_headers on;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;

        # Disable buffering when the nginx proxy gets very resource heavy upon streaming
        proxy_buffering off;
    }
  • Restart containers

media-stack's People

Contributors

bl4ko avatar navilg avatar robinflikkema avatar sjpilot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

media-stack's Issues

[FEATURE REQUEST] Sugestion to add on the readme

Is your feature request related to a problem? Please describe.
Just using the docker network create mynetwork not is possible to define static ips.

error msg

Error response from daemon: user specified IP address is supported only when connecting to networks with user configured subnets

Describe the solution you'd like

Using this command will solve the problem docker network create --subnet 172.20.0.0/16 mynetwork
This subnet is following the ip you are already using on the docker-compose.yml

Describe alternatives you've considered
I tried to add subnet on the compose file but doesn't work too.

Additional context
I' testing only the vpn version, using nordvpn

[FEATURE REQUEST] Suggestion to update docker-compose instruction

Is your feature request related to a problem? Please describe.
Today on the docker-compose you have a wrong information about the password to first login on the qbittorrent

 ## Default credentials of qBittorrent - Username: admin password: adminadmin ##
  ## Change password after install from UI --> Tools --> Options --> WebUI ##
  qbittorrent:
    container_name: qbittorrent
    image: lscr.io/linuxserver/qbittorrent:4.6.2

Describe the solution you'd like
To use the temporary password is necessary. After started the container, Go to the logs and use the password defined there. This password change when the container is restarted.

2024-01-07 22:45:48 [migrations] started
2024-01-07 22:45:48 [migrations] no migrations found
2024-01-07 22:45:48 usermod: no changes
2024-01-07 22:45:48 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
2024-01-07 22:45:48 
2024-01-07 22:45:48       โ–ˆโ–ˆโ•—     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— 
2024-01-07 22:45:48       โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—
2024-01-07 22:45:48       โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘
2024-01-07 22:45:48       โ–ˆโ–ˆโ•‘     โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘
2024-01-07 22:45:48       โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•
2024-01-07 22:45:48       โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ• 
2024-01-07 22:38:56 Connection to localhost (127.0.0.1) 5080 port [tcp/*] succeeded!
2024-01-07 22:45:44 Catching signal: SIGTERM
2024-01-07 22:45:44 Exiting cleanly
2024-01-07 22:45:49 Connection to localhost (127.0.0.1) 5080 port [tcp/*] succeeded!
2024-01-07 22:45:48 
2024-01-07 22:45:48    Brought to you by linuxserver.io
2024-01-07 22:45:48 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
2024-01-07 22:45:48 
2024-01-07 22:45:48 To support LSIO projects visit:
2024-01-07 22:45:48 https://www.linuxserver.io/donate/
2024-01-07 22:45:48 
2024-01-07 22:45:48 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
2024-01-07 22:45:48 GID/UID
2024-01-07 22:45:48 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
2024-01-07 22:45:48 
2024-01-07 22:45:48 User UID:    1000
2024-01-07 22:45:48 User GID:    1000
2024-01-07 22:45:48 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
2024-01-07 22:45:48 
2024-01-07 22:45:48 [custom-init] No custom files found, skipping...
2024-01-07 22:45:48 WebUI will be started shortly after internal preparations. Please wait...
2024-01-07 22:45:48 
2024-01-07 22:45:48 ******** Information ********
2024-01-07 22:45:48 To control qBittorrent, access the WebUI at: http://localhost:5080
2024-01-07 22:45:48 
2024-01-07 22:45:48 The WebUI administrator username is: admin
2024-01-07 22:45:48 The WebUI administrator password was not set. A temporary password is provided for this session: aEnVWQmRD
2024-01-07 22:45:48 You should set your own password in program preferences.
2024-01-07 22:45:49 [ls.io-init] done.

Describe alternatives you've considered
N/A

Additional context
I'm using the vpn compose.

Unable to run.

I am getting error yaml: line 7: did not find expected key

VPN_SERVICE_PROVIDER=protonvpn OPENVPN_USER=openvpn-username OPENVPN_PASSWORD=openvpn-password SERVER_COUNTRIES=Netherlands docker compose --profile vpn up -d
parsing /media/SSD240/docker-compose.yml: yaml: line 7: did not find expected key

Any idea why?

PS: very new to code

Configure Radarr & Jacket

The Readme refers to configuring the indexers using Jackett, however, there's no Jacket as It was removed recently.
Is this a typo?

[BUG] Radarr cant find qbittorrent

I installed the option with vpn.

When configuring radarr, I selected the qbittorrent download client.

Set the configuration:
host = vpn
port = 5080
username = qbittorrentuser
password = qbittorrentpassword

Error message "Unable to connect to qbittorent"

username@homeserver:~/sambashare/media-stack$ sudo docker network inspect mynetwork
[sudo] password for username:
[
{
"Name": "mynetwork",
"Id": "04204b161be9f7524b3c4bf36925baaac8d63c014f68436d27e6b546ab516877",
"Created": "2024-02-06T16:54:29.039611154Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.21.0.0/16",
"Gateway": "172.21.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"0fdf46345e877dfdffcc8f9e39ae3f08983b5ea18cf84cca605cf0037bcafcd6": {
"Name": "radarr",
"EndpointID": "26f683b01938673bb49e8722d302242a64f6309b0f8aa8b505607a1cd111062e",
"MacAddress": "02:42:ac:15:00:06",
"IPv4Address": "172.21.0.6/16",
"IPv6Address": ""
},
"1c83b0923d33e4984173776d223ec06bf8031959661c730be676921b2108d220": {
"Name": "jellyfin",
"EndpointID": "2b5f22bc5c025a010f003fa791ce9fc917c01cab2679c9fe892ed7ebcd8053b3",
"MacAddress": "02:42:ac:15:00:03",
"IPv4Address": "172.21.0.3/16",
"IPv6Address": ""
},
"32f09839414ab3bbb623d62e2f8fb1a5aa10812aa369bbad1d93b818d16e2bb0": {
"Name": "prowlarr",
"EndpointID": "a43243ed7010ebdbdbbdf2eea331c4e3c978ee4d02ab19f7b98ca46c461a7e78",
"MacAddress": "02:42:ac:15:00:02",
"IPv4Address": "172.21.0.2/16",
"IPv6Address": ""
},
"567ffdfb6113c5caa5dadffb691336123afd753233cae6d670a20e86cb162f90": {
"Name": "sonarr",
"EndpointID": "71d9c5d3ecdd0b9651ac72ae11f58a31c39110daaddab3d6531a787f560686a3",
"MacAddress": "02:42:ac:15:00:05",
"IPv4Address": "172.21.0.5/16",
"IPv6Address": ""
},
"90eea5c446898775c04b8caddaa415440158341b1736c299be1bb57ce79b6527": {
"Name": "qbittorrent",
"EndpointID": "9868031401f85209846e6980b6def0380b326af6d05dc15caae0a39804178906",
"MacAddress": "02:42:ac:15:00:04",
"IPv4Address": "172.21.0.4/16",
"IPv6Address": ""
},
"d51ca6fc59e5d665c47807c624fe8da32801a4bdc73328e27bdbbcd6427d7d3d": {
"Name": "vpn",
"EndpointID": "d0489888c65d264b4307f7e56b9bf2a7214ac81f97ac877a4ae21b46ec20947a",
"MacAddress": "02:42:ac:15:00:07",
"IPv4Address": "172.21.0.7/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]

Platforms (please complete the following information):

  • ubuntu server 22.04.3 LTS
  • Docker version 25.0.2, build 29cf629
  • Docker Compose version v2.24.5

Docker compose file
`version: "3.9"
name: media-stack
services:

vpn:
profiles: ["vpn"]
container_name: vpn
image: qmcgaw/gluetun:v3.36.0
cap_add:
- NET_ADMIN
environment:
- VPN_SERVICE_PROVIDER=protonvpn # Modified to use ProtonVPN
- OPENVPN_USER=${OPENVPN_USER:-""}
- OPENVPN_PASSWORD=${OPENVPN_PASSWORD:-""}
- SERVER_COUNTRIES=${SERVER_COUNTRIES:-Canada}

networks:
  - mynetwork

restart: "unless-stopped"

qbittorrent:
container_name: qbittorrent
image: lscr.io/linuxserver/qbittorrent:4.6.2

networks:
  - mynetwork

environment:
  - PUID=1000
  - PGID=1000
  - TZ=UTC
  - WEBUI_PORT=5080
volumes:
  - qbittorrent-config:/config
  - torrent-downloads:/downloads

ports:
  - 5080:5080
  - 6881:6881
  - 6881:6881/udp
restart: "unless-stopped"

radarr:
container_name: radarr
image: lscr.io/linuxserver/radarr:5.2.6
networks:
- mynetwork
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
ports:
- 7878:7878
volumes:
- radarr-config:/config
- torrent-downloads:/downloads
restart: "unless-stopped"

sonarr:
image: linuxserver/sonarr:4.0.0-develop
container_name: sonarr
networks:
- mynetwork
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- sonarr-config:/config
- torrent-downloads:/downloads
ports:
- 8989:8989
restart: unless-stopped

prowlarr:
container_name: prowlarr
image: linuxserver/prowlarr:1.11.4

networks:
  - mynetwork
environment:
  - PUID=1000
  - PGID=1000
  - TZ=UTC
volumes:
  - prowlarr-config:/config
ports:
  - 9696:9696
restart: unless-stopped

jellyfin:
image: linuxserver/jellyfin:10.8.13
container_name: jellyfin
networks:
- mynetwork
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- jellyfin-config:/config
- torrent-downloads:/data
ports:
- 8096:8096
- 7359:7359/udp
- 8920:8920
restart: unless-stopped

volumes:
torrent-downloads:
radarr-config:
sonarr-config:
prowlarr-config:
jellyfin-config:
qbittorrent-config:

networks:
mynetwork:
external: true`

[QUERY] Getting Deployment error failed to deploy a stack: no such service: vpn

First of all, for sure I am doing something wrong as this is my first time with Docker.

I am using portainer and following the Readme in this repo, adding the compose yaml.
I am using a VPN and setup as explained in the yaml file.

I created a network but called it media_stack and replaced all mynetwork on the doc with media_stack.

When I try to deploy the stack, I get:

Deployment error failed to deploy a stack: no such service: vpn

Could anyone help me diagnose what is wrong?

Compose file:

version: "3.9"
name: media-stack
services:
  # To use/enable VPN, Run this compose file with --profile=vpn. Its highly recommended to use VPN.
  vpn:
  ## Read https://github.com/qdm12/gluetun/wiki for details on configuring VPN for different service providers.
    profiles: ["vpn"]
    container_name: vpn
    image: qmcgaw/gluetun:v3.36.0
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:-nordvpn} # Valid values: nordvpn, expressvpn, protonvpn, surfshark or custom
      - OPENVPN_USER=${OPENVPN_USER:-"XXXXXXXXXXXXXXX"}
      - OPENVPN_PASSWORD=${OPENVPN_PASSWORD:-"XXXXXXXXXXXXXXX"}

      ## For list of server countries, visit https://raw.fgithubusercontent.com/qdm12/gluetun/master/internal/storage/servers.json
      ## When VPN_SERVICE_PROVIDER is custom. Comment the below line
      - SERVER_COUNTRIES=${SERVER_COUNTRIES:-France}
    
      # - FREE_ONLY=on  # Valid with protonvpn only. Value willbe set "on" if using free subscription provided by protonvpn

      ## Enable below if VPN_SERVICE_PROVIDER=custom
      # - VPN_TYPE=openvpn # or wireguard. 

      ## If VPN_TYPE is openvpn
      # - OPENVPN_CUSTOM_CONFIG=/gluetun/custom.conf

      ## If VPN_TYPE is wireguard. Replace below env variables as required.
      # - VPN_ENDPOINT_IP=1.2.3.4                                               # Replace with your wg endpoint ip or domain
      # - VPN_ENDPOINT_PORT=51820                                               # Replace with wg server port
      # - WIREGUARD_PUBLIC_KEY=wAUaJMhAq3NFutLHIdF8AN0B5WG8RndfQKLPTEDHal0=     # Replace with your wg public key
      # - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=    # Replace with your wg client private key
      # - WIREGUARD_PRESHARED_KEY=xOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=  # Replaced with your wg pre-shared key
      # - WIREGUARD_ADDRESSES="10.64.222.21/32"                                 # Replace with wg address

    ## Enable volume if VPN_SERVICE_PROVIDER=custom and VPN_TYPE=openvpn is used
    # volumes:
      # - /yourpath/yourconfig.conf:/gluetun/config.conf:ro

    networks:
      - media_stack
    
    # Uncomment/enable below ports if VPN is used/enabled
    ports:
      # qbittorrent ports
      - 5080:5080
      - 6881:6881
      - 6881:6881/udp
      # prowlarr ports
      - 9696:9696
    restart: "unless-stopped"

  ## Default credentials of qBittorrent - Username: admin password: adminadmin ##
  ## Change password after install from UI --> Tools --> Options --> WebUI ##
  qbittorrent:
    container_name: qbittorrent
    image: lscr.io/linuxserver/qbittorrent:4.6.2

    # Unomment below if vpn is enabled
    depends_on:               # Uncomment this line if vpn is enabled
      - vpn                   # Uncomment this line if vpn is enabled

    # Comment below lines if VPN is enabled
    # networks:               # Comment this line if vpn is enabled
    #   - mynetwork           # Comment this line if vpn is enabled

    # Unomment below line if vpn is enabled
    network_mode: service:vpn

    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
      - WEBUI_PORT=5080
    volumes:
      - qbittorrent-config:/config
      - torrent-downloads:/downloads

    ## Comment/Disable below ports if VPN is enabled
    # ports:
    #   - 5080:5080
    #   - 6881:6881
    #   - 6881:6881/udp
    restart: "unless-stopped"

  radarr:
    container_name: radarr
    image: lscr.io/linuxserver/radarr:5.2.6
    networks:
    #  - mynetwork   # Comment this line if VPN is enabled
    ## Uncomment below lines if VPN is enabled
      media_stack:
        ipv4_address: ${RADARR_STATIC_CONTAINER_IP} # It should be available IPv4 address in range of docker network `mynetwork` e.g. 172.20.0.2
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
    ports:
      - 7878:7878
    volumes:
      - radarr-config:/config
      - torrent-downloads:/downloads
    restart: "unless-stopped"

  sonarr:
    image: linuxserver/sonarr:4.0.0-develop
    container_name: sonarr
    networks:
    #   - mynetwork   # Comment this line if VPN is enabled
    ## Uncomment below lines if VPN is enabled
      media_stack:
        ipv4_address: ${SONARR_STATIC_CONTAINER_IP} # It should be available IPv4 address in range of docker network `mynetwork` e.g. 172.20.0.2
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
    volumes:
      - sonarr-config:/config
      - torrent-downloads:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped

  prowlarr:
    container_name: prowlarr
    image: linuxserver/prowlarr:1.11.4

    # Uncomment below if vpn is enabled
    depends_on:               # Uncomment this line if vpn is enabled
      - vpn                   # Uncomment this line if vpn is enabled
    network_mode: service:vpn # Uncomment this line if vpn is enabled

    # networks:               # Comment this line if vpn is enabled
    #   - mynetwork           # Comment this line if vpn is enabled
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
    volumes:
      - prowlarr-config:/config

    # Comment below ports if VPN is enabled.
    # ports:
    #   - 9696:9696
    restart: unless-stopped

  jellyfin:
    image: linuxserver/jellyfin:10.8.13
    container_name: jellyfin
    networks:
      - media_stack
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
    volumes:
      - jellyfin-config:/config
      - torrent-downloads:/data
  # devices:
   #  - /dev/videoN:/dev/videoN # Mount GPU device 
    ports:
      - 8096:8096
      - 7359:7359/udp
      - 8920:8920
    restart: unless-stopped
  
  # Doc: https://github.com/navilg/cleanmyarr
  # cleanmyarr:
  #   depends_on:
  #     - radarr
  #     - sonarr
  #   image: linuxshots/cleanmyarr:0.8.1
  #   container_name: cleanmyarr
  #   networks:
  #     - mynetwork
  #   volumes:
  #     - cleanmyarr-config:/config
    # restart: unless-stopped
    # environment:
    # - CMA_MAINTENANCE_CYCLE=${CMA_MAINTENANCE_CYCLE:-""}
    # - CMA_DELETE_AFTER_DAYS=${CMA_DELETE_AFTER_DAYS:-""}
    # - CMA_ENABLE_EMAIL_NOTIFICATION=${CMA_ENABLE_EMAIL_NOTIFICATION:-""}
    # - CMA_SMTP_USERNAME=${CMA_SMTP_USERNAME:-""}
    # - CMA_SMTP_ENCODED_PASSWORD=${CMA_SMTP_ENCODED_PASSWORD:-""}
    # - CMA_SMTP_TO_EMAILS=${CMA_SMTP_TO_EMAILS:-""}
    # - CMA_ENABLE_GOTIFY_NOTIFICATION=${CMA_ENABLE_GOTIFY_NOTIFICATION:-""}
    # - CMA_GOTIFY_URL=${CMA_GOTIFY_URL:-""}
    # - CMA_GOTIFY_ENCODED_APP_TOKEN=${CMA_GOTIFY_ENCODED_APP_TOKEN:-""}
    # - CMA_ENABLE_TELEGRAM_NOTIFICATION=${CMA_ENABLE_TELEGRAM_NOTIFICATION:-""}
    # - CMA_TELEGRAM_ENCODED_BOT_TOKEN=${CMA_TELEGRAM_ENCODED_BOT_TOKEN:-""}
    # - CMA_TELEGRAM_CHAT_ID=${CMA_TELEGRAM_CHAT_ID:-""}
    # - CMA_MONITOR_RADARR=${CMA_MONITOR_RADARR:-""}
    # - CMA_RADARR_URL=${CMA_RADARR_URL:-""}
    # - CMA_RADARR_ENCODED_API_KEY=${CMA_RADARR_ENCODED_API_KEY:-""}
    # - CMA_RADARR_ENABLE_NOTIFICATION=${CMA_RADARR_ENABLE_NOTIFICATION:-""}

volumes:
  torrent-downloads:
  radarr-config:
  sonarr-config:
  prowlarr-config:
  jellyfin-config:
  qbittorrent-config:
  # cleanmyarr-config:

networks:
  media_stack:
    external: true

invalid interpolation format for networks.media-network.ipam.config.[].subnet. OMV6 Debian 11

Hi Guys,

Thats all i get when i try docker compse.

invalid interpolation format for networks.media-network.ipam.config.[].subnet.
You may need to escape any $ with another $.
required variable DOCKER_SUBNET is missing a value: err

docker-compose.env / DOCKER SUBNET configured to my docker server subnet 172.17.0.0/16

DOCKER_SUBNET=172.17.0.0/16
DOCKER_GATEWAY=172.17.0.1
LOCAL_SUBNET=10.0.0.0/16
LOCAL_DOCKER_IP=0.0.0.0

Anyone has any idea what is this?

transmission username password?

When I add Transmission to Radarr it forces me to enter username and password, but the instructions don't instruct me to create a username and password, what should I do?

Add Overseerr to the stack as well (maybe as optional)

Is your feature request related to a problem? Please describe.
No, new additional container.

Describe the solution you'd like
Just like the arrs, Jellyfin, etc., add Overseerr for request management as well.

Describe alternatives you've considered
Not aware of any alternatives.

Additional context
N/A

Error response from daemon

Hi

When running sudo VPN_SERVICE_PROVIDER=protonvpn OPENVPN_USER=openvpn-username OPENVPN_PASSWORD=openvpn-password SERVER_COUNTRIES=Switzerland docker compose --profile vpn up -d

I get this:

โœ˜ radarr Error
โœ˜ jellyfin Error
โœ˜ vpn Error
โœ˜ qbittorrent Error
โœ˜ sonarr Error
โœ˜ prowlarr Error
Error response from daemon: Get "https://lscr.io/v2/": dial tcp 3.67.33.93:443: connect: no route to host

Do you know what this is?

docker with no ports

Hello !

i don't understand why but my qbittorent and prowlarr docker haven't port. and my vpn docker resatrting endlessly

here is my docker-compose :

version: "3.9"
name: media-stack
services:

  # To use/enable VPN, Run this compose file with --profile=vpn. Its highly recommended to use VPN.
  vpn:
  ## Read https://github.com/qdm12/gluetun/wiki for details on configuring VPN for different service providers.
    profiles: ["vpn"]
    container_name: vpn
    image: qmcgaw/gluetun:v3.35.0
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:-protonvpn} # Valid values: nordvpn, expressvpn, protonvpn, surfshark or custom
      - OPENVPN_USER=${OPENVPN_USER:-"XXXX"}
      - OPENVPN_PASSWORD=${OPENVPN_PASSWORD:-"XXXX"}

      ## For list of server countries, visit https://raw.githubusercontent.com/qdm12/gluetun/master/internal/storage/servers.json

      - SERVER_COUNTRIES=${SERVER_COUNTRIES:-Switzerland}

      # - FREE_ONLY=on  # Valid with protonvpn only. Value willbe set "on" if using free subscription provided by protonvpn

      ## Enable below if VPN_SERVICE_PROVIDER=custom
      # - VPN_TYPE=openvpn # or wireguard.

      ## If VPN_TYPE is openvpn
      # - OPENVPN_CUSTOM_CONFIG=/gluetun/custom.conf

      ## If VPN_TYPE is wireguard. Replace below env variables as required.
      # - VPN_ENDPOINT_IP=1.2.3.4
    # Replace with your wg endpoint ip or domain
      # - VPN_ENDPOINT_PORT=51820
    # Replace with wg server port
      # - WIREGUARD_PUBLIC_KEY=wAUaJMhAq3NFutLHIdF8AN0B5WG8RndfQKLPTEDHal0=     # Replace with your wg public key
      # - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=    # Replace with your wg client private key
      # - WIREGUARD_PRESHARED_KEY=xOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=  # Replaced with your wg pre-shared key
      # - WIREGUARD_ADDRESSES="10.64.222.21/32"
    # Replace with wg address

    ## Enable volume if VPN_SERVICE_PROVIDER=custom and VPN_TYPE=openvpn is used
    # volumes:
      # - /yourpath/yourconfig.conf:/gluetun/config.conf:ro

    networks:
      - mynetwork

    # Uncomment/enable below ports if VPN is used/enabled
    ports:
       # qbittorrent ports
       - 5080:5080
       - 6881:6881
       - 6881:6881/udp
       # prowlarr ports
       - 9696:9696
    restart: "unless-stopped"

  ## Default credentials of qBittorrent - Username: admin password: adminadmin ##
  ## Change password after install from UI --> Tools --> Options --> WebUI ##
  qbittorrent:
    container_name: qbittorrent
    image: lscr.io/linuxserver/qbittorrent:4.5.4

    # Unomment below if vpn is enabled
    depends_on:               # Uncomment this line if vpn is enabled
      - vpn                   # Uncomment this line if vpn is enabled

    # Comment below lines if VPN is enabled
    #networks:               # Comment this line if vpn is enabled
    #  - mynetwork           # Comment this line if vpn is enabled

    # Unomment below line if vpn is enabled
    network_mode: service:vpn

    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
      - WEBUI_PORT=5080
    volumes:
      - qbittorrent-config:/config
      - torrent-downloads:/downloads

    ## Comment/Disable below ports if VPN is enabled
    #ports:
    #  - 5080:5080
    #  - 6881:6881
    #  - 6881:6881/udp
    restart: "unless-stopped"

  radarr:
    container_name: radarr
    image: lscr.io/linuxserver/radarr:4.7.5
    networks:
      - mynetwork
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    ports:
      - 7878:7878
    volumes:
      - radarr-config:/config
      - torrent-downloads:/downloads
    restart: "unless-stopped"

  sonarr:
    image: linuxserver/sonarr:4.0.0-develop
    container_name: sonarr
    networks:
      - mynetwork
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - sonarr-config:/config
      - torrent-downloads:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped

  prowlarr:
    container_name: prowlarr
    image: linuxserver/prowlarr:1.8.6

    # Uncomment below if vpn is enabled
    depends_on:               # Uncomment this line if vpn is enabled
      - vpn                   # Uncomment this line if vpn is enabled
    network_mode: service:vpn # Uncomment this line if vpn is enabled

    #networks:               # Comment this line if vpn is enabled
    #  - mynetwork           # Comment this line if vpn is enabled
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - prowlarr-config:/config

    # Comment below ports if VPN is enabled.
    #ports:
    #  - 9696:9696
    restart: unless-stopped

  jellyfin:
    image: linuxserver/jellyfin:10.8.10
    container_name: jellyfin
    networks:
      - mynetwork
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - jellyfin-config:/config
      - torrent-downloads:/data
  # devices:
   #  - /dev/videoN:/dev/videoN # Mount GPU device
    ports:
      - 8096:8096
      - 7359:7359/udp
      - 8920:8920
    restart: unless-stopped

  # Doc: https://github.com/navilg/cleanmyarr
  # cleanmyarr:
  #   depends_on:
  #     - radarr
  #     - sonarr
  #   image: linuxshots/cleanmyarr:0.8.1
  #   container_name: cleanmyarr
  #   networks:
  #     - mynetwork
  #   volumes:
  #     - cleanmyarr-config:/config
    # restart: unless-stopped
    # environment:
    # - CMA_MAINTENANCE_CYCLE=${CMA_MAINTENANCE_CYCLE:-""}
    # - CMA_DELETE_AFTER_DAYS=${CMA_DELETE_AFTER_DAYS:-""}
    # - CMA_ENABLE_EMAIL_NOTIFICATION=${CMA_ENABLE_EMAIL_NOTIFICATION:-""}
    # - CMA_SMTP_USERNAME=${CMA_SMTP_USERNAME:-""}
    # - CMA_SMTP_ENCODED_PASSWORD=${CMA_SMTP_ENCODED_PASSWORD:-""}
    # - CMA_SMTP_TO_EMAILS=${CMA_SMTP_TO_EMAILS:-""}
    # - CMA_ENABLE_GOTIFY_NOTIFICATION=${CMA_ENABLE_GOTIFY_NOTIFICATION:-""}
    # - CMA_GOTIFY_URL=${CMA_GOTIFY_URL:-""}
    # - CMA_GOTIFY_ENCODED_APP_TOKEN=${CMA_GOTIFY_ENCODED_APP_TOKEN:-""}
    # - CMA_ENABLE_TELEGRAM_NOTIFICATION=${CMA_ENABLE_TELEGRAM_NOTIFICATION:-""}
    # - CMA_TELEGRAM_ENCODED_BOT_TOKEN=${CMA_TELEGRAM_ENCODED_BOT_TOKEN:-""}
    # - CMA_TELEGRAM_CHAT_ID=${CMA_TELEGRAM_CHAT_ID:-""}
    # - CMA_MONITOR_RADARR=${CMA_MONITOR_RADARR:-""}
    # - CMA_RADARR_URL=${CMA_RADARR_URL:-""}
    # - CMA_RADARR_ENCODED_API_KEY=${CMA_RADARR_ENCODED_API_KEY:-""}
    # - CMA_RADARR_ENABLE_NOTIFICATION=${CMA_RADARR_ENABLE_NOTIFICATION:-""}

volumes:
  torrent-downloads:
  radarr-config:
  sonarr-config:
  prowlarr-config:
  jellyfin-config:
  qbittorrent-config:
  # cleanmyarr-config:

networks:
  mynetwork:
    external: true

i have create the docker network.

c24bf1e0bdb1   lscr.io/linuxserver/qbittorrent:4.5.4   "/init"                 31 minutes ago   Up 4 minutes
                                                                                                      qbittorrent
6dd229ce3abd   linuxserver/prowlarr:1.8.6              "/init"                 31 minutes ago   Up 4 minutes
                                                                                                      prowlarr
20d83cde1825   qmcgaw/gluetun:v3.35.0                  "/gluetun-entrypoint"   31 minutes ago   Restarting (1) 38 seconds ago
                                                                                                      vpn
daed32557702   linuxserver/sonarr:4.0.0-develop        "/init"                 41 minutes ago   Up 4 minutes                    0.0.0.0:8989->8989/tcp, :::8989->8989/tcp                                                                                         sonarr
cfb38caf5bea   linuxserver/jellyfin:10.8.10            "/init"                 41 minutes ago   Up 4 minutes                    0.0.0.0:8096->8096/tcp, :::8096->8096/tcp, 0.0.0.0:7359->7359/udp, :::7359->7359/udp, 0.0.0.0:8920->8920/tcp, :::8920->8920/tcp   jellyfin
9f82eb345b4a   lscr.io/linuxserver/radarr:4.7.5        "/init"                 41 minutes ago   Up 4 minutes                    0.0.0.0:7878->7878/tcp, :::7878->7878/tcp                                                                                         radarr

if you can help me ? :)
(when i run without vpn it's works perfectly)

mutually exclusive `network_mode` and `networks` error

When running docker compose --profile stack-2 up -d it shows an error:
service qbittorrent declares mutually exclusive 'network_mode' and 'networks': invalid compose project

docker version: 23.0.5
docker compose version: v2.17.3

I used the latest code (commit fd6ca8f)

Docker compose error

image
I have tried to update docker and docker compose and it dont work with any version. Help plss. Also i have tried tipical hello world and it works.

RARBG

RARBG is closing down maybe consider updating the recomendded indexers

External drive mount

After deploying stack on a raspberry pi 4 with omv everything works perfectly. The only thing I found hard is how to change mount point for downloaded and presented media from one drive to another (in my example from sd card to external usb drive). It would be nice to add optional volume mount points to external drive while deploying stack. (I'm quite new with a docker and linux systems so sorry if this sounds as an easy solution).

Why don't you use transmission anymore?

As the title says, I see that in the old version you used both qbittorent and transmission, but now you have removed them. I followed someone else's git repo, they also left out transmission, what caused it to be removed?

Do not add SERVER_COUNTRIES env var when using custom VPN

I am using Wireguard custom vpn hosted on a vps I own. When adding the SERVER_COUNTRIES env var, the gluetun container only gave errors. Please add in the docker-compose a comment to not include this variable when using a custom vpn.

Other than that, great stack! Seems to be working well.

qBittorent/Prowler not connecting to a port, vpn constantly restarting

I had several issues building this container, most of which I managed to get through. One such issue was that I couldn't specify the static IP addresses for radarr and sonarr due to this error:

Error response from daemon: user specified IP address is supported only when connecting to networks with user configured subnets

I got around this by removing the docker network 'mynetwork' that was set up in the beginning, and reran that command as:

docker network create --gateway 172.21.0.1 --subnet 172.21.0.0/24 mynetwork

Since then the vpn image has been constantly restarting and no ports are listed for qbittorrent and prowlarr when running docker ps -a. I can't access them through browser, whereas all other images like radarr and sonarr are working.

86c3c2cfd6a5   linuxserver/prowlarr:1.8.6              "/init"                 28 seconds ago   Up 20 seconds   prowlarr
 2f3959bc26b3   lscr.io/linuxserver/qbittorrent:4.5.5   "/init"                 28 seconds ago   Up 20 seconds    qbittorrent
ff3eb92e1bb0   qmcgaw/gluetun:v3.35.0                  "/gluetun-entrypoint"   28 seconds ago   Restarting (1) 2 seconds ago   0.0.0.0:5080->5080/tcp, 8000/tcp, 8388/tcp, 0.0.0.0:6881->6881/tcp, 0.0.0.0:9696->9696/tcp, 0.0.0.0:6881->6881/udp, 8888/tcp, 8388/udp   vpn
db0958de6247   linuxserver/sonarr:4.0.0-develop        "/init"                 12 minutes ago   Up 11 minutes        0.0.0.0:8989->8989/tcp     sonarr
e1cd576e3f0a   lscr.io/linuxserver/radarr:5.0.3        "/init"                 12 minutes ago   Up 11 minutes       0.0.0.0:7878->7878/tcp     radarr

Here's my compose file:

version: "3.9"
name: media-stack
services:

  # To use/enable VPN, Run this compose file with --profile=vpn. Its highly recommended to use VPN.
  vpn:
  ## Read https://github.com/qdm12/gluetun/wiki for details on configuring VPN for different service providers.
    profiles: ["vpn"]
    container_name: vpn
    image: qmcgaw/gluetun:v3.35.0
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER=nordvpn # Valid values: nordvpn, expressvpn, protonvpn, surfshark or custom
      #- VPN_TYPE=openvpn
      - OPENVPN_USERNAME=**************
      - OPENVPN_PASSWORD=*************
      #- OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60

      ## For list of server countries, visit https://raw.githubusercontent.com/qdm12/gluetun/master/internal/storage/servers.json

      #- SERVER_COUNTRIES=${SERVER_COUNTRIES:-Switzerland}
    
      # - FREE_ONLY=on  # Valid with protonvpn only. Value willbe set "on" if using free subscription provided by protonvpn

      ## Enable below if VPN_SERVICE_PROVIDER=custom
      # - VPN_TYPE=openvpn # or wireguard. 

      ## If VPN_TYPE is openvpn
      # - OPENVPN_CUSTOM_CONFIG=/gluetun/custom.conf

      ## If VPN_TYPE is wireguard. Replace below env variables as required.
      # - VPN_ENDPOINT_IP=1.2.3.4                                               # Replace with your wg endpoint ip or domain
      # - VPN_ENDPOINT_PORT=51820                                               # Replace with wg server port
      # - WIREGUARD_PUBLIC_KEY=wAUaJMhAq3NFutLHIdF8AN0B5WG8RndfQKLPTEDHal0=     # Replace with your wg public key
      # - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=    # Replace with your wg client private key
      # - WIREGUARD_PRESHARED_KEY=xOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=  # Replaced with your wg pre-shared key
      # - WIREGUARD_ADDRESSES="10.64.222.21/32"                                 # Replace with wg address

    ## Enable volume if VPN_SERVICE_PROVIDER=custom and VPN_TYPE=openvpn is used
    # volumes:
      # - /yourpath/yourconfig.conf:/gluetun/config.conf:ro

    networks:
      - mynetwork
    
    # Uncomment/enable below ports if VPN is used/enabled
    ports:
       # qbittorrent ports
       - 5080:5080
       - 6881:6881
       - 6881:6881/udp
       # prowlarr ports
       - 9696:9696
    restart: "unless-stopped"

  ## Default credentials of qBittorrent - Username: admin password: adminadmin ##
  ## Change password after install from UI --> Tools --> Options --> WebUI ##
  qbittorrent:
    container_name: qbittorrent
    image: lscr.io/linuxserver/qbittorrent:4.5.5

    # Unomment below if vpn is enabled
    depends_on:               # Uncomment this line if vpn is enabled
      - vpn                   # Uncomment this line if vpn is enabled

    # Comment below lines if VPN is enabled
    #networks:               # Comment this line if vpn is enabled
    #  - mynetwork           # Comment this line if vpn is enabled

    # Unomment below line if vpn is enabled
    network_mode: service:vpn

    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
      - WEBUI_PORT=5080
    volumes:
      - qbittorrent-config:/config
      - torrent-downloads:/downloads

    ## Comment/Disable below ports if VPN is enabled
    #ports:
    #  - 5080:5080
    #  - 6881:6881
    #  - 6881:6881/udp
    restart: "unless-stopped"

  radarr:
    container_name: radarr
    image: lscr.io/linuxserver/radarr:5.0.3
    networks:
    #  - mynetwork   # Comment this line if VPN is enabled
    ## Uncomment below lines if VPN is enabled
      mynetwork:
        ipv4_address: 172.21.0.2 # It should be available IPv4 address in range of docker network `mynetwork` e.g. 172.20.0.2
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    ports:
      - 7878:7878
    volumes:
      - radarr-config:/config
      - torrent-downloads:/downloads
    restart: "unless-stopped"

  sonarr:
    image: linuxserver/sonarr:4.0.0-develop
    container_name: sonarr
    networks:
    #  - mynetwork   # Comment this line if VPN is enabled
    ## Uncomment below lines if VPN is enabled
      mynetwork:
        ipv4_address: 172.21.0.4 # It should be available IPv4 address in range of docker network `mynetwork` e.g. 172.20.0.2
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - sonarr-config:/config
      - torrent-downloads:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped

  prowlarr:
    container_name: prowlarr
    image: linuxserver/prowlarr:1.8.6

    # Uncomment below if vpn is enabled
    depends_on:               # Uncomment this line if vpn is enabled
       - vpn                   # Uncomment this line if vpn is enabled
    network_mode: service:vpn # Uncomment this line if vpn is enabled

    #networks:               # Comment this line if vpn is enabled
    #  - mynetwork           # Comment this line if vpn is enabled
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - prowlarr-config:/config

    # Comment below ports if VPN is enabled.
    #ports:
    #  - 9696:9696
    restart: unless-stopped

  #jellyfin:
   # image: linuxserver/jellyfin:10.8.11
  # container_name: jellyfin
   # networks:
    #  - mynetwork
    #environment:
    #  - PUID=1000
     # - PGID=1000
      #- TZ=UTC
    #volumes:
     # - jellyfin-config:/config
      #- torrent-downloads:/data
  # devices:
   #  - /dev/videoN:/dev/videoN # Mount GPU device 
    #ports:
    #  - 8096:8096
     # - 7359:7359/udp
      #- 8920:8920
   # restart: unless-stopped
  
  # Doc: https://github.com/navilg/cleanmyarr
  # cleanmyarr:
  #   depends_on:
  #     - radarr
  #     - sonarr
  #   image: linuxshots/cleanmyarr:0.8.1
  #   container_name: cleanmyarr
  #   networks:
  #     - mynetwork
  #   volumes:
  #     - cleanmyarr-config:/config
    # restart: unless-stopped
    # environment:
    # - CMA_MAINTENANCE_CYCLE=${CMA_MAINTENANCE_CYCLE:-""}
    # - CMA_DELETE_AFTER_DAYS=${CMA_DELETE_AFTER_DAYS:-""}
    # - CMA_ENABLE_EMAIL_NOTIFICATION=${CMA_ENABLE_EMAIL_NOTIFICATION:-""}
    # - CMA_SMTP_USERNAME=${CMA_SMTP_USERNAME:-""}
    # - CMA_SMTP_ENCODED_PASSWORD=${CMA_SMTP_ENCODED_PASSWORD:-""}
    # - CMA_SMTP_TO_EMAILS=${CMA_SMTP_TO_EMAILS:-""}
    # - CMA_ENABLE_GOTIFY_NOTIFICATION=${CMA_ENABLE_GOTIFY_NOTIFICATION:-""}
    # - CMA_GOTIFY_URL=${CMA_GOTIFY_URL:-""}
    # - CMA_GOTIFY_ENCODED_APP_TOKEN=${CMA_GOTIFY_ENCODED_APP_TOKEN:-""}
    # - CMA_ENABLE_TELEGRAM_NOTIFICATION=${CMA_ENABLE_TELEGRAM_NOTIFICATION:-""}
    # - CMA_TELEGRAM_ENCODED_BOT_TOKEN=${CMA_TELEGRAM_ENCODED_BOT_TOKEN:-""}
    # - CMA_TELEGRAM_CHAT_ID=${CMA_TELEGRAM_CHAT_ID:-""}
    # - CMA_MONITOR_RADARR=${CMA_MONITOR_RADARR:-""}
    # - CMA_RADARR_URL=${CMA_RADARR_URL:-""}
    # - CMA_RADARR_ENCODED_API_KEY=${CMA_RADARR_ENCODED_API_KEY:-""}
    # - CMA_RADARR_ENABLE_NOTIFICATION=${CMA_RADARR_ENABLE_NOTIFICATION:-""}

volumes:
  torrent-downloads:
  radarr-config:
  sonarr-config:
  prowlarr-config:
  #jellyfin-config:
  qbittorrent-config:
  # cleanmyarr-config:

networks:
  mynetwork:
    external: true

Not sure what I've done wrong here, but any pointers would be great, thanks!

[BUG] invalid IPv4 address - docker compose

Describe the bug
I can't get the media stack working. getting the following error; Error response from daemon: invalid IPv4 address: sonarr-container-static-ip

Also i have nfs mount for the downloads of /mnt/Downloads/qBittorent i hope thats fine too with this docker compose.

Screenshots
image

Platforms (please complete the following information):

  • Debian 12 VM
  • Docker version 24.0.7

Docker compose file

version: "3.9"
name: media-stack
services:
  vpn:
    profiles: ["vpn"]
    container_name: vpn
    image: qmcgaw/gluetun:v3.36.0
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:-mullvad}
      - SERVER_COUNTRIES=${SERVER_COUNTRIES:-Australia}
      - VPN_TYPE=wireguard
      - VPN_ENDPOINT_IP=
      - VPN_ENDPOINT_PORT=51820
      - WIREGUARD_PUBLIC_KEY=
      - WIREGUARD_PRIVATE_KEY=
      - WIREGUARD_ADDRESSES="
    networks:
      - mynetwork
    ports:
      # qbittorrent ports
      - 5080:5080
      - 6881:6881
      - 6881:6881/udp
      # prowlarr ports
      - 9696:9696
    restart: "unless-stopped"

  qbittorrent:
    container_name: qbittorrent
    image: lscr.io/linuxserver/qbittorrent:4.6.2
    depends_on:
      - vpn
    network_mode: service:vpn
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Australia/Sydney
      - WEBUI_PORT=5080
    volumes:
      - ./qbittorrent-config:/config
      - /mnt/Downloads/qBittorent:/downloads
    restart: "unless-stopped"

  radarr:
    container_name: radarr
    image: lscr.io/linuxserver/radarr:5.2.6
    networks:
      mynetwork:
        ipv4_address: ${RADARR_STATIC_CONTAINER_IP}
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Australia/Sydney
    ports:
      - 7878:7878
    volumes:
      - ./radarr-config:/config
      - /mnt/Downloads/qBittorent:/downloads
    restart: "unless-stopped"

  sonarr:
    image: linuxserver/sonarr:4.0.0-develop
    container_name: sonarr
    networks:
      mynetwork:
        ipv4_address: ${SONARR_STATIC_CONTAINER_IP}
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Australia/Sydney
    volumes:
      - ./sonarr-config:/config
      - /mnt/Downloads/qBittorent:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped

  prowlarr:
    container_name: prowlarr
    image: linuxserver/prowlarr:1.11.4
    depends_on:
      - vpn                   
    network_mode: service:vpn
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Australia/Sydney
    volumes:
      - ./prowlarr-config:/config
    restart: unless-stopped

volumes:
  radarr-config:
  sonarr-config:
  prowlarr-config:
  qbittorrent-config:

networks:
  mynetwork:
    external: true

Additional context
Add any other context about the problem here.

[BUG] networks: -mynetwork error

Describe the bug
get
Error response from daemon: network mynetwork not found

To Reproduce
As per "non-vpn" instructions,
Run docker-compose up -d let images pulled then error occurs

Expected behavior
expected all containers to start

Screenshots
If applicable, add screenshots to help explain your problem.

Platforms (please complete the following information):
ubuntu 20

Docker compose file

yaml
version: "3.9"
name: media-stack
services:

  # To use/enable VPN, Run this compose file with --profile=vpn. Its highly recommended to use VPN.
  vpn:
    ## Read https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers for details on configuring VPN for your service provider.
    profiles: ["vpn"]
    container_name: vpn
    image: qmcgaw/gluetun:v3.38.0
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:-nordvpn} # Valid values: nordvpn, expressvpn, protonvpn, surfshark or custom
      - OPENVPN_USER=${OPENVPN_USER:-""}
      - OPENVPN_PASSWORD=${OPENVPN_PASSWORD:-""}

      ## For list of server countries, visit https://raw.githubusercontent.com/qdm12/gluetun/master/internal/storage/servers.json
      ## When VPN_SERVICE_PROVIDER is custom. Comment the below line
      - SERVER_COUNTRIES=${SERVER_COUNTRIES:-Switzerland}
    
      # - FREE_ONLY=on  # Valid with protonvpn only. Value willbe set "on" if using free subscription provided by protonvpn

      ## Enable below if VPN_SERVICE_PROVIDER=custom
      # - VPN_TYPE=openvpn # or wireguard. 

      ## If VPN_TYPE is openvpn
      # - OPENVPN_CUSTOM_CONFIG=/gluetun/custom.conf

      ## If VPN_TYPE is wireguard. Replace below env variables as required.
      # - VPN_ENDPOINT_IP=1.2.3.4                                               # Replace with your wg endpoint ip or domain
      # - VPN_ENDPOINT_PORT=51820                                               # Replace with wg server port
      # - WIREGUARD_PUBLIC_KEY=wAUaJMhAq3NFutLHIdF8AN0B5WG8RndfQKLPTEDHal0=     # Replace with your wg public key
      # - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=    # Replace with your wg client private key
      # - WIREGUARD_PRESHARED_KEY=xOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=  # Replaced with your wg pre-shared key
      # - WIREGUARD_ADDRESSES="10.64.222.21/32"                                 # Replace with wg address

    ## Enable volume if VPN_SERVICE_PROVIDER=custom and VPN_TYPE=openvpn is used
    # volumes:
      # - /yourpath/yourconfig.conf:/gluetun/config.conf:ro

    networks:
      - mynetwork
    
    # Uncomment/enable below ports if VPN is used/enabled
    # ports:
    #   # qbittorrent ports
    #   - 5080:5080
    #   - 6881:6881
    #   - 6881:6881/udp
    #   # prowlarr ports
    #   - 9696:9696
    restart: "unless-stopped"

  ## Default credentials of qBittorrent - Username: admin password: adminadmin ##
  ## Change password after install from UI --> Tools --> Options --> WebUI ##
  qbittorrent:
    container_name: qbittorrent
    image: lscr.io/linuxserver/qbittorrent:4.6.4

    # Unomment below if vpn is enabled
    # depends_on:               # Uncomment this line if vpn is enabled
    #   - vpn                   # Uncomment this line if vpn is enabled

    # Comment below lines if VPN is enabled
    networks:               # Comment this line if vpn is enabled
      - mynetwork           # Comment this line if vpn is enabled

    # Unomment below line if vpn is enabled
    # network_mode: service:vpn

    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
      - WEBUI_PORT=5080
    volumes:
      - qbittorrent-config:/config
      - torrent-downloads:/downloads

    ## Comment/Disable below ports if VPN is enabled
    ports:
      - 5080:5080
      - 6881:6881
      - 6881:6881/udp
    restart: "unless-stopped"

  radarr:
    container_name: radarr
    image: lscr.io/linuxserver/radarr:5.3.6
    networks:
      - mynetwork   # Comment this line if VPN is enabled
    ## Uncomment below lines if VPN is enabled
    #   mynetwork:
    #     ipv4_address: ${RADARR_STATIC_CONTAINER_IP} # It should be available IPv4 address in range of docker network `mynetwork` e.g. 172.20.0.2
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    ports:
      - 7878:7878
    volumes:
      - radarr-config:/config
      - torrent-downloads:/downloads
    restart: "unless-stopped"

  sonarr:
    image: linuxserver/sonarr:4.0.3
    container_name: sonarr
    networks:
      - mynetwork   # Comment this line if VPN is enabled
    ## Uncomment below lines if VPN is enabled
    #   mynetwork:
    #     ipv4_address: ${SONARR_STATIC_CONTAINER_IP} # It should be available IPv4 address in range of docker network `mynetwork` e.g. 172.20.0.2
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - sonarr-config:/config
      - torrent-downloads:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped

  prowlarr:
    container_name: prowlarr
    image: linuxserver/prowlarr:1.15.0

    # Uncomment below if vpn is enabled
    # depends_on:               # Uncomment this line if vpn is enabled
    #   - vpn                   # Uncomment this line if vpn is enabled
    # network_mode: service:vpn # Uncomment this line if vpn is enabled

    networks:               # Comment this line if vpn is enabled
      - mynetwork           # Comment this line if vpn is enabled
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - prowlarr-config:/config

    # Comment below ports if VPN is enabled.
    ports:
      - 9696:9696
    restart: unless-stopped

  jellyfin:
    image: linuxserver/jellyfin:10.8.13
    container_name: jellyfin
    networks:
      - mynetwork
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - jellyfin-config:/config
      - torrent-downloads:/data
  # devices:
   #  - /dev/videoN:/dev/videoN # Mount GPU device 
    ports:
      - 8096:8096
      - 7359:7359/udp
      - 8920:8920
    restart: unless-stopped
  
  # Doc: https://github.com/navilg/cleanmyarr
  # cleanmyarr:
  #   depends_on:
  #     - radarr
  #     - sonarr
  #   image: linuxshots/cleanmyarr:0.8.1
  #   container_name: cleanmyarr
  #   networks:
  #     - mynetwork
  #   volumes:
  #     - cleanmyarr-config:/config
    # restart: unless-stopped
    # environment:
    # - CMA_MAINTENANCE_CYCLE=${CMA_MAINTENANCE_CYCLE:-""}
    # - CMA_DELETE_AFTER_DAYS=${CMA_DELETE_AFTER_DAYS:-""}
    # - CMA_ENABLE_EMAIL_NOTIFICATION=${CMA_ENABLE_EMAIL_NOTIFICATION:-""}
    # - CMA_SMTP_USERNAME=${CMA_SMTP_USERNAME:-""}
    # - CMA_SMTP_ENCODED_PASSWORD=${CMA_SMTP_ENCODED_PASSWORD:-""}
    # - CMA_SMTP_TO_EMAILS=${CMA_SMTP_TO_EMAILS:-""}
    # - CMA_ENABLE_GOTIFY_NOTIFICATION=${CMA_ENABLE_GOTIFY_NOTIFICATION:-""}
    # - CMA_GOTIFY_URL=${CMA_GOTIFY_URL:-""}
    # - CMA_GOTIFY_ENCODED_APP_TOKEN=${CMA_GOTIFY_ENCODED_APP_TOKEN:-""}
    # - CMA_ENABLE_TELEGRAM_NOTIFICATION=${CMA_ENABLE_TELEGRAM_NOTIFICATION:-""}
    # - CMA_TELEGRAM_ENCODED_BOT_TOKEN=${CMA_TELEGRAM_ENCODED_BOT_TOKEN:-""}
    # - CMA_TELEGRAM_CHAT_ID=${CMA_TELEGRAM_CHAT_ID:-""}
    # - CMA_MONITOR_RADARR=${CMA_MONITOR_RADARR:-""}
    # - CMA_RADARR_URL=${CMA_RADARR_URL:-""}
    # - CMA_RADARR_ENCODED_API_KEY=${CMA_RADARR_ENCODED_API_KEY:-""}
    # - CMA_RADARR_ENABLE_NOTIFICATION=${CMA_RADARR_ENABLE_NOTIFICATION:-""}

volumes:
  torrent-downloads:
  radarr-config:
  sonarr-config:
  prowlarr-config:
  jellyfin-config:
  qbittorrent-config:
  # cleanmyarr-config:

networks:
  mynetwork:
    external: true

Additional context
unrelated, but also get warning "media-stack/docker-compose.yml: version is obsolete"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.