From ad7d8288ca08f85aa2a1a41447200d0082968aed Mon Sep 17 00:00:00 2001 From: Gal Podlipnik Date: Fri, 11 Jul 2025 23:38:39 +0000 Subject: [PATCH] vpn --- .env | 5 ++ docker-compose.yml | 93 ++++++++++---------- withvpn.yml | 207 --------------------------------------------- 3 files changed, 55 insertions(+), 250 deletions(-) delete mode 100644 withvpn.yml diff --git a/.env b/.env index 4925be7..20fcafd 100644 --- a/.env +++ b/.env @@ -5,3 +5,8 @@ ARRPATH=/media/Arr/ # in Windows it will be sth like ARRPATH=C:\myfolder\Arr\ PUID=1000 PGID=1000 TZ=Europe/Ljubljana + +# Gluetun Variables +NORDVPN_USERNAME=Thyd3J8tFaezzat7EoBn8Kfe +NORDVPN_PASSWORD=BHhL7tSYrJcGcssAAhQCAjwH +SERVER_COUNTRIES=Netherlands diff --git a/docker-compose.yml b/docker-compose.yml index c17976d..0d21506 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,46 @@ services: +# ██████╗ ██╗ ██╗ ██╗███████╗████████╗██╗ ██╗███╗ ██╗ +# ██╔════╝ ██║ ██║ ██║██╔════╝╚══██╔══╝██║ ██║████╗ ██║ +# ██║ ███╗██║ ██║ ██║█████╗ ██║ ██║ ██║██╔██╗ ██║ +# ██║ ██║██║ ██║ ██║██╔══╝ ██║ ██║ ██║██║╚██╗██║ +# ╚██████╔╝███████╗╚██████╔╝███████╗ ██║ ╚██████╔╝██║ ╚████║ +# ╚═════╝ ╚══════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ + + gluetun: + image: qmcgaw/gluetun:latest + container_name: gluetun + cap_add: + - NET_ADMIN + devices: + - /dev/net/tun:/dev/net/tun + env_file: + - '.env' + ports: + - 8080:8080 # qBittorrent + - 9696:9696 # Prowlarr + - 8989:8989 # Sonarr + - 7878:7878 # Radarr + - 8686:8686 # Lidarr + - 8787:8787 # Readarr + - 5055:5055 # Jellyseerr + - 8096:8096 # Jellyfin + - 7359:7359/udp # Jellyfin discovery + - 1900:1900/udp # Jellyfin DLNA + - 6881:6881 # qBittorrent + - 6881:6881/udp # qBittorrent + environment: + - VPN_SERVICE_PROVIDER=nordvpn + - OPENVPN_USER=${NORDVPN_USERNAME} + - OPENVPN_PASSWORD=${NORDVPN_PASSWORD} + - SERVER_COUNTRIES=${SERVER_COUNTRIES} + - TZ=${TZ} + volumes: + - ${ARRPATH}gluetun/config:/gluetun + restart: unless-stopped + networks: + - media_network + # ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗ █████╗ ██████╗ ██████╗ # ██╔══██╗██╔══██╗██╔═══██╗██║ ██║██║ ██╔══██╗██╔══██╗██╔══██╗ # ██████╔╝██████╔╝██║ ██║██║ █╗ ██║██║ ███████║██████╔╝██████╔╝ @@ -10,18 +51,14 @@ services: prowlarr: image: linuxserver/prowlarr:latest container_name: prowlarr - hostname: prowlarr volumes: - ${ARRPATH}Prowlarr/config:/config - ${ARRPATH}Prowlarr/backup:/data/Backup - ${ARRPATH}Downloads:/downloads - ports: - - 9696:9696 + network_mode: "service:gluetun" restart: unless-stopped env_file: - '.env' - networks: - - media_network # ███████╗ ██████╗ ███╗ ██╗ █████╗ ██████╗ ██████╗ # ██╔════╝██╔═══██╗████╗ ██║██╔══██╗██╔══██╗██╔══██╗ @@ -33,19 +70,15 @@ services: sonarr: image: linuxserver/sonarr:latest container_name: sonarr - hostname: sonarr volumes: - ${ARRPATH}Sonarr/config:/config - ${ARRPATH}Sonarr/backup:/data/Backup - ${ARRPATH}Sonarr/tvshows:/data/tvshows - ${ARRPATH}Downloads:/downloads - ports: - - 8989:8989 + network_mode: "service:gluetun" restart: unless-stopped env_file: - '.env' - networks: - - media_network # ██████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗ # ██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗ @@ -57,19 +90,15 @@ services: radarr: image: linuxserver/radarr:latest container_name: radarr - hostname: radarr volumes: - ${ARRPATH}Radarr/config:/config - ${ARRPATH}Radarr/movies:/data/movies - ${ARRPATH}Radarr/backup:/data/Backup - ${ARRPATH}Downloads:/downloads - ports: - - 7878:7878 + network_mode: "service:gluetun" restart: unless-stopped env_file: - '.env' - networks: - - media_network # ██╗ ██╗██████╗ █████╗ ██████╗ ██████╗ # ██║ ██║██╔══██╗██╔══██╗██╔══██╗██╔══██╗ @@ -81,18 +110,14 @@ services: lidarr: image: linuxserver/lidarr:latest container_name: lidarr - hostname: lidarr volumes: - ${ARRPATH}Lidarr/config:/config - ${ARRPATH}Lidarr/music:/data/musicfolder - ${ARRPATH}Downloads:/downloads - ports: - - 8686:8686 + network_mode: "service:gluetun" restart: unless-stopped env_file: - '.env' - networks: - - media_network # ██████╗ ███████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗ # ██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗ @@ -104,18 +129,14 @@ services: readarr: image: linuxserver/readarr:develop container_name: readarr - hostname: readarr volumes: - ${ARRPATH}Readarr/config:/config - ${ARRPATH}Readarr/books:/data/books - ${ARRPATH}Downloads:/downloads - ports: - - 8787:8787 + network_mode: "service:gluetun" restart: unless-stopped env_file: - '.env' - networks: - - media_network jellyseerr: image: fallenbagel/jellyseerr:latest @@ -124,15 +145,12 @@ services: - LOG_LEVEL=debug - TZ=Europe/Ljubljana - PORT=5055 #optional - ports: - - 5055:5055 volumes: - ${ARRPATH}JELLYSEERR/config:/app/config + network_mode: "service:gluetun" restart: unless-stopped env_file: - '.env' - networks: - - media_network # ██╗███████╗██╗ ██╗ ██╗ ██╗███████╗██╗███╗ ██╗ # ██║██╔════╝██║ ██║ ╚██╗ ██╔╝██╔════╝██║████╗ ██║ @@ -144,21 +162,16 @@ services: jellyfin: image: linuxserver/jellyfin container_name: jellyfin - ports: - - '8096:8096/tcp' # Jellyfin web interface - - '7359:7359/udp' # Network discovery - - '1900:1900/udp' # DLNA port volumes: - ${ARRPATH}Jellyfin/config:/config - ${ARRPATH}Radarr/movies:/data/Movies - ${ARRPATH}Sonarr/tvshows:/data/TVShows - ${ARRPATH}Lidarr/music:/data/Music - ${ARRPATH}Readarr/books:/data/Books + network_mode: "service:gluetun" env_file: - '.env' restart: unless-stopped - networks: - - media_network # ██████╗ ██████╗ ██╗████████╗████████╗ ██████╗ ██████╗ ██████╗ ███████╗███╗ ██╗████████╗ # ██╔═══██╗██╔══██╗██║╚══██╔══╝╚══██╔══╝██╔═══██╗██╔══██╗██╔══██╗██╔════╝████╗ ██║╚══██╔══╝ @@ -170,28 +183,22 @@ services: qbittorrent: image: linuxserver/qbittorrent:latest container_name: qbittorrent - hostname: qbittorrent restart: unless-stopped labels: - "com.centurylinklabs.watchtower.enable=false" volumes: - ${ARRPATH}qbittorrent/config:/config - ${ARRPATH}Downloads:/downloads - ports: - - 8080:8080 - - 6881:6881 - - 6881:6881/udp environment: - WEBUI_PORT=8080 - TORRENTING_PORT=6881 + network_mode: "service:gluetun" healthcheck: start_period: 15s env_file: - '.env' - networks: - - media_network # Define the custom network networks: media_network: - driver: bridge \ No newline at end of file + driver: bridge diff --git a/withvpn.yml b/withvpn.yml deleted file mode 100644 index fd580fe..0000000 --- a/withvpn.yml +++ /dev/null @@ -1,207 +0,0 @@ -services: - -# ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗ █████╗ ██████╗ ██████╗ -# ██╔══██╗██╔══██╗██╔═══██╗██║ ██║██║ ██╔══██╗██╔══██╗██╔══██╗ -# ██████╔╝██████╔╝██║ ██║██║ █╗ ██║██║ ███████║██████╔╝██████╔╝ -# ██╔═══╝ ██╔══██╗██║ ██║██║███╗██║██║ ██╔══██║██╔══██╗██╔══██╗ -# ██║ ██║ ██║╚██████╔╝╚███╔███╔╝███████╗██║ ██║██║ ██║██║ ██║ -# ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═ - - prowlarr: - image: linuxserver/prowlarr:latest - container_name: prowlarr - volumes: - - ${ARRPATH}Prowlarr/config:/config - - ${ARRPATH}Prowlarr/backup:/data/Backup - - ${ARRPATH}Downloads:/downloads - restart: unless-stopped - env_file: - - '.env' - network_mode: "service:gluetun" - depends_on: - - gluetun - -# ███████╗ ██████╗ ███╗ ██╗ █████╗ ██████╗ ██████╗ -# ██╔════╝██╔═══██╗████╗ ██║██╔══██╗██╔══██╗██╔══██╗ -# ███████╗██║ ██║██╔██╗ ██║███████║██████╔╝██████╔╝ -# ╚════██║██║ ██║██║╚██╗██║██╔══██║██╔══██╗██╔══██╗ -# ███████║╚██████╔╝██║ ╚████║██║ ██║██║ ██║██║ ██║ -# ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ - - sonarr: - image: linuxserver/sonarr:latest - container_name: sonarr - volumes: - - ${ARRPATH}Sonarr/config:/config - - ${ARRPATH}Sonarr/backup:/data/Backup - - ${ARRPATH}Sonarr/tvshows:/data/tvshows - - ${ARRPATH}Downloads:/downloads - restart: unless-stopped - env_file: - - '.env' - network_mode: "service:gluetun" - depends_on: - - gluetun - -# ██████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗ -# ██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗ -# ██████╔╝███████║██║ ██║███████║██████╔╝██████╔╝ -# ██╔══██╗██╔══██║██║ ██║██╔══██║██╔══██╗██╔══██╗ -# ██║ ██║██║ ██║██████╔╝██║ ██║██║ ██║██║ ██║ -# ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ - - radarr: - image: linuxserver/radarr:latest - container_name: radarr - volumes: - - ${ARRPATH}Radarr/config:/config - - ${ARRPATH}Radarr/movies:/data/movies - - ${ARRPATH}Radarr/backup:/data/Backup - - ${ARRPATH}Downloads:/downloads - restart: unless-stopped - env_file: - - '.env' - network_mode: "service:gluetun" - depends_on: - - gluetun - -# ██╗ ██╗██████╗ █████╗ ██████╗ ██████╗ -# ██║ ██║██╔══██╗██╔══██╗██╔══██╗██╔══██╗ -# ██║ ██║██║ ██║███████║██████╔╝██████╔╝ -# ██║ ██║██║ ██║██╔══██║██╔══██╗██╔══██╗ -# ███████╗██║██████╔╝██║ ██║██║ ██║██║ ██║ -# ╚══════╝╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ - - lidarr: - image: linuxserver/lidarr:latest - container_name: lidarr - volumes: - - ${ARRPATH}Lidarr/config:/config - - ${ARRPATH}Lidarr/music:/data/musicfolder - - ${ARRPATH}Downloads:/downloads - restart: unless-stopped - env_file: - - '.env' - network_mode: "service:gluetun" - depends_on: - - gluetun - -# ██████╗ ███████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗ -# ██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗ -# ██████╔╝█████╗ ███████║██║ ██║███████║██████╔╝██████╔╝ -# ██╔══██╗██╔══╝ ██╔══██║██║ ██║██╔══██║██╔══██╗██╔══██╗ -# ██║ ██║███████╗██║ ██║██████╔╝██║ ██║██║ ██║██║ ██║ -# ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ - - readarr: - image: linuxserver/readarr:develop - container_name: readarr - volumes: - - ${ARRPATH}Readarr/config:/config - - ${ARRPATH}Readarr/books:/data/books - - ${ARRPATH}Downloads:/downloads - restart: unless-stopped - env_file: - - '.env' - network_mode: "service:gluetun" - depends_on: - - gluetun - - jellyseerr: - image: fallenbagel/jellyseerr:latest - container_name: jellyseerr - environment: - - LOG_LEVEL=debug - - TZ=Europe/Ljubljana - - PORT=5055 #optional - volumes: - - ${ARRPATH}JELLYSEERR/config:/app/config - restart: unless-stopped - env_file: - - '.env' - network_mode: "service:gluetun" - depends_on: - - gluetun - -# ██╗███████╗██╗ ██╗ ██╗ ██╗███████╗██╗███╗ ██╗ -# ██║██╔════╝██║ ██║ ╚██╗ ██╔╝██╔════╝██║████╗ ██║ -# ██║█████╗ ██║ ██║ ╚████╔╝ █████╗ ██║██╔██╗ ██║ -# ██ ██║██╔══╝ ██║ ██║ ╚██╔╝ ██╔══╝ ██║██║╚██╗██║ -# ╚█████╔╝███████╗███████╗███████╗██║ ██║ ██║██║ ╚████║ -# ╚════╝ ╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ - - jellyfin: - image: linuxserver/jellyfin - container_name: jellyfin - volumes: - - ${ARRPATH}Jellyfin/config:/config - - ${ARRPATH}Radarr/movies:/data/Movies - - ${ARRPATH}Sonarr/tvshows:/data/TVShows - - ${ARRPATH}Lidarr/music:/data/Music - - ${ARRPATH}Readarr/books:/data/Books - env_file: - - '.env' - restart: unless-stopped - network_mode: "service:gluetun" - depends_on: - - gluetun - -# ██████╗ ██████╗ ██╗████████╗████████╗ ██████╗ ██████╗ ██████╗ ███████╗███╗ ██╗████████╗ -# ██╔═══██╗██╔══██╗██║╚══██╔══╝╚══██╔══╝██╔═══██╗██╔══██╗██╔══██╗██╔════╝████╗ ██║╚══██╔══╝ -# ██║ ██║██████╔╝██║ ██║ ██║ ██║ ██║██████╔╝██████╔╝█████╗ ██╔██╗ ██║ ██║ -# ██║▄▄ ██║██╔══██╗██║ ██║ ██║ ██║ ██║██╔══██╗██╔══██╗██╔══╝ ██║╚██╗██║ ██║ -# ╚██████╔╝██████╔╝██║ ██║ ██║ ╚██████╔╝██║ ██║██║ ██║███████╗██║ ╚████║ ██║ -# ╚══▀▀═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═╝ - - qbittorrent: - image: linuxserver/qbittorrent:latest - container_name: qbittorrent - restart: unless-stopped - labels: - - "com.centurylinklabs.watchtower.enable=false" - volumes: - - ${ARRPATH}qbittorrent/config:/config - - ${ARRPATH}Downloads:/downloads - # Removed port mappings as they'll be exposed via gluetun - environment: - - WEBUI_PORT=8080 - - TORRENTING_PORT=6881 - healthcheck: - start_period: 15s - env_file: - - '.env' - network_mode: "service:gluetun" - depends_on: - - gluetun - - gluetun: - image: qmcgaw/gluetun - container_name: gluetun - cap_add: - - NET_ADMIN - devices: - - /dev/net/tun:/dev/net/tun - ports: - # Expose ports for all services that need to be accessible - - 8080:8080 # qBittorrent WebUI - - 6881:6881 # qBittorrent - - 6881:6881/udp # qBittorrent - - 9696:9696 # Prowlarr - - 8989:8989 # Sonarr - - 7878:7878 # Radarr - - 8686:8686 # Lidarr - - 8787:8787 # Readarr - - 5055:5055 # Jellyseerr - - 8096:8096 # Jellyfin - - 7359:7359/udp # Jellyfin discovery - - 1900:1900/udp # Jellyfin DLNA - environment: - - VPN_SERVICE_PROVIDER=protonvpn - - OPENVPN_USER=IWCz8b1ulCddlQ9E - - OPENVPN_PASSWORD=rWw8wsLtVAKNdXbEw4KYio37j6g6Jdv1 - - SERVER_COUNTRIES=Netherlands - # Added settings to make gluetun work better as a gateway - - FIREWALL_VPN_INPUT_PORTS=8080,6881,9696,8989,7878,8686,8787,5055,8096,7359,1900 - - DOT=off - - DNS_KEEP_NAMESERVER=on - restart: unless-stopped \ No newline at end of file