diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..2ab3af3 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,128 @@ +# MediaStack Project (Docker) - min-vpn_single-yaml + +Go to: [https://github.com/geekau/mediastack](https://github.com/geekau/mediastack) + +Download the full "mediastack" repository to your computer by selecting "**Code**" --> "**Download Zip**" + +Extract the downloaded zip file, then go to the directory which suits your deployment method + +Full deployment and configuration instructions are located at: [https://MediaStack.Guide](https://MediaStack.Guide) + +
+ +## What is "min-vpn_single-yaml"? + +This directory contains the configuration to deploy the MediaStack in a minimal Secure VPN architecture, where only the qBittorrent client is using the VPN, and all other network traffic is sent straight out via your ISP's network connection. + +This configuration uses multiple YAML files to deploy over 20 Docker containers. It may take a little longer to deploy and get your MediaStack Project containers deployed, it is much easier to troubleshoot problems when there are configuration issues that need to be debugged. + +Multiple YAML configuration files is **recommended for new Docker users, and for fault finding activities.** + +
+
+ +``` mermaid +graph TD + subgraph DockerNet[
Docker Networking - 172.28.10.0/24
] + Jellyfin -..-> NIC + Plex -.-> NIC + Jellyseerr -..-> NIC + Prowlarr -.-> NIC + Radarr -..-> NIC + Readarr -.-> NIC + Sonarr -..-> NIC + Mylar -.-> NIC + Whisparr -..-> NIC + Bazarr -.-> NIC + Lidarr -..-> NIC + Tdarr -.-> NIC + SABnzbd -..-> NIC + NIC[Host Network Interface] + qBittorrent --- Gluetun + end + Gluetun ==>| Secure VPN | NIC + NIC -.->| Insecure Data | Gateway[
Home

Gateway
] + NIC ==>| Secure VPN | Gateway[
Home

Gateway
] + Gateway -.->| Insecure Data |Internet{
General

Internet
} + Gateway ==>|Secure VPN |VPN{
VPN Server

Anchor Point
} + + style Bazarr stroke:orange,stroke-width:2px + style Lidarr stroke:orange,stroke-width:2px + style Mylar stroke:orange,stroke-width:2px + style Prowlarr stroke:orange,stroke-width:2px + style Radarr stroke:orange,stroke-width:2px + style Readarr stroke:orange,stroke-width:2px + style Sonarr stroke:orange,stroke-width:2px + style Tdarr stroke:orange,stroke-width:2px + style Whisparr stroke:orange,stroke-width:2px + style Jellyfin stroke:orange,stroke-width:2px + style Plex stroke:orange,stroke-width:2px + style qBittorrent stroke:green,stroke-width:2px + style Jellyseerr stroke:orange,stroke-width:2px + style SABnzbd stroke:orange,stroke-width:2px + style Gluetun stroke:green,stroke-width:2px + style VPN stroke:green,stroke-width:2px + style Internet stroke:orange,stroke-width:2px +``` + +
+

+ +> NOTE: Many of the Docker applications are passing traffic through the Gluetun VPN container. When the Gluetun container stops, or if the VPN network connection is interrupted, then all network traffic for the other Docker applications, will also stop until the secure VPN connection is re-established. + +
+ +### Multiple YAML Files Deployment: + +New users benefit from using multiple YAML files, each dedicated to an individual Docker application. This modular approach simplifies troubleshooting and allows users to manage each service independently. If an issue arises, it’s easier to pinpoint and resolve. Additionally, it provides flexibility to update or redeploy specific applications without affecting the entire stack. + +**If you choose to deploy the Docker containers individually, you MUST deploy the Gluetun container first**. The Gluetun Docker container sets up the essential network configurations that establish the foundational network infrastructure for all other Docker containers. Without it, subsequent deployments will fail, as they rely on the network settings defined within the Gluetun YAML file. This prerequisite ensures that all containers can communicate correctly and securely within the Docker network. + +> NOTE: You must update the **`docker-compose.env`** file for your needs, prior to running **`docker compose`**. + +Example: + +``` +vi docker-compose.env +sudo docker compose --file docker-compose-gluetun.yaml --env-file docker-compose.env up -d + +sudo docker compose --file docker-compose-jellyfin.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-jellyseerr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-plex.yaml --env-file docker-compose.env up -d + +sudo docker compose --file docker-compose-prowlarr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-lidarr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-mylar.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-radarr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-readarr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-sonarr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-whisparr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-bazarr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-jackett.yaml --env-file docker-compose.env up -d + + +sudo docker compose --file docker-compose-qbittorrent.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-sabnzbd.yaml --env-file docker-compose.env up -d + +sudo docker compose --file docker-compose-unpackerr.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-tdarr.yaml --env-file docker-compose.env up -d + +sudo docker compose --file docker-compose-swag.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-authelia.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-heimdall.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-ddns-updater.yaml --env-file docker-compose.env up -d +sudo docker compose --file docker-compose-flaresolverr.yaml --env-file docker-compose.env up -d + +sudo docker compose --file docker-compose-portainer.yaml --env-file docker-compose.env up -d +``` + +Additionally, if there are some Docker applications you do not want to run in your MediaStack, then you just don't run the **`docker compose`** command for these applications. + +
+--- + +Follow the deployment instructions at: [https://MediaStack.Guide](https://MediaStack.Guide) + +See you on [Reddit for MediaStack](https://www.reddit.com/r/MediaStack/) + +--- diff --git a/docker/docker-compose-authelia.yaml b/docker/docker-compose-authelia.yaml new file mode 100644 index 0000000..8a75c3f --- /dev/null +++ b/docker/docker-compose-authelia.yaml @@ -0,0 +1,30 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Authelia (Authelia) +## Function: Multi-factor authentication portal for your Apps +## +## Documentation: https://hub.docker.com/r/authelia/authelia +## https://www.authelia.com/integration/prologue/get-started/ +## https://www.linuxserver.io/blog/zero-trust-hosting-and-reverse-proxy-via-cloudflare-swag-and-authelia +## +########################################################################### +########################################################################### +services: + authelia: + image: ghcr.io/authelia/authelia:latest + container_name: authelia + volumes: + - ${FOLDER_FOR_DATA:?err}/authelia:/config + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + restart: unless-stopped + +# NOTE: Authelia MUST NOT connect to the Gluetun VPN container +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-bazarr.yaml b/docker/docker-compose-bazarr.yaml new file mode 100644 index 0000000..35e8e96 --- /dev/null +++ b/docker/docker-compose-bazarr.yaml @@ -0,0 +1,31 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Bazarr (LinuxServer.io) +## Function: Download subtitles for Radarr and Sonarr +## +## Documentation: https://docs.linuxserver.io/images/docker-bazarr +## +########################################################################### +########################################################################### +services: + bazarr: + image: lscr.io/linuxserver/bazarr:latest + container_name: bazarr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/bazarr:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + ports: + - "${WEBUI_PORT_BAZARR:?err}:6767" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:bazarr + - TP_THEME=${TP_THEME:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-ddns-updater.yaml b/docker/docker-compose-ddns-updater.yaml new file mode 100644 index 0000000..6b6a180 --- /dev/null +++ b/docker/docker-compose-ddns-updater.yaml @@ -0,0 +1,54 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: DDNS-Updater (qmcgaw) +## Function: Update Dynamic IP addresses for DNS A and/or AAAA records +## +## Documentation: https://hub.docker.com/r/qmcgaw/ddns-updater +## +########################################################################### +########################################################################### +services: + ddns-updater: + image: qmcgaw/ddns-updater:latest + container_name: ddns-updater + restart: always + user: ${PUID:?err}:${PGID:?err} + volumes: + - ${FOLDER_FOR_DATA:?err}/ddns-updater:/updater/data + ports: + - ${WEBUI_PORT_DDNS_UPDATER:?err}:${WEBUI_PORT_DDNS_UPDATER:?err}/tcp + environment: +# - PUID=${PUID:?err} # Not used in DDNS-Updater - see above: user: ${PUID:?err}:${PGID:?err} +# - PGID=${PGID:?err} # Not used in DDNS-Updater - see above: user: ${PUID:?err}:${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + - CONFIG= + - PERIOD=5m + - UPDATE_COOLDOWN_PERIOD=5m + - PUBLICIP_FETCHERS=all + - PUBLICIP_HTTP_PROVIDERS=all + - PUBLICIPV4_HTTP_PROVIDERS=all + - PUBLICIPV6_HTTP_PROVIDERS=all + - PUBLICIP_DNS_PROVIDERS=all + - PUBLICIP_DNS_TIMEOUT=3s + - HTTP_TIMEOUT=10s + + # Web UI + - LISTENING_ADDRESS=:${WEBUI_PORT_DDNS_UPDATER:?err} + - ROOT_URL=/ + + # Backup + - BACKUP_PERIOD=0 # 0 to disable + - BACKUP_DIRECTORY=/updater/data + + # Other + - LOG_LEVEL=info + - LOG_CALLER=hidden + - SHOUTRRR_ADDRESSES= + +# NOTE: DDNS-Update MUST NOT connect to the Gluetun VPN container +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-filebot.yaml b/docker/docker-compose-filebot.yaml new file mode 100644 index 0000000..767435b --- /dev/null +++ b/docker/docker-compose-filebot.yaml @@ -0,0 +1,34 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Filebot (GitHub) +## Function: Lookup and Rename Media from Internet Databases +## +## Docker Page: https://github.com/filebot/filebot-docker#filebot-xpra +## Homepage: https://www.filebot.net/ +## User Forum: https://www.filebot.net/forums +## +########################################################################### +########################################################################### +services: + filebot: + image: rednoah/filebot:xpra + container_name: filebot + restart: unless-stopped + ports: + - "${WEBUI_PORT_FILEBOT:?err}:5454" + volumes: + - ${FOLDER_FOR_DATA:?err}/filebot:/data/filebot + - ${FOLDER_FOR_MEDIA:?err}/filebot:/filebot + environment: +# - XPRA_AUTH=password:value=YOUR_PASSWORD + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + - DARK_MODE=1 + +networks: + default: + name: mediastack + external: true \ No newline at end of file diff --git a/docker/docker-compose-flaresolverr.yaml b/docker/docker-compose-flaresolverr.yaml new file mode 100644 index 0000000..9f50961 --- /dev/null +++ b/docker/docker-compose-flaresolverr.yaml @@ -0,0 +1,27 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Flaresolverr (Flaresolverr) +## Function: Cloudflare Proxy Server +## +## Documentation: https://github.com/FlareSolverr/FlareSolverr +## +########################################################################### +########################################################################### +services: + flaresolverr: + image: ghcr.io/flaresolverr/flaresolverr:latest + container_name: flaresolverr + restart: unless-stopped + ports: + - "${FLARESOLVERR_PORT:?err}:8191" + environment: + - LOG_LEVEL=info + - LOG_HTML=false + - CAPTCHA_SOLVER=none + - TZ=${TIMEZONE:?err} + +networks: + default: + name: mediastack + external: true \ No newline at end of file diff --git a/docker/docker-compose-freshrss.yaml b/docker/docker-compose-freshrss.yaml new file mode 100644 index 0000000..c3b8268 --- /dev/null +++ b/docker/docker-compose-freshrss.yaml @@ -0,0 +1,29 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: FreshRss (LinuxServer.io) +## Function: Usenet Download Client +## +## Documentation: https://docs.linuxserver.io/images/docker-sabnzbd +## +########################################################################### +########################################################################### +services: + freshrss: + image: lscr.io/linuxserver/freshrss:latest + container_name: freshrss + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/freshrss:/config + ports: + - "${WEBUI_PORT_FRESHRSS:?err}:80" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-gluetun.yaml b/docker/docker-compose-gluetun.yaml new file mode 100644 index 0000000..c920e58 --- /dev/null +++ b/docker/docker-compose-gluetun.yaml @@ -0,0 +1,69 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Gluetun (qmcgaw) +## Function: VPN Client +## +## Documentation: https://github.com/qdm12/gluetun-wiki +## +########################################################################### +########################################################################### +networks: + mediastack: + name: mediastack + driver: bridge + ipam: + driver: default + config: + - subnet: ${DOCKER_SUBNET:?err} + gateway: ${DOCKER_GATEWAY:?err} + +services: + gluetun: + image: qmcgaw/gluetun:latest + container_name: gluetun + restart: always + cap_add: + - NET_ADMIN + devices: + - /dev/net/tun:/dev/net/tun + ports: + - "8320:8320/tcp" # Gluetun Local Network HTTP control server + - "8888:8888/tcp" # Gluetun Local Network HTTP proxy + - "8388:8388/tcp" # Gluetun Local Network Shadowsocks + - "8388:8388/udp" # Gluetun Local Network Shadowsocks + - "${WEBUI_PORT_QBITTORRENT:?err}:${WEBUI_PORT_QBITTORRENT:?err}" # WebUI Portal: qBittorrent + - "${QBIT_PORT:?err}:6881" # Transmission Torrent Port + + volumes: + - ${FOLDER_FOR_DATA:?err}/gluetun:/gluetun + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + - VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:?err} + - OPENVPN_USER=${VPN_USERNAME:?err} + - OPENVPN_PASSWORD=${VPN_PASSWORD:?err} + - SERVER_COUNTRIES=${SERVER_COUNTRIES} + - SERVER_REGIONS=${SERVER_REGIONS} + - SERVER_CITIES=${SERVER_CITIES} + - SERVER_HOSTNAMES=${SERVER_HOSTNAMES} + - SERVER_CATEGORIES=${SERVER_CATEGORIES} + - FIREWALL_OUTBOUND_SUBNETS=${LOCAL_SUBNET:?err} + - OPENVPN_CUSTOM_CONFIG=${OPENVPN_CUSTOM_CONFIG} + - HTTP_CONTROL_SERVER_ADDRESS=:${GLUETUN_CONTROL_PORT:?err} + - VPN_TYPE=${VPN_TYPE} + - VPN_ENDPOINT_IP=${VPN_ENDPOINT_IP} + - VPN_ENDPOINT_PORT=${VPN_ENDPOINT_PORT} + - WIREGUARD_PUBLIC_KEY=${WIREGUARD_PUBLIC_KEY} + - WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} + - WIREGUARD_PRESHARED_KEY=${WIREGUARD_PRESHARED_KEY} + - WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES} + - HTTPPROXY=on + - SHADOWSOCKS=on + +# NOTE: Gluetun VPN container MUST ONLY connect to the mediastack + + networks: + - mediastack diff --git a/docker/docker-compose-heimdall.yaml b/docker/docker-compose-heimdall.yaml new file mode 100644 index 0000000..3662b2b --- /dev/null +++ b/docker/docker-compose-heimdall.yaml @@ -0,0 +1,32 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Heimdall (LinuxServer.io) +## Function: Organise links to web sites and web applications +## +## Documentation: https://docs.linuxserver.io/images/docker-heimdall +## https://docs.linuxserver.io/general/swag#using-heimdall-as-the-home-page-at-domain-root +## +########################################################################### +########################################################################### +services: + heimdall: + image: lscr.io/linuxserver/heimdall:latest + container_name: heimdall + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/heimdall:/config + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + ports: + - "${WEBUI_PORT_HEIMDALL:?err}:80" + +# NOTE: Heimdall MUST NOT connect to the Gluetun VPN container + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-homarr.yaml b/docker/docker-compose-homarr.yaml new file mode 100644 index 0000000..24fdd35 --- /dev/null +++ b/docker/docker-compose-homarr.yaml @@ -0,0 +1,32 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Homarr (https://ghcr.io/) +## Function: Application Dashboard +## +## Documentation: https://homarr.dev/docs/getting-started/after-the-installation +## +########################################################################### +########################################################################### +services: + homarr: + image: ghcr.io/ajnart/homarr:latest + container_name: homarr + restart: unless-stopped + ports: + - "${WEBUI_PORT_HOMARR:?err}:7575" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${FOLDER_FOR_DATA:?err}/homarr/configs:/app/data/configs + - ${FOLDER_FOR_DATA:?err}/homarr/icons:/app/public/icons + - ${FOLDER_FOR_DATA:?err}/homarr/data:/data + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + +networks: + default: + name: mediastack + external: true \ No newline at end of file diff --git a/docker/docker-compose-homepage.yaml b/docker/docker-compose-homepage.yaml new file mode 100644 index 0000000..15ae1fd --- /dev/null +++ b/docker/docker-compose-homepage.yaml @@ -0,0 +1,32 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Homepage (https://ghcr.io/) +## Function: Application Dashboard +## +## Documentation: https://gethomepage.dev/latest/configs/ +## +########################################################################### +########################################################################### +services: + homepage: + image: ghcr.io/gethomepage/homepage:latest + container_name: homepage + restart: unless-stopped + ports: + - ${WEBUI_PORT_HOMEPAGE:?err}:3000 + volumes: + - ${FOLDER_FOR_DATA:?err}/homepage:/app/config + - /var/run/docker.sock:/var/run/docker.sock + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + +# NOTE: Homepage MUST NOT connect to the Gluetun VPN container + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-jackett.yaml b/docker/docker-compose-jackett.yaml new file mode 100644 index 0000000..170e6ef --- /dev/null +++ b/docker/docker-compose-jackett.yaml @@ -0,0 +1,22 @@ +services: + jackett: + image: lscr.io/linuxserver/jackett:latest + container_name: jackett + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - AUTO_UPDATE=true #optional + # - RUN_OPTS= #optional + volumes: + - ${FOLDER_FOR_DATA:?err}/jackett/data:/config + - ${FOLDER_FOR_MEDIA:?err}:/downloads + ports: + - "${WEBUI_PORT_JACKET:?err}:9117" + restart: unless-stopped + + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-jellyfin.yaml b/docker/docker-compose-jellyfin.yaml new file mode 100644 index 0000000..170b49b --- /dev/null +++ b/docker/docker-compose-jellyfin.yaml @@ -0,0 +1,38 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Jellyfin (LinuxServer.io) +## Function: Media Server +## +## Documentation: https://jellyfin.org/docs/general/administration/installing#docker +## https://jellyfin.org/docs/general/administration/hardware-acceleration/ +## +########################################################################### +########################################################################### +services: + jellyfin: + image: lscr.io/linuxserver/jellyfin:latest + container_name: jellyfin + restart: unless-stopped +# Add Configurations for GPU Hardware Rendering Here: +# devices: +# - /dev/dri/renderD128:/dev/dri/renderD128 +# - /dev/dri/card0:/dev/dri/card0 + volumes: + - ${FOLDER_FOR_DATA:?err}/jellyfin:/config + - ${FOLDER_FOR_MEDIA:?err}/media:/data/media + ports: + - "${WEBUI_PORT_JELLYFIN:?err}:8096" +# - 7359:7359/udp # Enable for DLNA - Only works on HOST Network Mode +# - 1900:1900/udp # Enable for DLNA - Only works on HOST Network Mode + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} +# - JELLYFIN_PublishedServerUrl=${LOCAL_DOCKER_IP:?err} # Enable for DLNA - Only works on HOST Network Mode + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-jellyseerr.yaml b/docker/docker-compose-jellyseerr.yaml new file mode 100644 index 0000000..33b1b63 --- /dev/null +++ b/docker/docker-compose-jellyseerr.yaml @@ -0,0 +1,29 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Jellyseerr (fallenbagel) +## Function: Media Request Manager +## +## Documentation: https://hub.docker.com/r/fallenbagel/jellyseerr +## +########################################################################### +########################################################################### +services: + jellyseerr: + image: fallenbagel/jellyseerr:latest + container_name: jellyseerr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/jellyseerr:/app/config + ports: + - "${WEBUI_PORT_JELLYSEERR:?err}:5055" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-lidarr.yaml b/docker/docker-compose-lidarr.yaml new file mode 100644 index 0000000..784eb9d --- /dev/null +++ b/docker/docker-compose-lidarr.yaml @@ -0,0 +1,31 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Lidarr (LinuxServer.io) +## Function: Music Library Manager +## +## Documentation: https://docs.linuxserver.io/images/docker-lidarr +## +########################################################################### +########################################################################### +services: + lidarr: + image: lscr.io/linuxserver/lidarr:latest + container_name: lidarr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/lidarr:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + ports: + - "${WEBUI_PORT_LIDARR:?err}:8686" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:lidarr + - TP_THEME=${TP_THEME:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-mylar.yaml b/docker/docker-compose-mylar.yaml new file mode 100644 index 0000000..487a787 --- /dev/null +++ b/docker/docker-compose-mylar.yaml @@ -0,0 +1,31 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Mylar3 (LinuxServer.io) +## Function: Comic Library Manager +## +## Documentation: https://github.com/mylar3/mylar3/wiki +## +########################################################################### +########################################################################### +services: + mylar: + image: lscr.io/linuxserver/mylar3:latest + container_name: mylar + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/mylar:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + ports: + - "${WEBUI_PORT_MYLAR:?err}:8090" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:mylar3 + - TP_THEME=${TP_THEME:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-notifiarr.yaml b/docker/docker-compose-notifiarr.yaml new file mode 100644 index 0000000..c91b888 --- /dev/null +++ b/docker/docker-compose-notifiarr.yaml @@ -0,0 +1,26 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Notifiarr +## +## +## Documentation: https://github.com/Notifiarr/notifiarr/blob/main/examples/compose.yml +########################################################################### +########################################################################### +services: + notifiarr: + image: golift/notifiarr:latest + container_name: notifiarr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/notifiarr:/config + - /var/run/utmp:/var/run/utmp + - /etc/machine-id:/etc/machine-id + ports: + - "${WEBUI_PORT_NOTIFIARR:?err}:5454" + + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-plex.yaml b/docker/docker-compose-plex.yaml new file mode 100644 index 0000000..60c5fc5 --- /dev/null +++ b/docker/docker-compose-plex.yaml @@ -0,0 +1,44 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Plex (LinuxServer.io) +## Function: Media Server +## +## Documentation: https://hub.docker.com/r/linuxserver/plex +## +########################################################################### +########################################################################### +services: + plex: + image: lscr.io/linuxserver/plex:latest + container_name: plex + restart: unless-stopped +# Add Configurations for GPU Hardware Rendering Here: +# devices: +# - /dev/dri/renderD128:/dev/dri/renderD128 +# - /dev/dri/card0:/dev/dri/card0 + volumes: + - ${FOLDER_FOR_DATA:?err}/plex:/config + - ${FOLDER_FOR_MEDIA:?err}/media:/data/media + ports: + - "${WEBUI_PORT_PLEX:?err}:32400" +# - 1900:1900/udp +# - 5353:5353/udp + - 8324:8324 + - 32410:32410/udp + - 32412:32412/udp + - 32413:32413/udp + - 32414:32414/udp + - 32469:32469 + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + - VERSION=docker + - PLEX_CLAIM=${PLEX_CLAIM} + +networks: + default: + name: mediastack + external: true \ No newline at end of file diff --git a/docker/docker-compose-portainer.yaml b/docker/docker-compose-portainer.yaml new file mode 100644 index 0000000..0a85a4b --- /dev/null +++ b/docker/docker-compose-portainer.yaml @@ -0,0 +1,21 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Portainer (Portainer.io) +## Function: Alternate GUI Manager for Docker +## +## Documentation: https://docs.portainer.io/start/install/server/docker +## +########################################################################### +########################################################################### +services: + portainer: + image: portainer/portainer-ce:latest + container_name: portainer + restart: always + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${FOLDER_FOR_DATA:?err}/portainer:/data + ports: + - "${WEBUI_PORT_PORTAINER:?err}:9000" + network_mode: bridge diff --git a/docker/docker-compose-prowlarr.yaml b/docker/docker-compose-prowlarr.yaml new file mode 100644 index 0000000..b2744ed --- /dev/null +++ b/docker/docker-compose-prowlarr.yaml @@ -0,0 +1,30 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Prowlarr (LinuxServer.io) +## Function: Indexer and Search Manager +## +## Documentation: https://docs.linuxserver.io/images/docker-prowlarr +## +########################################################################### +########################################################################### +services: + prowlarr: + image: lscr.io/linuxserver/prowlarr:develop + container_name: prowlarr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/prowlarr:/config + ports: + - "${WEBUI_PORT_PROWLARR:?err}:9696" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:prowlarr + - TP_THEME=${TP_THEME:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-qbittorrent.yaml b/docker/docker-compose-qbittorrent.yaml new file mode 100644 index 0000000..5894302 --- /dev/null +++ b/docker/docker-compose-qbittorrent.yaml @@ -0,0 +1,31 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: qBittorrent (LinuxServer.io) +## Function: Torrent Download Client +## +## Documentation: https://docs.linuxserver.io/images/docker-qbittorrent +## +########################################################################### +########################################################################### +services: + qbittorrent: + image: lscr.io/linuxserver/qbittorrent:latest + container_name: qbittorrent + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/qbittorrent:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + - WEBUI_PORT=${WEBUI_PORT_QBITTORRENT:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:qbittorrent + - TP_THEME=${TP_THEME:?err} + +## Do Not Change Network for qBittorrent +## qBittorrent MUST always use a VPN / Secure Internet connection + + network_mode: "container:gluetun" diff --git a/docker/docker-compose-radarr.yaml b/docker/docker-compose-radarr.yaml new file mode 100644 index 0000000..70fea45 --- /dev/null +++ b/docker/docker-compose-radarr.yaml @@ -0,0 +1,31 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Radarr (LinuxServer.io) +## Function: Movie Library Manager +## +## Documentation: https://docs.linuxserver.io/images/docker-radarr +## +########################################################################### +########################################################################### +services: + radarr: + image: lscr.io/linuxserver/radarr:latest + container_name: radarr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/radarr:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + ports: + - "${WEBUI_PORT_RADARR:?err}:7878" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:radarr + - TP_THEME=${TP_THEME:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-readarr.yaml b/docker/docker-compose-readarr.yaml new file mode 100644 index 0000000..ba332e7 --- /dev/null +++ b/docker/docker-compose-readarr.yaml @@ -0,0 +1,31 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Readarr (LinuxServer.io) +## Function: Book Library Manager +## +## Documentation: https://docs.linuxserver.io/images/docker-readarr +## +########################################################################### +########################################################################### +services: + readarr: + image: lscr.io/linuxserver/readarr:develop + container_name: readarr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/readarr:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + ports: + - "${WEBUI_PORT_READARR:?err}:8787" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:readarr + - TP_THEME=${TP_THEME:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-sabnzbd.yaml b/docker/docker-compose-sabnzbd.yaml new file mode 100644 index 0000000..8217b9d --- /dev/null +++ b/docker/docker-compose-sabnzbd.yaml @@ -0,0 +1,31 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: SABnzbd (LinuxServer.io) +## Function: Usenet Download Client +## +## Documentation: https://docs.linuxserver.io/images/docker-sabnzbd +## +########################################################################### +########################################################################### +services: + sabnzbd: + image: lscr.io/linuxserver/sabnzbd:latest + container_name: sabnzbd + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/sabnzbd:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + ports: + - "${WEBUI_PORT_SABNZBD:?err}:8080" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:sabnzbd + - TP_THEME=${TP_THEME:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-sonarr.yaml b/docker/docker-compose-sonarr.yaml new file mode 100644 index 0000000..1aae070 --- /dev/null +++ b/docker/docker-compose-sonarr.yaml @@ -0,0 +1,31 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Sonarr (LinuxServer.io) +## Function: Series Library Manager (TV Shows) +## +## Documentation: https://docs.linuxserver.io/images/docker-sonarr +## +########################################################################### +########################################################################### +services: + sonarr: + image: lscr.io/linuxserver/sonarr:latest + container_name: sonarr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/sonarr:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + ports: + - "${WEBUI_PORT_SONARR:?err}:8989" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - TZ=${TIMEZONE:?err} + - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:sonarr + - TP_THEME=${TP_THEME:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-swag.yaml b/docker/docker-compose-swag.yaml new file mode 100644 index 0000000..042a4f3 --- /dev/null +++ b/docker/docker-compose-swag.yaml @@ -0,0 +1,46 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: SWAG (LinuxServer.io) +## Function: Reverse proxy with Certbot, for Let's Encrypt / ZeroSSL +## +## Documentation: https://docs.linuxserver.io/general/swag +## https://www.linuxserver.io/blog/zero-trust-hosting-and-reverse-proxy-via-cloudflare-swag-and-authelia +## +########################################################################### +########################################################################### +services: + swag: + image: lscr.io/linuxserver/swag:latest + container_name: swag + cap_add: + - NET_ADMIN + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/swag:/config + ports: + - ${REVERSE_PROXY_PORT_HTTP:?err}:80 + - ${REVERSE_PROXY_PORT_HTTPS:?err}:443 + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + - URL=${DOMAINNAME:?err} + - SUBDOMAINS=${SUBDOMAINS} + - VALIDATION=${VALIDATION:?err} + - CERTPROVIDER=${CERTPROVIDER} + - DNSPLUGIN=${DNSPLUGIN} + - PROPAGATION=${PROPAGATION} + - DUCKDNSTOKEN=${DUCKDNSTOKEN} + - EMAIL=${EMAIL} + - ONLY_SUBDOMAINS=${ONLY_SUBDOMAINS} + - EXTRA_DOMAINS=${EXTRA_DOMAINS} + - STAGING=${STAGING} + +# NOTE: SWAG MUST NOT connect to the Gluetun VPN container + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-tdarr.yaml b/docker/docker-compose-tdarr.yaml new file mode 100644 index 0000000..6a253aa --- /dev/null +++ b/docker/docker-compose-tdarr.yaml @@ -0,0 +1,59 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Tdarr V2 (haveagitgat/tdarr) +## Function: Tdarr V2 - Audio/Video library transcoding automation +## (Contains Tdarr_Server and WebUI ) +## +## Documentation: https://docs.tdarr.io/docs/installation/docker/run-compose/ +## https://docs.tdarr.io/docs/installation/docker/hardware-transcoding +## +########################################################################### +########################################################################### +services: + tdarr: + image: ghcr.io/haveagitgat/tdarr:latest + container_name: tdarr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/tdarr/server:/app/server + - ${FOLDER_FOR_DATA:?err}/tdarr/configs:/app/configs + - ${FOLDER_FOR_DATA:?err}/tdarr/logs:/app/logs + - ${FOLDER_FOR_DATA:?err}/tdarr_transcode_cache:/temp + - ${FOLDER_FOR_MEDIA:?err}/media:/data + ports: + - "${TDARR_SERVER_PORT:?err}:${TDARR_SERVER_PORT:?err}" + - "${WEBUI_PORT_TDARR:?err}:${WEBUI_PORT_TDARR:?err}" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + - serverIP=0.0.0.0 + - serverPort=${TDARR_SERVER_PORT:?err} + - webUIPort=${WEBUI_PORT_TDARR:?err} + - internalNode=true + - nodeID=Tdarr_Server + + tdarr-node: + image: ghcr.io/haveagitgat/tdarr_node:latest + container_name: tdarr-node + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/tdarr/configs:/app/configs + - ${FOLDER_FOR_DATA:?err}/tdarr/logs:/app/logs + - ${FOLDER_FOR_DATA:?err}/tdarr_transcode_cache:/temp + - ${FOLDER_FOR_MEDIA:?err}/media:/data + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + - nodeID=Tdarr_Node_1 + - serverIP=0.0.0.0 + - serverPort=${TDARR_SERVER_PORT:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose-unpackerr.yaml b/docker/docker-compose-unpackerr.yaml new file mode 100644 index 0000000..83b9668 --- /dev/null +++ b/docker/docker-compose-unpackerr.yaml @@ -0,0 +1,102 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Unpackerr (Hotio.Dev) +## Function: Archive Media Extraction +## +## Documentation: https://github.com/davidnewhall/unpackerr +## https://github.com/davidnewhall/unpackerr/blob/master/examples/docker-compose.yml +## +########################################################################### +########################################################################### +services: + unpackerr: + image: ghcr.io/hotio/unpackerr:latest + container_name: unpackerr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/unpackerr:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} +# Documentation on all Environment Variables can be found at: +# https://github.com/davidnewhall/unpackerr#docker-env-variables + - UN_DEBUG=false + - UN_LOG_FILE= + - UN_LOG_FILES=10 + - UN_LOG_FILE_MB=10 + - UN_INTERVAL=2m + - UN_START_DELAY=1m + - UN_RETRY_DELAY=5m + - UN_MAX_RETRIES=3 + - UN_PARALLEL=1 + - UN_FILE_MODE=0664 + - UN_DIR_MODE=0775 + # Sonarr Config - Copy API Key from: http://sonarr:8989/general/settings + - UN_SONARR_0_URL=http://sonarr:8989 + - UN_SONARR_0_API_KEY= + - UN_SONARR_0_PATHS_0=/data/torrents/anime + - UN_SONARR_0_PATHS_1=/data/torrents/tv + - UN_SONARR_0_PROTOCOLS=torrent + - UN_SONARR_0_TIMEOUT=10s + - UN_SONARR_0_DELETE_ORIG=false + - UN_SONARR_0_DELETE_DELAY=5m + # Radarr Config - Copy API Key from: http://radarr:7878/general/settings + - UN_RADARR_0_URL=http://radarr:7878 + - UN_RADARR_0_API_KEY= + - UN_RADARR_0_PATHS_0=/data/torrents/movies + - UN_RADARR_0_PROTOCOLS=torrent + - UN_RADARR_0_TIMEOUT=10s + - UN_RADARR_0_DELETE_ORIG=false + - UN_RADARR_0_DELETE_DELAY=5m + # Lidarr Config - Copy API Key from: http://lidarr:8686/general/settings + - UN_LIDARR_0_URL=http://lidarr:8686 + - UN_LIDARR_0_API_KEY= + - UN_LIDARR_0_PATHS_0=/data/torrents/music + - UN_LIDARR_0_PROTOCOLS=torrent + - UN_LIDARR_0_TIMEOUT=10s + - UN_LIDARR_0_DELETE_ORIG=false + - UN_LIDARR_0_DELETE_DELAY=5m + # Readarr Config - Copy API Key from: http://readarr:8787/general/settings + - UN_READARR_0_URL=http://readarr:8787 + - UN_READARR_0_API_KEY= + - UN_READARR_0_PATHS_0=/data/torrents/books + - UN_READARR_0_PROTOCOLS=torrent + - UN_READARR_0_TIMEOUT=10s + - UN_READARR_0_DELETE_ORIG=false + - UN_READARR_0_DELETE_DELAY=5m + # Folder Config + - UN_FOLDER_0_PATH= + - UN_FOLDER_0_EXTRACT_PATH= + - UN_FOLDER_0_DELETE_AFTER=10m + - UN_FOLDER_0_DELETE_ORIGINAL=false + - UN_FOLDER_0_DELETE_FILES=false + - UN_FOLDER_0_MOVE_BACK=false + # Webhook Config + - UN_WEBHOOK_0_URL= + - UN_WEBHOOK_0_NAME= + - UN_WEBHOOK_0_NICKNAME=Unpackerr + - UN_WEBHOOK_0_CHANNEL= + - UN_WEBHOOK_0_TIMEOUT=10s + - UN_WEBHOOK_0_SILENT=false + - UN_WEBHOOK_0_IGNORE_SSL=false + - UN_WEBHOOK_0_EXCLUDE_0= + - UN_WEBHOOK_0_EVENTS_0=0 + - UN_WEBHOOK_0_TEMPLATE_PATH= + - UN_WEBHOOK_0_CONTENT_TYPE=application/json + # Command Hook Config + - UN_CMDHOOK_0_COMMAND= + - UN_CMDHOOK_0_NAME= + - UN_CMDHOOK_0_TIMEOUT=10s + - UN_CMDHOOK_0_SILENT=false + - UN_CMDHOOK_0_SHELL=false + - UN_CMDHOOK_0_EXCLUDE_0= + - UN_CMDHOOK_0_EVENTS_0=0 + + security_opt: + - no-new-privileges:true + + network_mode: none diff --git a/docker/docker-compose-whisparr.yaml b/docker/docker-compose-whisparr.yaml new file mode 100644 index 0000000..12e3d63 --- /dev/null +++ b/docker/docker-compose-whisparr.yaml @@ -0,0 +1,30 @@ +########################################################################### +########################################################################### +## +## Docker Compose File: Whisparr (Hotio.Dev) +## Function: Adult Media Library Manager +## +## Documentation: https://wiki.servarr.com/whisparr +## +########################################################################### +########################################################################### +services: + whisparr: + image: hotio/whisparr:nightly + container_name: whisparr + restart: unless-stopped + volumes: + - ${FOLDER_FOR_DATA:?err}/whisparr:/config + - ${FOLDER_FOR_MEDIA:?err}:/data + ports: + - "${WEBUI_PORT_WHISPARR:?err}:6969" + environment: + - PUID=${PUID:?err} + - PGID=${PGID:?err} + - UMASK=${UMASK:?err} + - TZ=${TIMEZONE:?err} + +networks: + default: + name: mediastack + external: true diff --git a/docker/docker-compose.env b/docker/docker-compose.env new file mode 100644 index 0000000..821a88a --- /dev/null +++ b/docker/docker-compose.env @@ -0,0 +1,142 @@ +################################################################################# +################################################################################# +################################################################################# +## +## Docker Compose Environment Variable file for Jellyfin / *ARR Media Stack +## +## Update any of the environment variables below as required. +## +## It is highly recommended Linux users set up a "docker" user, so the +## applications can access the local filesystem with this user's access +## privileges. Use PUID / PGID to map user access between the Docker apps +## and local filesystem. +## +## The MediaStack Guide is located at https://MediaStack.Guide +## +################################################################################# +################################################################################# +################################################################################# + +# Name of the project in Docker +COMPOSE_PROJECT_NAME=mediastack + +# This is the network subnet which will be used inside the docker "media_network", change as required. +# LOCAL_SUBNET is your home network and is needed so the VPN client allows access to your home computers. +DOCKER_SUBNET=172.28.10.0/24 +DOCKER_GATEWAY=172.28.10.1 +LOCAL_SUBNET=10.0.0.0/22 # This is the IP Subnet used on your home network +LOCAL_DOCKER_IP=10.0.0.156 # This is the IP Address of your Docker computer + +# Each of the "*ARR" applications have been configured so the theme can be changed to your needs. +# Refer to Theme Park for more info / options: https://docs.theme-park.dev/theme-options/aquamarine/ +TP_THEME=nord + +# If you intend to use Plex as your Media Server, then enter your Plex Claim +# information below, to link this Plex Media Server to your Plex account +PLEX_CLAIM= + +# These are the folders on your local host computer / NAS running docker, they MUST exist +# and have correct permissions for PUID and PGUI prior to running the docker compose. +# +# Use the commands in the Guide to create all the sub-folders in each of these folders. + +# Host Data Folders - Will accept Linux, Windows, NAS folders. +# Make sure these folders exists before running the "docker compose" command. +FOLDER_FOR_MEDIA=/mediastack/media # <-- Update for your folders - Synology Example: /volume1/media +FOLDER_FOR_DATA=/mediastack/appdata # <-- Update for your folders - Synology Example: /volume1/docker/appdata + +# File access, date and time details for the containers / applications to use. +# Run "sudo id docker" on host computer to find PUID / PGID and update these to suit. +PUID=1000 +PGID=1000 +UMASK=0002 +TIMEZONE=Europe/Paris + +# Update your own Internet VPN provide details below +# Online documentation: https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers +VPN_TYPE=openvpn +VPN_SERVICE_PROVIDER=nordvpn +VPN_USERNAME=FNigjfrq51hVWgfmLDj68GN4 +VPN_PASSWORD=a75LUip6nrgbLdSmLte24MXw + + +# You MUST provide at least one entry to the SERVER variables below, that supports your VPN provider's settings. +# If you want to add more than one entry per line, use comma separated values: "one,two,three" etc... +SERVER_COUNTRIES=Italy +SERVER_REGIONS=Europe +SERVER_CITIES= +SERVER_HOSTNAMES= +SERVER_CATEGORIES= + +# Fill in this item ONLY if you're using a custom OpenVPN configuration +# Should be inside gluetun data folder - Example: /gluetun/custom-openvpn.conf +# You can then edit it inside the FOLDER_FOR_DATA location for gluetun. +OPENVPN_CUSTOM_CONFIG= +GLUETUN_CONTROL_PORT=8320 + +# Fill in these items ONLY if you change VPN_TYPE to "wireguard" +VPN_ENDPOINT_IP= +VPN_ENDPOINT_PORT= +WIREGUARD_PUBLIC_KEY= +WIREGUARD_PRIVATE_KEY= +WIREGUARD_PRESHARED_KEY= +WIREGUARD_ADDRESSES= + +# These are the default ports used to access each of the application in your web browser. +# You can safely change these if you need, but they can't conflict with other active ports. +QBIT_PORT=6881 +FLARESOLVERR_PORT=8191 + +TDARR_SERVER_PORT=8266 +WEBUI_PORT_TDARR=8265 + +WEBUI_PORT_BAZARR=6767 +WEBUI_PORT_DDNS_UPDATER=8310 +WEBUI_PORT_FILEBOT=5454 +WEBUI_PORT_HEIMDALL=2080 +WEBUI_PORT_FRESHRSS=3280 +WEBUI_PORT_HOMARR=3200 +WEBUI_PORT_HOMEPAGE=3000 +WEBUI_PORT_JELLYFIN=8096 +WEBUI_PORT_JELLYSEERR=5055 +WEBUI_PORT_LIDARR=8686 +WEBUI_PORT_MYLAR=8090 +WEBUI_PORT_NOTIFIARR=5454 +WEBUI_PORT_PLEX=32400 +WEBUI_PORT_PORTAINER=9000 +WEBUI_PORT_PROWLARR=9696 +WEBUI_PORT_QBITTORRENT=8200 +WEBUI_PORT_RADARR=7878 +WEBUI_PORT_READARR=8787 +WEBUI_PORT_SONARR=8989 +WEBUI_PORT_SABNZBD=8100 +WEBUI_PORT_WHISPARR=6969 +WEBUI_PORT_JACKET=9117 + +# SWAG is configured for Reverse Proxy. Set your Internet gateway to redirect incoming ports 80 and 443 +# to the ports used below (using Docker IP Address), and they will be translated back to 80 and 443 by SWAG. +# Change these port numbers if you have conflicting services running on the Docker host computer. +# If ports 80 and 443 are already used, then adjust and redirect incoming ports to 5080 and 5443, or similar. + +REVERSE_PROXY_PORT_HTTP=80 +REVERSE_PROXY_PORT_HTTPS=443 + +# SWAG REVERSE PROXY SETTINGS: +DOMAINNAME=your-domain-name-goes-here.com +SUBDOMAINS=wildcard +VALIDATION=dns +DNSPLUGIN=cloudflare +CERTPROVIDER=letsencrypt +PROPAGATION= +DUCKDNSTOKEN= +EMAIL= +ONLY_SUBDOMAINS=false +EXTRA_DOMAINS= +STAGING=false + +# Cloudflare Tunnel for SWAG +CF_ZONE_ID= +CF_ACCOUNT_ID= +CF_API_TOKEN= +CF_TUNNEL_NAME= +CF_TUNNEL_TOKEN=