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={{aya01_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 }}" networks: zoneminder: driver: bridge ipam: driver: default config: - subnet: {{ zoneminder_network }} net: driver: bridge ipam: driver: default config: - subnet: {{ docker_network }} volumes: prometheus_data: {}