feat(reverse-proxy): Add Caddy for reverse proxy

Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
This commit is contained in:
Tuan-Dat Tran
2025-01-12 21:19:37 +01:00
parent 88141f8869
commit 1a1b8cb69c
18 changed files with 299 additions and 47 deletions

View File

@@ -1,5 +1,6 @@
services:
{% if enable_nginx %}
{% for service in services %}
{% if service.name == 'nginx' and inventory_hostname in service.vm %}
nginx:
container_name: "nginx"
image: "jc21/nginx-proxy-manager:latest"
@@ -16,7 +17,7 @@ services:
- "/var/run/docker.sock:/var/run/docker.sock"
{% endif %}
{% if enable_syncthing %}
{% if service.name == 'syncthing' and inventory_hostname in service.vm %}
syncthing:
image: syncthing/syncthing
container_name: syncthing
@@ -38,7 +39,7 @@ services:
hostname: syncthing
{% endif %}
{% if enable_kuma %}
{% if service.name == 'status' and inventory_hostname in service.vm %}
kuma:
container_name: kuma
image: louislam/uptime-kuma:1
@@ -57,7 +58,7 @@ services:
- "/opt/local/kuma/:/app/data"
{% endif %}
{% if enable_plex %}
{% if service.name == 'plex' and inventory_hostname in service.vm %}
plex:
image: lscr.io/linuxserver/plex:latest
container_name: plex
@@ -89,7 +90,7 @@ services:
- "/media/songs:/music:ro"
{% endif %}
{% if enable_arr %}
{% if service.name == 'sonarr' and inventory_hostname in service.vm %}
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
@@ -106,7 +107,9 @@ services:
- /opt/local/sonarr/config:/config
- /media/series:/tv #optional
- /media/docker/data/arr_downloads/sonarr:/downloads #optional
{% endif %}
{% if service.name == 'radarr' and inventory_hostname in service.vm %}
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
@@ -123,7 +126,9 @@ services:
- /opt/local/radarr/config:/config
- /media/movies:/movies #optional
- /media/docker/data/arr_downloads/radarr:/downloads #optional
{% endif %}
{% if service.name == 'lidarr' and inventory_hostname in service.vm %}
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidarr
@@ -140,7 +145,9 @@ services:
- /opt/local/lidarr/config:/config
- /media/songs:/music #optional
- /media/docker/data/arr_downloads/lidarr:/downloads #optional
{% endif %}
{% if service.name == 'prowlarr' and inventory_hostname in service.vm %}
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
@@ -155,7 +162,9 @@ services:
- TZ=Europe/Berlin
volumes:
- /opt/local/prowlarr/config:/config
{% endif %}
{% if service.name == 'tl' and inventory_hostname in service.vm %}
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
@@ -181,7 +190,9 @@ services:
- SERVER_COUNTRIES=Hungary
- OPENVPN_USER=MfCOtzTIEsmu1wY-q2lAZ3X1+pmp
- OPENVPN_PASSWORD=knCl1Zl5PHz4HMWVCGR77dYa
{% endif %}
{% if service.name == 'tl' and inventory_hostname in service.vm %}
torrentleech:
image: qbittorrentofficial/qbittorrent-nox
container_name: torrentleech
@@ -198,7 +209,9 @@ services:
volumes:
- /opt/docker/config/torrentleech/config:/config
- /media/docker/data/arr_downloads:/downloads
{% endif %}
{% if service.name == 'qbit' and inventory_hostname in service.vm %}
qbit:
image: qbittorrentofficial/qbittorrent-nox
container_name: qbit
@@ -217,7 +230,7 @@ services:
- /media/docker/data/arr_downloads:/downloads
{% endif %}
{% if enable_prometheus %}
{% if service.name == 'prometheus' and inventory_hostname in service.vm %}
prometheus:
image: prom/prometheus
container_name: prometheus
@@ -235,7 +248,7 @@ services:
- prometheus_data:/prometheus/
{% endif %}
{% if enable_grafana %}
{% if service.name == 'grafana' and inventory_hostname in service.vm %}
grafana:
image: grafana/grafana-oss
container_name: grafana
@@ -254,7 +267,7 @@ services:
- /opt/docker/config/grafana/config/:/etc/grafana/
{% endif %}
{% if enable_ddns_updater %}
{% if service.name == 'ddns' and inventory_hostname in service.vm %}
ddns-updater:
container_name: ddns-updater
image: "ghcr.io/qdm12/ddns-updater"
@@ -267,7 +280,7 @@ services:
- "/opt/docker/config/ddns-updater/data/:/updater/data/"
{% endif %}
{% if enable_homeassistant %}
{% if service.name == 'hass' and inventory_hostname in service.vm %}
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
@@ -287,7 +300,7 @@ services:
- 5683:5683/udp
{% endif %}
{% if enable_stirling %}
{% if service.name == 'pdf' and inventory_hostname in service.vm %}
stirling:
container_name: stirling
image: frooodle/s-pdf:latest
@@ -298,7 +311,7 @@ services:
net: {}
{% endif %}
{% if enable_jellyfin %}
{% if service.name == 'jellyfin' and inventory_hostname in service.vm %}
jellyfin:
container_name: jellyfin
image: jellyfin/jellyfin
@@ -319,7 +332,7 @@ services:
- "8096:8096"
{% endif %}
{% if enable_paperless %}
{% if service.name == 'paperless' and inventory_hostname in service.vm %}
paperless-broker:
container_name: paperless-broker
image: docker.io/library/redis:7
@@ -378,7 +391,7 @@ services:
- "PAPERLESS_OCR_LANGUAGE=deu"
{% endif %}
{% if enable_gitea %}
{% if service.name == 'git' and inventory_hostname in service.vm %}
git:
container_name: git
image: gitea/gitea:1.20.5-rootless
@@ -400,7 +413,7 @@ services:
- USER_GID=1000
{% endif %}
{% if enable_changedetection %}
{% if service.name == 'changedetection' and inventory_hostname in service.vm %}
changedetection:
container_name: changedetection
image: dgtlmoon/changedetection.io
@@ -413,7 +426,7 @@ services:
- "/opt/docker/config/changedetection/data/:/datastore"
{% endif %}
{% if enable_calibre %}
{% if service.name == 'calibre' and inventory_hostname in service.vm %}
calibre:
container_name: calibre
image: lscr.io/linuxserver/calibre-web:latest
@@ -431,6 +444,7 @@ services:
- "/opt/local/calibre/:/config"
- "/media/docker/data/calibre/:/books"
{% endif %}
{% endfor %}
networks:
net: