From ab2f7077061728e505a53bac8a50dc318c4157d8 Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Wed, 4 Feb 2026 18:11:49 +0100 Subject: [PATCH] towards healthchecks for all containers --- compose.authentik.yaml | 12 ++++++++++++ compose.autoheal.yaml | 5 +++++ compose.bazarr.yaml | 5 +++++ compose.beszel.yaml | 10 ++++++++++ compose.caddy.yaml | 5 +++++ compose.collectd.yaml | 5 +++++ compose.dns-ad-blocker.yaml | 5 +++++ compose.droppy.yaml | 5 +++++ compose.dsmr.yaml | 15 ++++++++++++++- compose.esphome.yaml | 5 +++++ compose.filebrowser.yaml | 5 +++++ compose.fluentbit.yaml | 5 +++++ compose.gitea.yaml | 5 +++++ compose.grafana.yaml | 12 ++++++------ compose.homarr.yaml | 6 ++++++ compose.homeassistant.yaml | 5 +++++ compose.influxdb.yaml | 5 +++++ compose.jackett.yaml | 5 +++++ compose.jellyfin.yaml | 5 +++++ compose.jellyseerr.yaml | 5 +++++ compose.loki.yaml | 5 +++++ compose.mediamtx.yaml | 6 ++++++ compose.minio.yaml | 5 +++++ compose.mosquitto.yaml | 5 +++++ compose.openvpn-server.yaml | 9 +++++++-- compose.pgadmin.yaml | 5 +++++ compose.photoprism.yaml | 5 +++++ compose.postgis.yaml | 5 +++++ compose.postgres.yaml | 6 +++++- compose.prowlarr.yaml | 5 +++++ compose.qbittorrent.yaml | 5 +++++ compose.radarr.yaml | 5 +++++ compose.readarr.yaml | 5 +++++ compose.rsnapshot.yaml | 5 +++++ compose.socks.yaml | 7 ++++++- compose.sonarr.yaml | 5 +++++ compose.surfshark.yaml | 10 ++++++++-- compose.telegraf.yaml | 5 +++++ compose.teslamate.yaml | 10 ++++++++++ compose.timescaledb.yaml | 5 +++++ compose.transmission.yaml | 5 +++++ compose.uptime.yaml | 11 +++++------ 42 files changed, 245 insertions(+), 19 deletions(-) diff --git a/compose.authentik.yaml b/compose.authentik.yaml index 60a024c..d9632f5 100644 --- a/compose.authentik.yaml +++ b/compose.authentik.yaml @@ -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 diff --git a/compose.autoheal.yaml b/compose.autoheal.yaml index 58e9daa..509e487 100644 --- a/compose.autoheal.yaml +++ b/compose.autoheal.yaml @@ -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 diff --git a/compose.bazarr.yaml b/compose.bazarr.yaml index 9bf3185..43ea11e 100644 --- a/compose.bazarr.yaml +++ b/compose.bazarr.yaml @@ -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 diff --git a/compose.beszel.yaml b/compose.beszel.yaml index cb02a3c..209f737 100644 --- a/compose.beszel.yaml +++ b/compose.beszel.yaml @@ -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 diff --git a/compose.caddy.yaml b/compose.caddy.yaml index 501e397..120a8ed 100644 --- a/compose.caddy.yaml +++ b/compose.caddy.yaml @@ -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 diff --git a/compose.collectd.yaml b/compose.collectd.yaml index 9fc8598..8c6b2ce 100644 --- a/compose.collectd.yaml +++ b/compose.collectd.yaml @@ -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 diff --git a/compose.dns-ad-blocker.yaml b/compose.dns-ad-blocker.yaml index 7fc5da3..81a2cc9 100644 --- a/compose.dns-ad-blocker.yaml +++ b/compose.dns-ad-blocker.yaml @@ -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 diff --git a/compose.droppy.yaml b/compose.droppy.yaml index d547cbf..1db61b2 100644 --- a/compose.droppy.yaml +++ b/compose.droppy.yaml @@ -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 diff --git a/compose.dsmr.yaml b/compose.dsmr.yaml index d171d28..43ba520 100644 --- a/compose.dsmr.yaml +++ b/compose.dsmr.yaml @@ -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 diff --git a/compose.esphome.yaml b/compose.esphome.yaml index 6339c82..e5c9595 100644 --- a/compose.esphome.yaml +++ b/compose.esphome.yaml @@ -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 diff --git a/compose.filebrowser.yaml b/compose.filebrowser.yaml index 50f894c..67d53eb 100644 --- a/compose.filebrowser.yaml +++ b/compose.filebrowser.yaml @@ -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 diff --git a/compose.fluentbit.yaml b/compose.fluentbit.yaml index 4257ed8..2b10443 100644 --- a/compose.fluentbit.yaml +++ b/compose.fluentbit.yaml @@ -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 diff --git a/compose.gitea.yaml b/compose.gitea.yaml index 371af0f..d195bfd 100644 --- a/compose.gitea.yaml +++ b/compose.gitea.yaml @@ -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 diff --git a/compose.grafana.yaml b/compose.grafana.yaml index df94cc7..cd8b031 100644 --- a/compose.grafana.yaml +++ b/compose.grafana.yaml @@ -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 diff --git a/compose.homarr.yaml b/compose.homarr.yaml index 3b620f2..ecf32d5 100644 --- a/compose.homarr.yaml +++ b/compose.homarr.yaml @@ -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 diff --git a/compose.homeassistant.yaml b/compose.homeassistant.yaml index 9c4044d..07a4e3f 100644 --- a/compose.homeassistant.yaml +++ b/compose.homeassistant.yaml @@ -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 diff --git a/compose.influxdb.yaml b/compose.influxdb.yaml index 2ad38bf..8c7be40 100644 --- a/compose.influxdb.yaml +++ b/compose.influxdb.yaml @@ -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 diff --git a/compose.jackett.yaml b/compose.jackett.yaml index b8969aa..9a958ef 100644 --- a/compose.jackett.yaml +++ b/compose.jackett.yaml @@ -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 diff --git a/compose.jellyfin.yaml b/compose.jellyfin.yaml index be14dcb..e4d0492 100644 --- a/compose.jellyfin.yaml +++ b/compose.jellyfin.yaml @@ -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 diff --git a/compose.jellyseerr.yaml b/compose.jellyseerr.yaml index 66300ed..ac9d3eb 100644 --- a/compose.jellyseerr.yaml +++ b/compose.jellyseerr.yaml @@ -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 diff --git a/compose.loki.yaml b/compose.loki.yaml index c6ba1a2..97a9506 100644 --- a/compose.loki.yaml +++ b/compose.loki.yaml @@ -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 diff --git a/compose.mediamtx.yaml b/compose.mediamtx.yaml index e0f3bdd..7178fff 100644 --- a/compose.mediamtx.yaml +++ b/compose.mediamtx.yaml @@ -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 diff --git a/compose.minio.yaml b/compose.minio.yaml index 7cf427f..f73136d 100644 --- a/compose.minio.yaml +++ b/compose.minio.yaml @@ -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 diff --git a/compose.mosquitto.yaml b/compose.mosquitto.yaml index cb47038..1f73f38 100644 --- a/compose.mosquitto.yaml +++ b/compose.mosquitto.yaml @@ -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 diff --git a/compose.openvpn-server.yaml b/compose.openvpn-server.yaml index 6450df0..0edb6ac 100644 --- a/compose.openvpn-server.yaml +++ b/compose.openvpn-server.yaml @@ -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 diff --git a/compose.pgadmin.yaml b/compose.pgadmin.yaml index ca48f5e..a27570f 100644 --- a/compose.pgadmin.yaml +++ b/compose.pgadmin.yaml @@ -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 diff --git a/compose.photoprism.yaml b/compose.photoprism.yaml index 42898c8..0f0c14c 100644 --- a/compose.photoprism.yaml +++ b/compose.photoprism.yaml @@ -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 diff --git a/compose.postgis.yaml b/compose.postgis.yaml index 0c542fa..f0d9605 100644 --- a/compose.postgis.yaml +++ b/compose.postgis.yaml @@ -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 diff --git a/compose.postgres.yaml b/compose.postgres.yaml index 58e9b7b..f41fe78 100644 --- a/compose.postgres.yaml +++ b/compose.postgres.yaml @@ -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 diff --git a/compose.prowlarr.yaml b/compose.prowlarr.yaml index ad3bfb0..a63945c 100644 --- a/compose.prowlarr.yaml +++ b/compose.prowlarr.yaml @@ -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 diff --git a/compose.qbittorrent.yaml b/compose.qbittorrent.yaml index 77e13b8..a4ba0a2 100644 --- a/compose.qbittorrent.yaml +++ b/compose.qbittorrent.yaml @@ -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 diff --git a/compose.radarr.yaml b/compose.radarr.yaml index b84802c..a8e7d27 100644 --- a/compose.radarr.yaml +++ b/compose.radarr.yaml @@ -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 diff --git a/compose.readarr.yaml b/compose.readarr.yaml index 1957c3d..dd45c67 100644 --- a/compose.readarr.yaml +++ b/compose.readarr.yaml @@ -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 diff --git a/compose.rsnapshot.yaml b/compose.rsnapshot.yaml index 9918ff9..5ad4b78 100644 --- a/compose.rsnapshot.yaml +++ b/compose.rsnapshot.yaml @@ -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 diff --git a/compose.socks.yaml b/compose.socks.yaml index bbf4b78..16cad28 100644 --- a/compose.socks.yaml +++ b/compose.socks.yaml @@ -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 diff --git a/compose.sonarr.yaml b/compose.sonarr.yaml index e9f8e9d..bc35a6d 100644 --- a/compose.sonarr.yaml +++ b/compose.sonarr.yaml @@ -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 diff --git a/compose.surfshark.yaml b/compose.surfshark.yaml index 7a2114e..21f3e5f 100644 --- a/compose.surfshark.yaml +++ b/compose.surfshark.yaml @@ -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 diff --git a/compose.telegraf.yaml b/compose.telegraf.yaml index ee7a4f8..57aee53 100644 --- a/compose.telegraf.yaml +++ b/compose.telegraf.yaml @@ -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 diff --git a/compose.teslamate.yaml b/compose.teslamate.yaml index 81807f6..2c677d4 100644 --- a/compose.teslamate.yaml +++ b/compose.teslamate.yaml @@ -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 diff --git a/compose.timescaledb.yaml b/compose.timescaledb.yaml index 09b5f9a..996a6ba 100644 --- a/compose.timescaledb.yaml +++ b/compose.timescaledb.yaml @@ -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 diff --git a/compose.transmission.yaml b/compose.transmission.yaml index 6f0affa..a7d722d 100644 --- a/compose.transmission.yaml +++ b/compose.transmission.yaml @@ -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 diff --git a/compose.uptime.yaml b/compose.uptime.yaml index 4cc3c3c..b310c63 100644 --- a/compose.uptime.yaml +++ b/compose.uptime.yaml @@ -9,9 +9,8 @@ services: ports: - "3001:3001" healthcheck: - test: ["CMD-SHELL", "curl -f http://localhost:3001 || exit 1"] - interval: 60s - timeout: 10s - retries: 3 - start_period: 30s - + test: ["CMD-SHELL", "curl -f http://localhost:3001 || exit 1"] + interval: 60s + timeout: 10s + retries: 3 + start_period: 30s