diff --git a/gluetun-transmission-chromium/.env b/gluetun-transmission-chromium.deprecated/.env similarity index 100% rename from gluetun-transmission-chromium/.env rename to gluetun-transmission-chromium.deprecated/.env diff --git a/gluetun-transmission-chromium/gluetun-transmission-chromium.yml b/gluetun-transmission-chromium.deprecated/gluetun-transmission-chromium.yml similarity index 100% rename from gluetun-transmission-chromium/gluetun-transmission-chromium.yml rename to gluetun-transmission-chromium.deprecated/gluetun-transmission-chromium.yml diff --git a/gluetun-transmission-chromium/transmission-port.sh b/gluetun-transmission-chromium.deprecated/transmission-port.sh similarity index 100% rename from gluetun-transmission-chromium/transmission-port.sh rename to gluetun-transmission-chromium.deprecated/transmission-port.sh diff --git a/media-stack/.env b/media-stack/.env new file mode 100644 index 0000000..7b65c36 --- /dev/null +++ b/media-stack/.env @@ -0,0 +1,5 @@ +VPN_ENDPOINT_IP=from-wireguard-conf-file +VPN_ENDPOINT_PORT=from-wireguard-conf-file +WIREGUARD_PUBLIC_KEY=from-wireguard-conf-file +WIREGUARD_PRIVATE_KEY=from-wireguard-conf-file +WIREGUARD_ADDRESSES=from-wireguard-conf-file diff --git a/media-stack/media-stack.yml b/media-stack/media-stack.yml new file mode 100644 index 0000000..cbf397c --- /dev/null +++ b/media-stack/media-stack.yml @@ -0,0 +1,102 @@ +version: "3.1" + +services: + gluetun: + image: qmcgaw/gluetun + container_name: gluetun + cap_add: + - NET_ADMIN + ports: + - 3000:3000 # chromium + - 9091:9091 # transmission + environment: + - VPN_SERVICE_PROVIDER=custom + - VPN_TYPE=wireguard + - VPN_PORT_FORWARDING=on + - VPN_PORT_FORWARDING_PROVIDER=protonvpn + env_file: + - .env + restart: unless-stopped + networks: + - proxy + + transmission: + image: linuxserver/transmission:version-3.00-r8 + container_name: transmission + environment: + - PUID=1001 + - PGID=1001 + - TZ=America/New_York + volumes: + - /media/transmission/config:/config + - /media/transmission/watch:/watch + - /media/transmission/downloads:/downloads + # /downloads/movies in transmission webUI + network_mode: service:gluetun + depends_on: + gluetun: + condition: service_healthy + restart: unless-stopped + + chromium: + image: linuxserver/chromium + container_name: chromium + security_opt: + - seccomp:unconfined #optional + environment: + - PUID=1001 + - PGID=1001 + - TZ=America/New_York + volumes: + - ./chromium-config:/config + network_mode: service:gluetun + depends_on: + gluetun: + condition: service_healthy + shm_size: "1gb" + restart: unless-stopped + + prowlarr: + image: linuxserver/prowlarr:latest + container_name: prowlarr + environment: + - PUID=1001 + - PGID=1001 + - TZ=America/New_York + volumes: + - ./prowlarr-config:/config + labels: + - "traefik.enable=true" + - "traefik.http.routers.prowlarr.entrypoints=websecure" + - "traefik.http.routers.prowlarr.rule=Host(`prowlarr.meftimes.com`)" + - "traefik.http.routers.prowlarr.middlewares=authelia@docker" + - "traefik.http.services.prowlarr.loadbalancer.server.port=9696" + network_mode: service:gluetun + depends_on: + gluetun: + condition: service_healthy + restart: unless-stopped + + jellyfin: + image: linuxserver/jellyfin:latest + container_name: jellyfin + environment: + - PUID=1001 + - PGID=1001 + - TZ=America/New_York + volumes: + - ./jellyfin-config:/config + - /media/transmission/downloads/tvshows:/data/tvshows + - /media/transmission/downloads/movies:/data/movies + labels: + - "traefik.enable=true" + - "traefik.http.routers.jellyfin.entrypoints=websecure" + - "traefik.http.routers.jellyfin.rule=Host(`jellyfin.meftimes.com`)" + - "traefik.http.services.jellyfin.loadbalancer.server.port=8096" + restart: unless-stopped + networks: + - proxy + +networks: + proxy: + external: true