feat(ansible): add Docker host configuration with NFS mounts and utility packages
- Introduce Docker host configuration playbooks in `docker_host` role
- Install Docker and Docker Compose via apt repository
- Configure Docker user, group, and required directories (`/opt/docker`, `/media`)
- Add NFS mounts for Docker data, series, movies, and songs directories
- Add extra utility packages (`bat`, `ripgrep`, `fd-find`, `screen`, `eza`, `neovim`)
- Set up and manage `bash_aliases` for user-friendly command replacements (`batcat`, `nvim`, `eza`)
- Enhance `/group_vars` and `/host_vars` for Docker-related settings and secure access
- Add `docker-host00` and `docker-host01` entries to production and staging inventories
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-11-10 21:37:22 +01:00
|
|
|
services:
|
|
|
|
nginx:
|
|
|
|
container_name: "nginx"
|
|
|
|
image: "jc21/nginx-proxy-manager:latest"
|
|
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
ports:
|
|
|
|
- "80:80"
|
|
|
|
- "443:443"
|
|
|
|
- "8080:81"
|
|
|
|
volumes:
|
|
|
|
- "/opt/docker/config/nginx/data:/data"
|
|
|
|
- "/opt/docker/config/nginx/letsencrypt:/etc/letsencrypt"
|
|
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
|
|
|
|
|
|
syncthing:
|
|
|
|
image: syncthing/syncthing
|
|
|
|
container_name: syncthing
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
ports:
|
|
|
|
- 22000:22000/tcp # TCP file transfers
|
|
|
|
- 22000:22000/udp # QUIC file transfers
|
|
|
|
- 21027:21027/udp # Receive local discovery broadcasts
|
|
|
|
volumes:
|
|
|
|
- "/media/docker/data/syncthing/:/var/syncthing"
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
hostname: syncthing
|
|
|
|
|
|
|
|
kuma:
|
|
|
|
container_name: kuma
|
|
|
|
image: louislam/uptime-kuma:1
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
ports:
|
|
|
|
- "3001:3001"
|
|
|
|
volumes:
|
|
|
|
- "/opt/local/kuma/:/app/data"
|
|
|
|
|
|
|
|
plex:
|
|
|
|
image: lscr.io/linuxserver/plex:latest
|
|
|
|
container_name: plex
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
devices:
|
|
|
|
- /dev/dri:/dev/dri
|
|
|
|
ports:
|
|
|
|
- "32400:32400"
|
|
|
|
- "1900:1900"
|
|
|
|
- "3005:3005"
|
|
|
|
- "5353:5353"
|
|
|
|
- "32410:32410"
|
|
|
|
- "8324:8324"
|
|
|
|
- "32412:32412"
|
|
|
|
- "32469:32469"
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
- VERSION=docker
|
|
|
|
volumes:
|
|
|
|
- "/opt/local/plex/config/:/config"
|
|
|
|
- "/media/series:/tv:ro"
|
|
|
|
- "/media/movies:/movies:ro"
|
|
|
|
- "/media/songs:/music:ro"
|
|
|
|
|
|
|
|
sonarr:
|
|
|
|
image: lscr.io/linuxserver/sonarr:latest
|
|
|
|
container_name: sonarr
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- prowlarr
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
volumes:
|
|
|
|
- /opt/local/sonarr/config:/config
|
|
|
|
- /media/series:/tv #optional
|
|
|
|
- /media/docker/data/arr_downloads/sonarr:/downloads #optional
|
|
|
|
|
|
|
|
radarr:
|
|
|
|
image: lscr.io/linuxserver/radarr:latest
|
|
|
|
container_name: radarr
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- prowlarr
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
volumes:
|
|
|
|
- /opt/local/radarr/config:/config
|
|
|
|
- /media/movies:/movies #optional
|
|
|
|
- /media/docker/data/arr_downloads/radarr:/downloads #optional
|
|
|
|
|
|
|
|
lidarr:
|
|
|
|
image: lscr.io/linuxserver/lidarr:latest
|
|
|
|
container_name: lidarr
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- prowlarr
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
volumes:
|
|
|
|
- /opt/local/lidarr/config:/config
|
|
|
|
- /media/songs:/music #optional
|
|
|
|
- /media/docker/data/arr_downloads/lidarr:/downloads #optional
|
|
|
|
|
|
|
|
prowlarr:
|
|
|
|
image: lscr.io/linuxserver/prowlarr:latest
|
|
|
|
container_name: prowlarr
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- torrentleech
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
volumes:
|
|
|
|
- /opt/local/prowlarr/config:/config
|
|
|
|
|
|
|
|
gluetun:
|
|
|
|
image: qmcgaw/gluetun
|
|
|
|
container_name: gluetun
|
|
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
cap_add:
|
|
|
|
- NET_ADMIN
|
|
|
|
devices:
|
|
|
|
- /dev/net/tun:/dev/net/tun
|
|
|
|
volumes:
|
|
|
|
- /opt/docker/config/gluetun/config:/gluetun
|
|
|
|
ports:
|
|
|
|
- 8082:8082
|
|
|
|
- 8083:8083
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
- VPN_SERVICE_PROVIDER=protonvpn
|
|
|
|
- UPDATER_VPN_SERVICE_PROVIDERS=protonvpn
|
|
|
|
- UPDATER_PERIOD=24h
|
|
|
|
- SERVER_COUNTRIES=Hungary
|
|
|
|
- OPENVPN_USER=MfCOtzTIEsmu1wY-q2lAZ3X1+pmp
|
|
|
|
- OPENVPN_PASSWORD=knCl1Zl5PHz4HMWVCGR77dYa
|
|
|
|
|
|
|
|
torrentleech:
|
|
|
|
image: qbittorrentofficial/qbittorrent-nox
|
|
|
|
container_name: torrentleech
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- gluetun
|
|
|
|
network_mode: "container:gluetun"
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
- QBT_EULA="accept"
|
|
|
|
- QBT_WEBUI_PORT="8083"
|
|
|
|
volumes:
|
|
|
|
- /opt/docker/config/torrentleech/config:/config
|
|
|
|
- /media/docker/data/arr_downloads:/downloads
|
|
|
|
|
|
|
|
qbit:
|
|
|
|
image: qbittorrentofficial/qbittorrent-nox
|
|
|
|
container_name: qbit
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- gluetun
|
|
|
|
network_mode: "container:gluetun"
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
- QBT_EULA="accept"
|
|
|
|
- QBT_WEBUI_PORT="8082"
|
|
|
|
volumes:
|
|
|
|
- /opt/docker/config/qbit/config:/config
|
|
|
|
- /media/docker/data/arr_downloads:/downloads
|
|
|
|
|
|
|
|
prometheus:
|
|
|
|
image: prom/prometheus
|
|
|
|
container_name: prometheus
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
environment:
|
|
|
|
- PUID=65534
|
|
|
|
- PGID=65534
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
volumes:
|
|
|
|
- /opt/docker/config/prometheus/:/etc/prometheus/
|
|
|
|
- prometheus_data:/prometheus/
|
|
|
|
|
|
|
|
grafana:
|
|
|
|
image: grafana/grafana-oss
|
|
|
|
container_name: grafana
|
|
|
|
restart: unless-stopped
|
|
|
|
user: "0:0"
|
|
|
|
depends_on:
|
|
|
|
- prometheus
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
environment:
|
|
|
|
- PUID=472
|
|
|
|
- PGID=472
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
volumes:
|
|
|
|
- /media/docker/data/grafana/:/var/lib/grafana/
|
|
|
|
- /opt/docker/config/grafana/config/:/etc/grafana/
|
|
|
|
|
|
|
|
ddns-updater:
|
|
|
|
container_name: ddns-updater
|
|
|
|
image: "ghcr.io/qdm12/ddns-updater"
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
net: {}
|
|
|
|
volumes:
|
|
|
|
- "/opt/docker/config/ddns-updater/data/:/updater/data/"
|
|
|
|
|
|
|
|
homeassistant:
|
|
|
|
container_name: homeassistant
|
|
|
|
image: "ghcr.io/home-assistant/home-assistant:stable"
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
net: {}
|
|
|
|
volumes:
|
|
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
|
|
- "/opt/local/home-assistant/config/:/config/"
|
|
|
|
privileged: true
|
|
|
|
ports:
|
|
|
|
- "8123:8123"
|
|
|
|
- 4357:4357
|
|
|
|
- 5683:5683
|
|
|
|
- 5683:5683/udp
|
|
|
|
|
|
|
|
stirling:
|
|
|
|
container_name: stirling
|
|
|
|
image: frooodle/s-pdf:latest
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
net: {}
|
|
|
|
|
|
|
|
jellyfin:
|
|
|
|
container_name: jellyfin
|
|
|
|
image: jellyfin/jellyfin
|
|
|
|
restart: "unless-stopped"
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
net: {}
|
|
|
|
devices:
|
|
|
|
- /dev/dri:/dev/dri
|
|
|
|
volumes:
|
2024-11-15 00:09:08 +01:00
|
|
|
- /opt/local/jellyfin/config:/config
|
feat(ansible): add Docker host configuration with NFS mounts and utility packages
- Introduce Docker host configuration playbooks in `docker_host` role
- Install Docker and Docker Compose via apt repository
- Configure Docker user, group, and required directories (`/opt/docker`, `/media`)
- Add NFS mounts for Docker data, series, movies, and songs directories
- Add extra utility packages (`bat`, `ripgrep`, `fd-find`, `screen`, `eza`, `neovim`)
- Set up and manage `bash_aliases` for user-friendly command replacements (`batcat`, `nvim`, `eza`)
- Enhance `/group_vars` and `/host_vars` for Docker-related settings and secure access
- Add `docker-host00` and `docker-host01` entries to production and staging inventories
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-11-10 21:37:22 +01:00
|
|
|
- /opt/docker/config/jellyfin/cache:/cache
|
|
|
|
- /media/series:/tv:ro
|
|
|
|
- /media/movies:/movies:ro
|
|
|
|
- /media/songs:/music:ro
|
|
|
|
ports:
|
|
|
|
- "8096:8096"
|
|
|
|
|
|
|
|
paperless-broker:
|
|
|
|
container_name: paperless-broker
|
|
|
|
image: docker.io/library/redis:7
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
volumes:
|
|
|
|
- /opt/local/paperless/redis/data:/data
|
|
|
|
|
|
|
|
paperless-postgres:
|
|
|
|
container_name: paperless-postgres
|
|
|
|
image: docker.io/library/postgres:15
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
volumes:
|
|
|
|
- /opt/local/paperless/db/data:/var/lib/postgresql/data
|
|
|
|
environment:
|
|
|
|
POSTGRES_DB: paperless
|
|
|
|
POSTGRES_USER: paperless
|
|
|
|
POSTGRES_PASSWORD: 5fnhn%u2YWY3paNvMAjdoufYPQ2Hf3Yi
|
|
|
|
|
|
|
|
paperless:
|
|
|
|
container_name: paperless
|
|
|
|
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- paperless-postgres
|
|
|
|
- paperless-broker
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
healthcheck:
|
|
|
|
test:
|
|
|
|
["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
|
|
|
|
interval: 30s
|
|
|
|
timeout: 10s
|
|
|
|
retries: 5
|
|
|
|
volumes:
|
|
|
|
- /opt/local/paperless/data/data:/usr/src/paperless/data
|
|
|
|
- /opt/local/paperless/data/media:/usr/src/paperless/media
|
|
|
|
- /opt/local/paperless/data/export:/usr/src/paperless/export
|
|
|
|
- /opt/local/paperless/data/consume:/usr/src/paperless/consume
|
|
|
|
environment:
|
|
|
|
- "PAPERLESS_REDIS=redis://paperless-broker:6379"
|
|
|
|
- "PAPERLESS_DBHOST=paperless-postgres"
|
|
|
|
- "PAPERLESS_DBUSER=paperless"
|
|
|
|
- "PAPERLESS_DBPASS=5fnhn%u2YWY3paNvMAjdoufYPQ2Hf3Yi"
|
|
|
|
- "USERMAP_UID=1000"
|
|
|
|
- "USERMAP_GID=1000"
|
|
|
|
- "PAPERLESS_URL=https://paperless.docker-host00.lulu.seyshiro.de"
|
|
|
|
- "PAPERLESS_TIME_ZONE=Europe/Berlin"
|
|
|
|
- "PAPERLESS_OCR_LANGUAGE=deu"
|
|
|
|
|
|
|
|
git:
|
|
|
|
container_name: git
|
|
|
|
image: gitea/gitea:1.20.5-rootless
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
volumes:
|
|
|
|
- /opt/local/gitea/data:/var/lib/gitea
|
|
|
|
- /opt/local/gitea/config:/etc/gitea
|
|
|
|
- /etc/timezone:/etc/timezone:ro
|
|
|
|
- /etc/localtime:/etc/localtime:ro
|
|
|
|
ports:
|
|
|
|
- "3000:3000"
|
|
|
|
- "2222:2222"
|
|
|
|
environment:
|
|
|
|
- USER_UID=1000
|
|
|
|
- USER_GID=1000
|
|
|
|
|
|
|
|
changedetection:
|
|
|
|
container_name: changedetection
|
|
|
|
image: dgtlmoon/changedetection.io
|
|
|
|
restart: unless-stopped
|
2024-11-15 00:09:08 +01:00
|
|
|
depends_on:
|
|
|
|
- nginx
|
feat(ansible): add Docker host configuration with NFS mounts and utility packages
- Introduce Docker host configuration playbooks in `docker_host` role
- Install Docker and Docker Compose via apt repository
- Configure Docker user, group, and required directories (`/opt/docker`, `/media`)
- Add NFS mounts for Docker data, series, movies, and songs directories
- Add extra utility packages (`bat`, `ripgrep`, `fd-find`, `screen`, `eza`, `neovim`)
- Set up and manage `bash_aliases` for user-friendly command replacements (`batcat`, `nvim`, `eza`)
- Enhance `/group_vars` and `/host_vars` for Docker-related settings and secure access
- Add `docker-host00` and `docker-host01` entries to production and staging inventories
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-11-10 21:37:22 +01:00
|
|
|
networks:
|
|
|
|
- net
|
|
|
|
volumes:
|
|
|
|
- "/opt/docker/config/changedetection/data/:/datastore"
|
|
|
|
|
2024-11-11 01:04:30 +01:00
|
|
|
calibre:
|
|
|
|
container_name: calibre
|
2024-11-15 00:09:08 +01:00
|
|
|
image: lscr.io/linuxserver/calibre-web:latest
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
networks:
|
|
|
|
- net
|
2024-11-11 01:04:30 +01:00
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
- DOCKER_MODS=linuxserver/mods:universal-calibre #optional
|
|
|
|
volumes:
|
|
|
|
- "/opt/local/calibre/:/config"
|
|
|
|
- "/media/docker/data/calibre/:/books"
|
|
|
|
|
feat(ansible): add Docker host configuration with NFS mounts and utility packages
- Introduce Docker host configuration playbooks in `docker_host` role
- Install Docker and Docker Compose via apt repository
- Configure Docker user, group, and required directories (`/opt/docker`, `/media`)
- Add NFS mounts for Docker data, series, movies, and songs directories
- Add extra utility packages (`bat`, `ripgrep`, `fd-find`, `screen`, `eza`, `neovim`)
- Set up and manage `bash_aliases` for user-friendly command replacements (`batcat`, `nvim`, `eza`)
- Enhance `/group_vars` and `/host_vars` for Docker-related settings and secure access
- Add `docker-host00` and `docker-host01` entries to production and staging inventories
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-11-10 21:37:22 +01:00
|
|
|
networks:
|
|
|
|
net:
|
|
|
|
driver: bridge
|
|
|
|
ipam:
|
|
|
|
driver: default
|
|
|
|
config:
|
|
|
|
- subnet: 172.16.69.0/24
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
prometheus_data: {}
|