refactor: replaced hard-coded api keys and urls, declared in the '.env' file. added homepage background

This commit is contained in:
2026-05-25 03:03:29 -07:00
parent ceace85ef5
commit 8554d076e5
17 changed files with 193 additions and 107 deletions
+95 -57
View File
@@ -9,7 +9,9 @@ services:
environment:
- VPN_SERVICE_PROVIDER=protonvpn # Or mullvad, protonvpn, surfshark, etc.
- VPN_TYPE=wireguard # WireGuard, openvpn
- WIREGUARD_PRIVATE_KEY=${PROTONVPN_API_KEY}
- HTTP_CONTROL_SERVER=ON
- HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE='{"auth":"apikey","apikey":"${GLUETUN_KEY}"}' # generate by running `docker run --rm qmcgaw/gluetun genkey`, then adding this to your `.env` file
- WIREGUARD_PRIVATE_KEY=${VPN_PRIVATE_KEY}
- WIREGUARD_MTU=1280
- VPN_PORT_FORWARDING=on
- VPN_PORT_FORWARDING_PROVIDER=protonvpn
@@ -18,18 +20,18 @@ services:
- SERVER_COUNTRIES=Netherlands # choose fast P2P friendly countries
- NETWORK_LOCAL_ADDRESSES=192.168.50.0/24,172.16.0.0/12
- FIREWALL_OUTBOUND_SUBNETS=192.168.50.0/24
- TZ=America/Los_Angeles
- DNS_UPSTREAM_RESOLVER_TYPE=doh # DNS over TLS is an extra layer of security so your isp can not look at what you're doing through your DNS requests, even if your using a vpn (very vague, I don't know how this syustem works with a vpn). Since we aren't making any weird DNS requests... we are: prowlarr
- TZ=${TIMEZONE}
- DNS_UPSTREAM_RESOLVER_TYPE=doh # DNS over TLS is an extra layer of security so your isp can not look at what you're doing through your DNS requests, even if your using a vpn (very vague, I don't know how this syustem works with a vpn).
ports: # YOU MUST SPECIFY A PORT PER SERVICE ROUTED THROUGH GLUETUN!
- 8888:8888/tcp
- 2161:2161 # qBittorrent Web UI
- 9696:9696 # Prowlarr
- 8989:8989 # Sonarr
- 7878:7878 # Radarr
- 8686:8686 # Lidarr
#- 5055:5055/tcp # Seerr # took this out of gluetun, as it could cause issues with starting the container, and it was unecessary
- 6881:6881 # Torrent port # to be honest, I forgot what this was I dont even have this listed in the universal firewall (ufw)
- 6881:6881/udp
- 8888:8000/tcp # gluetun control server, i dont think you should change this
- 6881:6881 # Default port for qbit
- 6881:6881/udp # Default port for qbit, if udp > tcp
- ${QBITTORRENT_PORT}:${QBITTORRENT_PORT} # qBittorrent Web UI
- ${PROWLARR_PORT}:${PROWLARR_PORT} # Prowlarr
- ${SONARR_PORT}:${SONARR_PORT} # Sonarr
- ${RADARR_PORT}:${RADARR_PORT} # Radarr
- ${LIDARR_PORT}:${LIDARR_PORT} # Lidarr
#- ${SEERR_PORT}:${SEERR_PORT}/tcp # Seerr # took this out of gluetun, as it could cause issues with starting the container, and it was unecessary
healthcheck:
test: wget --spider -q http://1.1.1.1 || exit 1 # ACTUALLY DUMB FUCK! gluetun itself DOES NOT NEED DNS! # the comment afterwards is stupid, if gluetun can't resolve some DNS name, then the other services can't either, they need to be able to look up databases # dont use google.com, since that requires DNS. if it fails to resolve, the container is forced to restart. This is bad, since we mostly don't need dns for things such as qbittorrent, or prowlarr itself
interval: 30s
@@ -49,18 +51,15 @@ services:
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- WEBUI_PORT=2161
- TZ=${TIMEZONE}
- WEBUI_PORT=${QBITTORRENT_PORT}
volumes:
- ./qbittorrent:/config
- /mnt/media/downloads:/downloads
- /mnt/media/downloads:/media/downloads
- ${DISK1}:${DISK1}/downloads
- ${DISK2}:${DISK2}/downloads
- ./gluetun-data:/tmp/gluetun
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /mnt/11tb_ext/downloads:/11tb_ext/downloads
- ./lidarr:/music:ro
- ./lidarr/downloads:/music/downloads:rw
labels:
- "autoheal=true"
depends_on:
@@ -130,7 +129,7 @@ services:
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- TZ=${TIMEZONE}
volumes:
- ./prowlarr:/config
- ./notify.sh:/notify.sh:ro
@@ -156,11 +155,11 @@ services:
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- TZ=${TIMEZONE}
volumes:
- /var/lib/sonarr:/config
- /mnt/media:/media
- /mnt/11tb_ext:/11tb_ext
- /var/lib/sonarr:/config # had migrated into docker compose
- ${DISK1}:/media # too dangerous to change this
- ${DISK2}:/11tb_ext # too dangerous to change this
labels:
- "autoheal=true"
network_mode: "container:gluetun"
@@ -181,11 +180,11 @@ services:
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- TZ=${TIMEZONE}
volumes:
- /var/lib/radarr:/config
- /mnt/media:/media
- /mnt/11tb_ext:/11tb_ext
- /var/lib/radarr:/config # had migrated into docker compose
- ${DISK1}:/media # too dangerous to change this
- ${DISK2}:/11tb_ext # too dangerous to change this
labels:
- "autoheal=true"
network_mode: "container:gluetun"
@@ -206,7 +205,7 @@ services:
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- TZ=${TIMEZONE}
volumes:
- /home/shaan/torrent-stack/lidarr:/music
- /var/lib/lidarr:/config
@@ -235,9 +234,9 @@ services:
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles
- TZ=${TIMEZONE}
ports:
- 8181:8181
- ${TAUTULLI_PORT}:${TAUTULLI_PORT}
restart: always
tdarr:
@@ -246,10 +245,10 @@ services:
networks:
- tdarr-net
ports:
- 8265:8265 # WebUI
- 8266:8266 # local tdarr-node
- ${TDARR_PORT}:${TDARR_PORT} # WebUI
- ${TDARR_NODE_PORT}:${TDARR_NODE_PORT} # local tdarr-node
environment:
- TZ=America/Los_Angeles
- TZ=${TIMEZONE}
- PUID=1000
- PGID=1000
- UMASK_SET=002
@@ -258,9 +257,9 @@ services:
- ./tdarr/server:/app/server
- ./tdarr/configs:/app/configs
- ./tdarr/temp:/temp
- /mnt/media:/media
# dont ever do this again > - /mnt/media/tdarr-temp:/temp
- /mnt/11tb_ext:/11tb_ext
- ${DISK1}:${DISK1}
- ${DISK2}:${DISK2}
# dont put temp files onto a HARD DISK DRIVE! > - ${DISK1}/tdarr-temp:/temp
devices:
- /dev/dri:/dev/dri # Intel UHD Graphics 710
restart: always
@@ -271,19 +270,19 @@ services:
networks:
- tdarr-net
environment:
- TZ=America/Los_Angeles
- TZ=${TIMEZONE}
- PUID=1000
- PGID=1000
- nodeID=ShaanNode
- nodeID=${TDARR_NODE_ID}
- nodeIP=0.0.0.0
- serverIP=tdarr # Points to the server container
- serverPort=8266
- serverPort=${TDARR_NODE_PORT}
volumes:
- ./tdarr/configs:/app/configs
- ./tdarr/logs:/app/logs
- /home/shaan/torrent-stack/tdarr/temp:/temp
- /mnt/media:/media
- /mnt/11tb_ext:/11tb_ext
- ${DISK1}:${DISK1}
- ${DISK2}:${DISK2}
devices:
- /dev/dri:/dev/dri # only works if user 'shaan' is a part of the 'video' or 'render' group.
restart: always
@@ -292,20 +291,56 @@ services:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
ports:
- 3000:3000
- ${HOMEPAGE_PORT}:${HOMEPAGE_PORT}
volumes:
#- /home/shaan/homepage/config:/app/config
#- /home/shaan/homepage/config/images:/app/public/images - # Map images to the public folder
- ./homepage:/app/config
- ./homepage/images:/app/public/images
- /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations
- ./gluetun-data:/tmp/gluetun:ro # get the port from port-updater
- /:/root:ro
- /mnt/media:/mnt/media:ro
- /mnt/shaimpy:/mnt/shaimpy:ro
- /mnt/11tb_ext:/mnt/11tb_ext:ro
environment:
HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev,192.168.50.2:3000,shaan-server:3000,100.76.249.110:3000,ss:3000,shaan-server.tail:3000 # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
- "HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev,192.168.50.2:3000,shaan-server:3000,100.76.249.110:3000,ss:3000,shaan-server.tail:${HOMEPAGE_PORT}" # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
- "HOMEPAGE_VAR_DISK1=${DISK1}"
- "HOMEPAGE_VAR_DISK2=${DISK2}"
- "HOMEPAGE_VAR_DISK3=${DISK3}"
- "HOMEPAGE_VAR_WEB_PROTOCOL=${WEB_PROTOCOL}"
- "HOMEPAGE_VAR_LOCAL_IPV4=${LOCAL_IPV4}"
- "HOMEPAGE_VAR_SERVER_NAME=${SERVER_NAME}"
- "HOMEPAGE_VAR_PLEX_KEY=${PLEX_KEY}"
- "HOMEPAGE_VAR_PROWLARR_KEY=${PROWLARR_KEY}"
- "HOMEPAGE_VAR_RADARR_KEY=${RADARR_KEY}"
- "HOMEPAGE_VAR_SONARR_KEY=${SONARR_KEY}"
- "HOMEPAGE_VAR_LIDARR_KEY=${LIDARR_KEY}"
- "HOMEPAGE_VAR_TAUTULLI_KEY=${TAUTULLI_KEY}"
- "HOMEPAGE_VAR_SEERR_KEY=${SEERR_KEY}"
- "HOMEPAGE_VAR_QBITTORRENT_KEY=${QBITTORRENT_KEY}"
- "HOMEPAGE_VAR_TAILSCALE_KEY=${TAILSCALE_KEY}"
- "HOMEPAGE_VAR_TAILSCALE_DEVICE_KEY=${TAILSCALE_DEVICE_KEY}"
- "HOMEPAGE_VAR_PLEX_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${PLEX_PORT}"
- "HOMEPAGE_VAR_QBITTORRENT_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${QBITTORRENT_PORT}"
- "HOMEPAGE_VAR_PROWLARR_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${PROWLARR_PORT}"
- "HOMEPAGE_VAR_SONARR_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${SONARR_PORT}"
- "HOMEPAGE_VAR_RADARR_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${RADARR_PORT}"
- "HOMEPAGE_VAR_LIDARR_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${LIDARR_PORT}"
- "HOMEPAGE_VAR_TAUTULLI_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${TAUTULLI_PORT}"
- "HOMEPAGE_VAR_TDARR_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${TDARR_PORT}"
- "HOMEPAGE_VAR_HOMEPAGE_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${HOMEPAGE_PORT}"
- "HOMEPAGE_VAR_GLANCES_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${GLANCES_PORT}"
- "HOMEPAGE_VAR_SEERR_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${SEERR_PORT}"
- "HOMEPAGE_VAR_MYSPEED_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${MYSPEED_PORT}"
- "HOMEPAGE_VAR_TERMIX_ADDRESS=${WEB_PROTOCOL}://${LOCAL_IPV4}:${TERMIX_PORT}"
- "HOMEPAGE_VAR_PLEX_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${PLEX_PORT}"
- "HOMEPAGE_VAR_QBITTORRENT_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${QBITTORRENT_PORT}"
- "HOMEPAGE_VAR_PROWLARR_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${PROWLARR_PORT}"
- "HOMEPAGE_VAR_SONARR_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${SONARR_PORT}"
- "HOMEPAGE_VAR_RADARR_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${RADARR_PORT}"
- "HOMEPAGE_VAR_LIDARR_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${LIDARR_PORT}"
- "HOMEPAGE_VAR_TAUTULLI_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${TAUTULLI_PORT}"
- "HOMEPAGE_VAR_TDARR_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${TDARR_PORT}"
- "HOMEPAGE_VAR_HOMEPAGE_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${HOMEPAGE_PORT}"
- "HOMEPAGE_VAR_GLANCES_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${GLANCES_PORT}"
- "HOMEPAGE_VAR_SEERR_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${SEERR_PORT}"
- "HOMEPAGE_VAR_MYSPEED_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${MYSPEED_PORT}"
- "HOMEPAGE_VAR_TERMIX_HOST=${WEB_PROTOCOL}://${SERVER_NAME}:${TERMIX_PORT}"
extra_hosts:
- "host.docker.internal:host-gateway"
restart: always
@@ -313,11 +348,14 @@ services:
glances:
image: nicolargo/glances:latest-full
container_name: glances
pid: host
network_mode: host
devices:
- /dev/dri:/dev/dri
volumes:
- /:/root:ro
- /var/run/docker.sock:/var/run/docker.sock
- /etc/os-release:/etc/os-release:ro
- /:/host:ro
environment:
- GLANCES_OPT=-w
- PUID=1000
@@ -339,14 +377,14 @@ services:
image: ghcr.io/seerr-team/seerr:latest
init: true
container_name: seerr
ports:
- ${SEERR_PORT}:${SEERR_PORT}
environment:
- LOG_LEVEL=debug
- TZ=America/Los_Angeles
- TZ=${TIMEZONE}
- PUID=1000
- PGID=1000
- PORT=5055 #optional
volumes:
- "/home/shaan/seerr-config:/app/config"
- "./seerr:/app/config"
working_dir: "/app"
labels:
@@ -381,7 +419,7 @@ services:
mac_address: "02:42:ac:11:00:03"
network_mode: "bridge"
ports:
- "5216:5216/tcp"
- "${MYSPEED_PORT}:${MYSPEED_PORT}/tcp"
volumes:
- "myspeed:/myspeed/data"
working_dir: "/myspeed"
@@ -394,11 +432,11 @@ services:
- NET_ADMIN
- SYS_ADMIN
ports:
- "8080:8080"
- "${TERMIX_PORT}:${TERMIX_PORT}"
volumes:
- termix-data:/app/data
environment:
PORT: "8080"
PORT: "${TERMIX_PORT}"
networks:
- termix-net
restart: unless-stopped