453 lines
11 KiB
YAML
453 lines
11 KiB
YAML
version: '3'
|
|
services:
|
|
nginx:
|
|
container_name: "{{nginx.host}}"
|
|
image: 'jc21/nginx-proxy-manager:latest'
|
|
restart: unless-stopped
|
|
networks:
|
|
net: {}
|
|
ports:
|
|
- '{{nginx.endpoints.http}}:80'
|
|
- '{{nginx.endpoints.https}}:443'
|
|
- '{{nginx.endpoints.admin}}:81'
|
|
volumes:
|
|
- "{{nginx.paths.data}}:/data"
|
|
- "{{nginx.paths.letsencrypt}}:/etc/letsencrypt"
|
|
- '/var/run/docker.sock:/var/run/docker.sock'
|
|
|
|
pihole:
|
|
container_name: pihole
|
|
image: pihole/pihole:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- nginx
|
|
networks:
|
|
- net
|
|
ports:
|
|
- "53:53/tcp"
|
|
- "53:53/udp"
|
|
volumes:
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ pihole_config }}:/etc/pihole/"
|
|
- "{{ pihole_dnsmasq }}:/etc/dnsmasq.d/"
|
|
environment:
|
|
- PUID={{puid}}
|
|
- PGID={{pgid}}
|
|
- TZ={{timezone}}
|
|
- "WEBPASSWORD={{ vault_aya01_pihole_password }}"
|
|
- "ServerIP={{ host.ip }}"
|
|
- "INTERFACE=eth0"
|
|
- "DNS1=1.1.1.1"
|
|
- "DNS1=1.0.0.1"
|
|
dns:
|
|
- 127.0.0.1
|
|
- 1.1.1.1
|
|
cap_add:
|
|
- NET_ADMIN
|
|
|
|
syncthing:
|
|
image: syncthing/syncthing
|
|
container_name: syncthing
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
ports:
|
|
- 22000:22000/tcp # TCP file transfers
|
|
- 22000:22000/udp # QUIC file transfers
|
|
- 21027:21027/udp # Receive local discovery broadcasts
|
|
volumes:
|
|
- "{{syncthing_data}}:/var/syncthing"
|
|
environment:
|
|
- PUID={{puid}}
|
|
- PGID={{pgid}}
|
|
- TZ={{timezone}}
|
|
hostname: syncthing
|
|
|
|
cupsd:
|
|
container_name: cupsd
|
|
image: olbat/cupsd
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{puid}}
|
|
- PGID={{pgid}}
|
|
- TZ={{timezone}}
|
|
volumes:
|
|
- /var/run/dbus:/var/run/dbus
|
|
- "{{cupsd_config}}:/etc/cups"
|
|
|
|
kuma:
|
|
container_name: kuma
|
|
image: louislam/uptime-kuma:1
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{puid}}
|
|
- PGID={{pgid}}
|
|
- TZ={{timezone}}
|
|
volumes:
|
|
- "{{ kuma_config }}:/app/data"
|
|
|
|
plex:
|
|
image: lscr.io/linuxserver/plex:latest
|
|
container_name: plex
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
ports:
|
|
- "{{ plex_port }}:32400"
|
|
- "1900:1900"
|
|
- "3005:3005"
|
|
- "5353:5353"
|
|
- "32410:32410"
|
|
- "8324:8324"
|
|
- "32412:32412"
|
|
- "32469:32469"
|
|
environment:
|
|
- PUID={{puid}}
|
|
- PGID={{pgid}}
|
|
- TZ={{timezone}}
|
|
- VERSION=docker
|
|
volumes:
|
|
- "{{ plex_config }}:/config"
|
|
- "{{ plex_tv }}:/tv:ro"
|
|
- "{{ plex_movies }}:/movies:ro"
|
|
- "{{ plex_music }}:/music:ro"
|
|
|
|
sonarr:
|
|
image: lscr.io/linuxserver/sonarr:latest
|
|
container_name: sonarr
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- prowlarr
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{ puid }}
|
|
- PGID={{ pgid }}
|
|
- TZ={{ timezone }}
|
|
volumes:
|
|
- {{ sonarr_config }}:/config
|
|
- {{ sonarr_media }}:/tv #optional
|
|
- {{ sonarr_downloads }}:/downloads #optional
|
|
|
|
radarr:
|
|
image: lscr.io/linuxserver/radarr:latest
|
|
container_name: radarr
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- prowlarr
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{ puid }}
|
|
- PGID={{ pgid }}
|
|
- TZ={{ timezone }}
|
|
volumes:
|
|
- {{ radarr_config }}:/config
|
|
- {{ radarr_media }}:/movies #optional
|
|
- {{ radarr_downloads }}:/downloads #optional
|
|
|
|
lidarr:
|
|
image: lscr.io/linuxserver/lidarr:latest
|
|
container_name: lidarr
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- prowlarr
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{ puid }}
|
|
- PGID={{ pgid }}
|
|
- TZ={{ timezone }}
|
|
volumes:
|
|
- {{ lidarr_config }}:/config
|
|
- {{ lidarr_media }}:/music #optional
|
|
- {{ lidarr_downloads }}:/downloads #optional
|
|
|
|
prowlarr:
|
|
image: lscr.io/linuxserver/prowlarr:latest
|
|
container_name: prowlarr
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{ puid }}
|
|
- PGID={{ pgid }}
|
|
- TZ={{ timezone }}
|
|
volumes:
|
|
- {{ prowlarr_config }}:/config
|
|
|
|
pastebin:
|
|
image: wantguns/bin
|
|
container_name: pastebin
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{ puid }}
|
|
- PGID={{ pgid }}
|
|
- TZ={{ timezone }}
|
|
- ROCKET_PORT={{ bin_port }}
|
|
- HOST_URL={{ bin_host }}.{{ aya01_host }}.{{ local_domain }}
|
|
volumes:
|
|
- {{ bin_upload }}:/app/upload
|
|
|
|
tautulli:
|
|
image: lscr.io/linuxserver/tautulli:latest
|
|
container_name: tautulli
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- plex
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{ puid }}
|
|
- PGID={{ pgid}}
|
|
- TZ={{ timezone }}
|
|
volumes:
|
|
- {{ tautulli_config}}:/config
|
|
|
|
{{ gluetun_host }}:
|
|
image: qmcgaw/gluetun
|
|
container_name: {{ gluetun_host }}
|
|
restart: unless-stopped
|
|
networks:
|
|
- net
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun:/dev/net/tun
|
|
volumes:
|
|
- {{ gluetun_config }}:/gluetun
|
|
environment:
|
|
- PUID={{puid}}
|
|
- PGID={{pgid}}
|
|
- TZ={{ timezone }}
|
|
- VPN_SERVICE_PROVIDER=protonvpn
|
|
- UPDATER_VPN_SERVICE_PROVIDERS=protonvpn
|
|
- UPDATER_PERIOD=24h
|
|
- SERVER_COUNTRIES={{ gluetun_country }}
|
|
- OPENVPN_USER={{ vault_qbit_vpn_user }}+pmp
|
|
- OPENVPN_PASSWORD={{ vault_qbit_vpn_password }}
|
|
|
|
{{ torrentleech_host }}:
|
|
image: qbittorrentofficial/qbittorrent-nox
|
|
container_name: {{ torrentleech_host }}
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- gluetun
|
|
- sonarr
|
|
- radarr
|
|
- lidarr
|
|
network_mode: "container:{{ gluetun_host }}"
|
|
environment:
|
|
- PUID={{ puid }}
|
|
- PGID={{ pgid }}
|
|
- TZ={{ timezone }}
|
|
- QBT_EULA="accept"
|
|
- QBT_WEBUI_PORT="{{ torrentleech_port }}"
|
|
volumes:
|
|
- {{ torrentleech_remote_config }}:/config
|
|
- {{ qbit_downloads }}:/downloads
|
|
|
|
{{qbit_host}}:
|
|
image: qbittorrentofficial/qbittorrent-nox
|
|
container_name: {{ qbit_host }}
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- gluetun
|
|
- sonarr
|
|
- radarr
|
|
- lidarr
|
|
network_mode: "container:{{ gluetun_host }}"
|
|
environment:
|
|
- PUID={{ puid }}
|
|
- PGID={{ pgid }}
|
|
- TZ={{ timezone }}
|
|
- QBT_EULA="accept"
|
|
- QBT_WEBUI_PORT="{{ qbit_port }}"
|
|
volumes:
|
|
- {{ qbit_remote_config }}:/config
|
|
- {{ qbit_downloads }}:/downloads
|
|
|
|
{{ prometheus_host }}:
|
|
image: prom/prometheus
|
|
container_name: {{ prometheus_host }}
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{ prometheus_puid }}
|
|
- PGID={{ prometheus_pgid}}
|
|
- TZ={{ timezone }}
|
|
volumes:
|
|
- {{ prometheus_config }}:/etc/prometheus/
|
|
- prometheus_data:/prometheus/
|
|
|
|
{{ grafana_host }}:
|
|
image: grafana/grafana-oss
|
|
container_name: {{ grafana_host }}
|
|
restart: unless-stopped
|
|
user: "0:0"
|
|
depends_on:
|
|
- {{ prometheus_host }}
|
|
networks:
|
|
- net
|
|
environment:
|
|
- PUID={{ grafana_puid }}
|
|
- PGID={{ grafana_pgid }}
|
|
- TZ={{ timezone }}
|
|
volumes:
|
|
- {{ grafana_data }}:/var/lib/grafana/
|
|
- {{ grafana_config }}:/etc/grafana/
|
|
|
|
ddns-updater:
|
|
container_name: ddns-updater
|
|
image: "ghcr.io/qdm12/ddns-updater"
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
net: {}
|
|
volumes:
|
|
- "{{ ddns_data }}:/updater/data/"
|
|
|
|
homeassistant:
|
|
container_name: homeassistant
|
|
image: "ghcr.io/home-assistant/home-assistant:stable"
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
net: {}
|
|
volumes:
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ ha_config }}:/config/"
|
|
privileged: true
|
|
ports:
|
|
- "{{ ha_port }}:8123"
|
|
- 4357:4357
|
|
- 5683:5683
|
|
- 5683:5683/udp
|
|
|
|
{{stirling.host}}:
|
|
container_name: {{stirling.host}}
|
|
image: frooodle/s-pdf:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
net: {}
|
|
|
|
{{ jellyfin.host }}:
|
|
container_name: {{ jellyfin.host }}
|
|
image: jellyfin/jellyfin
|
|
restart: 'unless-stopped'
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
net: {}
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
volumes:
|
|
- {{ jellyfin.config }}:/config
|
|
- {{ jellyfin.cache }}:/cache
|
|
- {{ jellyfin.media.tv }}:/tv:ro
|
|
- {{ jellyfin.media.movies }}:/movies:ro
|
|
- {{ jellyfin.media.music }}:/music:ro
|
|
ports:
|
|
- "{{ jellyfin.port }}:{{ jellyfin.port }}"
|
|
|
|
broker:
|
|
container_name: {{ paperless.redis.host }}
|
|
image: docker.io/library/redis:7
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
volumes:
|
|
- {{paperless.redis.data}}:/data
|
|
|
|
db:
|
|
container_name: {{ paperless.db.host }}
|
|
image: docker.io/library/postgres:15
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- pihole
|
|
networks:
|
|
- net
|
|
volumes:
|
|
- {{paperless.db.data}}:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_DB: {{ paperless.db.db }}
|
|
POSTGRES_USER: {{ paperless.db.user }}
|
|
POSTGRES_PASSWORD: {{ paperless.db.password }}
|
|
|
|
paperless:
|
|
container_name: {{ paperless.host }}
|
|
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db
|
|
- broker
|
|
networks:
|
|
- net
|
|
ports:
|
|
- "{{ paperless.port }}:{{ paperless.port }}"
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:{{ paperless.port }}"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
volumes:
|
|
- {{ paperless.data.data }}:/usr/src/paperless/data
|
|
- {{ paperless.data.media }}:/usr/src/paperless/media
|
|
- {{ paperless.data.export }}:/usr/src/paperless/export
|
|
- {{ paperless.data.consume }}:/usr/src/paperless/consume
|
|
environment:
|
|
- "PAPERLESS_REDIS=redis://broker:6379"
|
|
- "PAPERLESS_DBHOST=db"
|
|
- "PAPERLESS_DBUSER={{paperless.db.user}}"
|
|
- "PAPERLESS_DBPASS={{paperless.db.password}}"
|
|
- "USERMAP_UID={{ puid }}"
|
|
- "USERMAP_GID={{ pgid}}"
|
|
- "PAPERLESS_URL=https://{{paperless.host}}.{{ host.hostname }}.{{ backup_domain }}"
|
|
- "PAPERLESS_TIME_ZONE={{ timezone }}"
|
|
- "PAPERLESS_OCR_LANGUAGE=deu"
|
|
|
|
networks:
|
|
zoneminder:
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: {{ zoneminder_network }}
|
|
net:
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: {{ docker_network }}
|
|
volumes:
|
|
prometheus_data: {}
|