Add comprehensive health checks for Sablier lazy loading services

- Add health checks to all services using Sablier lazy loading
- Utilities stack: Backrest, Duplicati, Form.io, Vaultwarden
- Productivity stack: Nextcloud, WordPress, Gitea, BookStack, MediaWiki
- Media Management stack: Sonarr, Radarr, Prowlarr, Jellyseerr
- Infrastructure stack: Dozzle, Glances, Code Server
- Dashboards stack: Homarr
- Health checks use curl to service endpoints with 30s intervals
- Appropriate start_period delays for service initialization
- This resolves Sablier warnings about missing health checks
This commit is contained in:
EZ-Homelab
2026-01-24 17:26:52 -05:00
parent 53d4fc0d4b
commit 602dc3d12d
6 changed files with 103 additions and 1 deletions

View File

@@ -486,7 +486,7 @@ http:
mediawiki-${SERVER_HOSTNAME}: mediawiki-${SERVER_HOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:
- url: "http://192.168.4.11:8084" - url: "http://192.168.4.11:8086"
passHostHeader: true passHostHeader: true
motioneye-${SERVER_HOSTNAME}: motioneye-${SERVER_HOSTNAME}:

View File

@@ -83,6 +83,12 @@ services:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
environment: environment:
- TZ=${TZ} - TZ=${TZ}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7575/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# Service metadata # Service metadata

View File

@@ -148,6 +148,12 @@ services:
- DOZZLE_LEVEL=info - DOZZLE_LEVEL=info
- DOZZLE_TAILSIZE=300 - DOZZLE_TAILSIZE=300
- DOZZLE_FILTER=status=running - DOZZLE_FILTER=status=running
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# Service metadata # Service metadata
@@ -194,6 +200,12 @@ services:
- ./glances/config:/glances/conf - ./glances/config:/glances/conf
environment: environment:
- GLANCES_OPT=-w - GLANCES_OPT=-w
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:61208/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# Service metadata # Service metadata
@@ -244,6 +256,12 @@ services:
- TZ=${TZ} - TZ=${TZ}
- PASSWORD=${CODE_SERVER_PASSWORD} - PASSWORD=${CODE_SERVER_PASSWORD}
- SUDO_PASSWORD=${CODE_SERVER_SUDO_PASSWORD} - SUDO_PASSWORD=${CODE_SERVER_SUDO_PASSWORD}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8443/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# Service metadata # Service metadata

View File

@@ -39,6 +39,12 @@ services:
- PUID=${PUID} - PUID=${PUID}
- PGID=${PGID} - PGID=${PGID}
- TZ=${TZ} - TZ=${TZ}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8989/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# ========================================== # ==========================================
@@ -77,6 +83,12 @@ services:
- PUID=${PUID} - PUID=${PUID}
- PGID=${PGID} - PGID=${PGID}
- TZ=${TZ} - TZ=${TZ}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7878/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# ========================================== # ==========================================
@@ -113,6 +125,12 @@ services:
- PUID=${PUID} - PUID=${PUID}
- PGID=${PGID} - PGID=${PGID}
- TZ=${TZ} - TZ=${TZ}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9696/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# ========================================== # ==========================================
@@ -301,6 +319,12 @@ services:
environment: environment:
- LOG_LEVEL=info - LOG_LEVEL=info
- TZ=${TZ} - TZ=${TZ}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5055/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# ========================================== # ==========================================

View File

@@ -53,6 +53,12 @@ services:
- TRUSTED_PROXIES=172.18.0.0/16 - TRUSTED_PROXIES=172.18.0.0/16
- OVERWRITEPROTOCOL=https - OVERWRITEPROTOCOL=https
- OVERWRITEHOST=nextcloud.${DOMAIN} - OVERWRITEHOST=nextcloud.${DOMAIN}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/status.php"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
depends_on: depends_on:
- nextcloud-db - nextcloud-db
labels: labels:
@@ -148,6 +154,12 @@ services:
- WORDPRESS_DB_USER=wordpress - WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD} - WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD}
- WORDPRESS_DB_NAME=wordpress - WORDPRESS_DB_NAME=wordpress
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
depends_on: depends_on:
- wordpress-db - wordpress-db
labels: labels:
@@ -218,6 +230,12 @@ services:
- GITEA__database__NAME=gitea - GITEA__database__NAME=gitea
- GITEA__database__USER=gitea - GITEA__database__USER=gitea
- GITEA__database__PASSWD=${GITEA_DB_PASSWORD} - GITEA__database__PASSWD=${GITEA_DB_PASSWORD}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
depends_on: depends_on:
- gitea-db - gitea-db
labels: labels:
@@ -316,6 +334,12 @@ services:
- DB_USERNAME=bookstack - DB_USERNAME=bookstack
- DB_PASSWORD=${BOOKSTACK_DB_PASSWORD} - DB_PASSWORD=${BOOKSTACK_DB_PASSWORD}
- APP_KEY=base64:NsYD8+8MAvtBhK8xw9p8pxQDy4x8aOQi/78M3CsseAw= - APP_KEY=base64:NsYD8+8MAvtBhK8xw9p8pxQDy4x8aOQi/78M3CsseAw=
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
depends_on: depends_on:
- bookstack-db - bookstack-db
labels: labels:
@@ -373,6 +397,12 @@ services:
- MEDIAWIKI_DB_NAME=mediawiki - MEDIAWIKI_DB_NAME=mediawiki
- MEDIAWIKI_DB_USER=mediawiki - MEDIAWIKI_DB_USER=mediawiki
- MEDIAWIKI_DB_PASSWORD=${MEDIAWIKI_DB_PASSWORD} - MEDIAWIKI_DB_PASSWORD=${MEDIAWIKI_DB_PASSWORD}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
depends_on: depends_on:
- mediawiki-db - mediawiki-db
labels: labels:

View File

@@ -41,6 +41,12 @@ services:
- BACKREST_DATA=/data - BACKREST_DATA=/data
- BACKREST_CONFIG=/config/config.json - BACKREST_CONFIG=/config/config.json
- TZ=${TZ} - TZ=${TZ}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9898/api/v1/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# Service metadata # Service metadata
@@ -79,6 +85,12 @@ services:
- PUID=${PUID} - PUID=${PUID}
- PGID=${PGID} - PGID=${PGID}
- TZ=${TZ} - TZ=${TZ}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8200/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# Service metadata # Service metadata
@@ -113,6 +125,12 @@ services:
- MONGO=mongodb://formio-mongo:27017/formio - MONGO=mongodb://formio-mongo:27017/formio
- JWT_SECRET=${FORMIO_JWT_SECRET} - JWT_SECRET=${FORMIO_JWT_SECRET}
- DB_SECRET=${FORMIO_DB_SECRET} - DB_SECRET=${FORMIO_DB_SECRET}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
depends_on: depends_on:
- formio-mongo - formio-mongo
labels: labels:
@@ -171,6 +189,12 @@ services:
# - SMTP_SECURITY=${SMTP_SECURITY} # - SMTP_SECURITY=${SMTP_SECURITY}
# - SMTP_USERNAME=${SMTP_USERNAME} # - SMTP_USERNAME=${SMTP_USERNAME}
# - SMTP_PASSWORD=${SMTP_PASSWORD} # - SMTP_PASSWORD=${SMTP_PASSWORD}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
labels: labels:
# TRAEFIK CONFIGURATION # TRAEFIK CONFIGURATION
# ========================================== # ==========================================