Add homelab-compose

This is the docker compose file for the `homelab` folder.
This commit is contained in:
2025-09-17 15:56:44 -04:00
parent d0b353ab02
commit c4180b9053

290
homelab-compose.yml Normal file
View File

@@ -0,0 +1,290 @@
---
# PXDGBOX Docker Config
# last update: 2024-10-21
include:
# - ./tailscale.yml
# - ./bitmagnet/bitmagnet.yml
- ./qbittorrent/qb.yml
- ./flaresolverr.yml
# extensions/shortcuts
x-app-defaults: &app-defaults
environment:
- TZ=America/New_York
- PUID=1000
- PGID=1000
restart: unless-stopped
volumes:
- /media/starbasealpha/media:/media
x-gpu-enable: &gpu-enable
devices:
- /dev/dri:/dev/dri
# SERVICES
services:
# ARR stack
# Radarr - Movie Download - http://192.168.1.42:7878/ - https://movie.xt.pxdg.net/
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./radarr:/config
- /media/starbasealpha/media/Movies:/movies
- /media/starbasealpha/media/pxdg-sb:/downloads
- /data:/data
restart: unless-stopped
ports:
- 7878:7878
labels:
- diun.enable=true
# Lidarr - Music Download - http://192.168.1.42:8686/
# lidarr:
# image: lscr.io/linuxserver/lidarr:latest
# container_name: lidarr
# environment:
# - PUID=1000
# - PGID=1000
# - TZ=America/New_York
# volumes:
# - ./lidarr:/config
# - /media/starbasealpha/music:/music
# - /data:/data
# restart: unless-stopped
# ports:
# - 8686:8686
# Prowlarr - Torrent Indexer - http://192.168.1.42:9696/
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./prowlarr:/config
- /data:/data
ports:
- 9696:9696
restart: unless-stopped
labels:
- diun.enable=true
# Sonarr - TV Download - http://192.168.1.42:8989/ - https://tv.xt.pxdg.net/
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./sonarr:/config
- '/media/starbasealpha/media/TV Shows:/tv'
- /data:/data
ports:
- 8989:8989
restart: unless-stopped
labels:
- diun.enable=true
# Bazarr - Subtitles - http://192.168.1.42:6767/
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./bazarr:/config
- /data/media:/data/media
restart: unless-stopped
ports:
- 6767:6767
labels:
- diun.enable=true
# readarr
# readarr:
# image: lscr.io/linuxserver/readarr:develop
# container_name: readarr
# environment:
# - PUID=1000
# - PGID=1000
# - TZ=America/New_York
# volumes:
# - /home/pax/homelab/readarr:/config
# - /data:/data
# ports:
# - 8787:8787
# restart: unless-stopped
# labels:
# - diun.enable=true
# NZBHydra2 - Usenet Indexer - http://192.168.1.42:5076/
nzbhydra2:
image: lscr.io/linuxserver/nzbhydra2:latest
container_name: nzbhydra2
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./nzbhydra2/config:/config
- /data/usenet:/data/usenet
ports:
- 5076:5076
restart: unless-stopped
labels:
- diun.enable=true
# sabNZBd - Usenet Download Client - http://192.168.1.42:10100/
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:latest
container_name: sabnzbd
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./sabnzbd/config:/config
- /data/usenet:/data/usenet
ports:
- 10100:8080
restart: unless-stopped
labels:
- diun.enable=true
# n8n - Workflow Automation (like IFTTT) - http://192.168.1.42:5678 - https://x.pxdg.net/
# n8n:
# image: docker.n8n.io/n8nio/n8n:latest
# container_name: n8n
# restart: unless-stopped
# ports:
# - 5678:5678
# volumes:
# - n8n_data:/home/node/.n8n
# environment:
# - TZ=America/New_York
# - GENERIC_TIMEZONE=America/New_York
# - NODE_ENV=production
# - N8N_PORT=5678
# - WEBHOOK_URL=https://x.pxdg.net/
# Plex Media Server - http://192.168.1.42:32400
plex:
container_name: plex
image: plexinc/pms-docker
restart: unless-stopped
network_mode: host
environment:
- TZ=America/New_York
- PLEX_CLAIM=claim-H9e_M8kqUVFpkUSGHdxf
- ADVERTISE_IP=http://192.168.1.42:32400/
volumes:
- ./plex/config:/config
- ./plex/transcode:/transcode
- /media/starbasealpha/media:/data
- /media/starbasealpha/music:/music
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
devices:
- /dev/dri:/dev/dri
labels:
- diun.enable=true
# deluge test - http://192.168.1.42:8112
deluge:
container_name: deluge
image: lscr.io/linuxserver/deluge:latest
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- DELUGE_LOGLEVEL=error
volumes:
- ./deluge/config:/config
- ./deluge/downloads:/downloads
- /data/torrents:/data/torrents
network_mode: "service:vpn"
depends_on:
- vpn
labels:
- diun.enable=true
# NordVPN container
# has NET_ADMIN and NET_RAW to allow passage of all data through this container successfully.
vpn:
container_name: vpn
image: ghcr.io/bubuntux/nordlynx:latest
cap_add:
- NET_ADMIN
- NET_RAW
environment:
- PRIVATE_KEY=wNrGPRqPLWdKUVqgwY0pUyDAkB4Npd0cFCvIEt/N+0E=
- TABLE=auto # Automatically manage local routing table
- NET_LOCAL=192.168.1.0/24 # Allow the local network to connect to this container
ports:
- 8112:8112 # deluge web UI
- 8123:8123 # qb web ui
- 6881:6881 # dht port - deluge
- 6881:6881/udp # dht udp - deluge
- 12345:12345
- 12345:12345/udp
- 58846:58846 # deluge daemon
labels:
- diun.enable=true
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
ports:
- 9443:9443
volumes:
- portainer_data:/data
- /var/run/docker.sock:/var/run/docker.sock
- /home/pax/.docker/desktop/docker.sock:/var/run/docker-desktop.sock
restart: unless-stopped
# audiobookshelf
# audiobookshelf:
# image: ghcr.io/advplyr/audiobookshelf:latest
# ports:
# - 13378:80
# volumes:
# - /data/books/audiobooks:/data/books/audiobooks
# - /data/books/podcasts:/data/books/podcasts
# - /home/pax/homelab/audiobookshelf/config:/config
# - /home/pax/homelab/audiobookshelf/metadata:/metadata
# environment:
# TZ: America/New_York
# labels:
# - diun.enable=true
watchtower:
container_name: watchtower
image: containrrr/watchtower
# environment:
# WATCHTOWER_NOTIFICATION_URL: "pushover://shoutrrr:as1dv2625gjihbjgj5bqruy7z98o8m@ux1kbvbja79gt6xdhidk893ufj9mgu"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 30
restart: always
volumes:
portainer_data:
external: true