towards healthchecks for all containers

This commit is contained in:
2026-02-04 18:11:49 +01:00
parent 7f45788b3d
commit ab2f707706
42 changed files with 245 additions and 19 deletions

View File

@@ -55,6 +55,12 @@ services:
- authentik-redis
extra_hosts:
- "host:${HOST_IP}"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/-/health/live/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
authentik-worker:
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.8.1}
@@ -75,3 +81,9 @@ services:
depends_on:
- authentik-postgres
- authentik-redis
healthcheck:
test: ["CMD-SHELL", "ps aux | grep '[c]elery' || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s

View File

@@ -6,3 +6,8 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- AUTOHEAL_CONTAINER_LABEL=all
healthcheck:
test: ["CMD-SHELL", "pgrep -f autoheal || exit 1"]
interval: 30s
timeout: 5s
retries: 3

View File

@@ -13,3 +13,8 @@ services:
- /opt/bazarr/config:/config
- /media/neptune/Video/Movies:/movies
- /media/neptune/Video/Shows:/tv
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:6767/ping"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -11,6 +11,11 @@ services:
environment:
USER_CREATION: true
DISABLE_PASSWORD_AUTH: false
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost:8090"]
interval: 30s
timeout: 10s
retries: 3
beszel-agent:
image: henrygd/beszel-agent:0.12.6
@@ -26,3 +31,8 @@ services:
HUB_URL: http://localhost:8090
TOKEN: ${BESZEL_TOKEN:?}
KEY: ${BESZEL_KEY:?}
healthcheck:
test: ["CMD-SHELL", "pidof beszel-agent || exit 1"]
interval: 30s
timeout: 5s
retries: 3

View File

@@ -25,3 +25,8 @@ services:
- /opt/caddy/logs:/var/log
extra_hosts:
- "host:${HOST_IP}"
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost:2019/metrics"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -17,3 +17,8 @@ services:
- /dev/mapper:/dev/mapper
extra_hosts:
- "host:${HOST_IP}"
healthcheck:
test: ["CMD-SHELL", "pidof collectd || exit 1"]
interval: 30s
timeout: 5s
retries: 3

View File

@@ -18,3 +18,8 @@ services:
- /opt/dns-ad-blocker/run:/etc/services.d/dnsmasq/run
- /opt/dns-ad-blocker/var/log:/var/log
- /opt/dns-ad-blocker/dnsmasq.hosts:/etc/dnsmasq.hosts
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -8,3 +8,8 @@ services:
volumes:
- /opt/droppy:/config
- /media/scratch/droppy:/files
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost:8989/"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -1,5 +1,6 @@
services:
dsmr:
image: xirixiz/dsmr-reader-docker:5.12.0-2026.01.02
container_name: dsmr
depends_on:
- dsmrdb
@@ -7,12 +8,19 @@ services:
environment:
- DSMRREADER_ADMIN_USER=${DSMRREADER_USER:?}
- DSMRREADER_ADMIN_PASSWORD=${DSMRREADER_PASSWORD:?}
image: xirixiz/dsmr-reader-docker:5.10.3-2023.04.02
ports:
- 8888:80
restart: unless-stopped
volumes:
- /opt/dsmr/backups:/home/dsmr/app/backups
healthcheck:
# Checks if the dashboard login page loads successfully
test: ["CMD-SHELL", "curl -f http://localhost:80 || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
dsmrdb:
container_name: dsmrdb
environment:
@@ -25,3 +33,8 @@ services:
restart: unless-stopped
volumes:
- /opt/dsmr/data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5

View File

@@ -8,3 +8,8 @@ services:
- /opt/esphome:/config:rw
- /opt/esphome/log:/log:rw
- /etc/localtime:/etc/localtime:ro
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:6052"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -13,3 +13,8 @@ services:
- /mnt/yotta/helium/shared:/host/media/Shared
- /mnt/yotta/neon:/host/media/Other
- /mnt/yotta/krypton:/host/media/Video
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost:80/"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -21,3 +21,8 @@ services:
- DATABASE_NAME=${FLUENTBIT_DATABASE_NAME}
extra_hosts:
- "host:${HOST_IP}"
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost:2020/api/v1/health"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -27,3 +27,8 @@ services:
ports:
- "3003:3000"
- "222:22"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/v1/version"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -2,12 +2,6 @@ services:
grafana:
container_name: grafana
image: grafana/grafana:11.4.0
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:3000"]
interval: 20s
start_period: 30s
timeout: 5s
retries: 10
ports:
- 3333:3000
restart: unless-stopped
@@ -19,3 +13,9 @@ services:
# - /opt/grafana/grafana.ini:/etc/grafana/grafana.ini
extra_hosts:
- "host:${HOST_IP}"
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:3000"]
interval: 20s
start_period: 30s
timeout: 5s
retries: 10

View File

@@ -12,3 +12,9 @@ services:
- /opt/homarr/configs:/app/data/configs
- /opt/homarr/icons:/app/public/icons
- /var/run/docker.sock:/var/run/docker.sock
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --spider http://localhost:7575 || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s

View File

@@ -10,3 +10,8 @@ services:
- /etc/localtime:/etc/localtime:ro
extra_hosts:
- "host:${HOST_IP}"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8123"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -8,3 +8,8 @@ services:
volumes:
- /mnt/mezzo/scratch/influxdb:/var/lib/influxdb2
- /opt/gw2pvo:/opt/gw2pvo
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8086/health"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -11,3 +11,8 @@ services:
restart: unless-stopped
volumes:
- /opt/jackett:/config
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9117/UI/Dashboard"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -17,3 +17,8 @@ services:
- /mnt/yotta/krypton/Movies:/host/srv/movies
- /mnt/yotta/krypton/Shows:/host/srv/shows
- /mnt/yotta/neon/Music/Albums:/host/srv/music
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8096/health"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -12,3 +12,8 @@ services:
extra_hosts:
- "sonarr:${HOST_IP}"
- "radarr:${HOST_IP}"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5055/status"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -12,3 +12,8 @@ services:
- /opt/loki/data:/loki
extra_hosts:
- "host:${HOST_IP}"
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost:3100/ready"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -18,4 +18,10 @@ services:
- /opt/mediamtx/mediamtx.yml:/mediamtx.yml:ro
- /mnt/yotta/radon/mediamtx:/recordings
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9997/v3/paths/list"]
interval: 30s
timeout: 10s
retries: 3
# vlc --network-caching=50 rtsp://192.168.2.200:8554/mystream

View File

@@ -13,3 +13,8 @@ services:
volumes:
- /opt/minio:/data
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -12,3 +12,8 @@ services:
- /opt/mosquitto/log:/mosquitto/log
extra_hosts:
- "host:${HOST_IP}"
healthcheck:
test: ["CMD-SHELL", "mosquitto_sub -t '$SYS/#' -C 1 -i healthcheck || exit 1"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -1,11 +1,11 @@
services:
openvpn-server:
image: kylemanna/openvpn:2.4
container_name: openvpn-server
cap_add:
- NET_ADMIN
container_name: openvpn-server
extra_hosts:
- "host:${HOST_IP}"
image: kylemanna/openvpn:2.4
ports:
- 444:443
privileged: true
@@ -13,3 +13,8 @@ services:
volumes:
- /opt/openvpn-server:/etc/openvpn
- /opt/openvpn-server/logrotate.d/openvpn:/etc/logrotate.d/openvpn
healthcheck:
test: ["CMD-SHELL", "ip link show tun0 || exit 1"]
interval: 30s
timeout: 5s
retries: 3

View File

@@ -11,3 +11,8 @@ services:
volumes:
- /opt/pgadmin/var:/var/lib/pgadmin
- /opt/pgadmin/log:/var/log/pgadmin
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost/misc/ping"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -53,3 +53,8 @@ services:
2023
- /mnt/yotta/helium/shared/Photographs/Vakantie/Bram + Rik/Athene 2023:/photoprism/originals/Vakantie/Bram
+ Rik/Athene 2023
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost:2342/api/v1/status"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -11,3 +11,8 @@ services:
restart: unless-stopped
volumes:
- /opt/postgis:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5

View File

@@ -16,8 +16,12 @@ services:
- /opt/postgres/cert.pem:/cert.pem
- /opt/postgres/key.pem:/key.pem
entrypoint: ["/bin/bash", "/entrypoint.sh"]
command:
- postgres
- -c
- config_file=/etc/postgresql/postgresql.conf
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5

View File

@@ -19,3 +19,8 @@ services:
- "radarr:${HOST_IP}"
- "sonarr:${HOST_IP}"
- "lidarr:${HOST_IP}"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9696/ping"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -14,3 +14,8 @@ services:
volumes:
- /opt/qbittorrent:/config
- /media/scratch/qbittorrent:/downloads/qbittorrent
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -19,3 +19,8 @@ services:
- /media/scratch/transmission:/downloads/transmission
- /media/scratch/qbittorrent:/downloads/qbittorrent
- /mnt/yotta/krypton/Movies:/movies
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7878/ping"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -18,3 +18,8 @@ services:
- /mnt/yotta/neon/Books/Epub:/books
- /media/scratch/transmission:/downloads/transmission
- /media/scratch/qbittorrent:/downloads/qbittorrent
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8787/ping"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -9,3 +9,8 @@ services:
- /opt/rsnapshot:/config
- /mnt/yotta/xenon/rsnapshot:/host/scratch
- /root/.ssh:/root/.ssh:ro
healthcheck:
test: ["CMD-SHELL", "ps aux | grep '[c]ron' || exit 1"]
interval: 60s
timeout: 5s
retries: 3

View File

@@ -1,8 +1,13 @@
services:
socks:
container_name: socks
image: serjs/go-socks5-proxy
image: serjs/go-socks5-proxy:v0.0.4
ports:
- 1081:1080
network_mode: service:surfshark
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "nc -z localhost 1080 || exit 1"]
interval: 30s
timeout: 5s
retries: 3

View File

@@ -19,3 +19,8 @@ services:
- /media/scratch/transmission:/downloads/transmission
- /media/scratch/qbittorrent:/downloads/qbittorrent
- /mnt/yotta/krypton/Shows:/tv
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8989/ping"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -1,8 +1,9 @@
services:
surfshark:
image: ilteoood/docker-surfshark:1.7.2
container_name: surfshark
cap_add:
- NET_ADMIN
container_name: surfshark
devices:
- /dev/net/tun
dns:
@@ -15,7 +16,6 @@ services:
- CONNECTION_TYPE=udp
- LAN_NETWORK=
- ENABLE_SOCKS_SERVER=true
image: ilteoood/docker-surfshark:1.7.2
ports:
- 1080:1080
- 9091:9091
@@ -23,3 +23,9 @@ services:
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "curl -f -s https://www.google.com > /dev/null || exit 1"]
interval: 60s
timeout: 10s
retries: 3
start_period: 30s

View File

@@ -16,3 +16,8 @@ services:
- "host:${HOST_IP}"
volumes:
- /opt/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
healthcheck:
test: ["CMD-SHELL", "pidof telegraf || exit 1"]
interval: 30s
timeout: 5s
retries: 3

View File

@@ -22,6 +22,11 @@ services:
- /opt/teslamate/import:/opt/app/import
cap_drop:
- all
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4000"]
interval: 30s
timeout: 10s
retries: 3
teslamate-grafana:
image: teslamate/grafana:2.1.0
@@ -43,3 +48,8 @@ services:
- /opt/teslamate/grafana:/var/lib/grafana
- /opt/teslamate/achievements/dashboard.yml:/etc/grafana/provisioning/dashboards/dashboard.yml
- /opt/teslamate/achievements/dashboards:/TeslaMateAchievements
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -10,3 +10,8 @@ services:
restart: unless-stopped
volumes:
- /mnt/mezzo/scratch/timescaledb:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5

View File

@@ -14,3 +14,8 @@ services:
- /opt/transmission:/config
- /media/scratch/torrents:/watch
- /media/scratch/transmission:/downloads/transmission
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/transmission/web/"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -14,4 +14,3 @@ services:
timeout: 10s
retries: 3
start_period: 30s