Skip to content

Commit 3cd8bdf

Browse files
committed
βš“ Unified healthcheck timing: hoisted shared anchor for cleaner sails
1 parent bc780f0 commit 3cd8bdf

File tree

2 files changed

+30
-62
lines changed

2 files changed

+30
-62
lines changed

β€Ždocker-compose.ymlβ€Ž

Lines changed: 23 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,15 @@ x-arr-stack-container: &arr-stack-container # YAML anchor for arr-stack contain
7272
environment: # Define common arr-stack container variables
7373
<<: *arr-stack-environment # Pull in the arr-stack environment information
7474

75+
#
76+
# Standard healthcheck timing settings
77+
#
78+
x-default-healthcheck-settings: &default-healthcheck-settings # YAML anchor for healthcheck settings
79+
interval: ${DEFAULT_HEALTHCHECK_INTERVAL} # Run the check at this interval
80+
timeout: ${DEFAULT_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
81+
start_period: ${DEFAULT_HEALTHCHECK_START_PERIOD} # Grace period before checks start
82+
retries: 5 # Mark as unhealthy after 5 failures
83+
7584
#
7685
# Define the services section
7786
#
@@ -155,10 +164,7 @@ services:
155164
# Define container healthcheck to verify VPN connectivity
156165
healthcheck:
157166
test: ["CMD-SHELL", "wget -qO- https://ipinfo.io | grep -q 'ip'"] # Check if public IP is reachable
158-
interval: ${GLUETUN_HEALTHCHECK_INTERVAL} # Run the check at this interval
159-
timeout: ${GLUETUN_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
160-
start_period: ${GLUETUN_HEALTHCHECK_START_PERIOD} # Grace period before checks start
161-
retries: 5 # Mark as unhealthy after 5 failures
167+
<<: *default-healthcheck-settings # Pull in default healthcheck settings
162168

163169
# Specify container service dependencies
164170
depends_on:
@@ -189,10 +195,7 @@ services:
189195
# Define container healthcheck to verify FlareSolverr connectivity
190196
healthcheck:
191197
test: ["CMD-SHELL", "curl -s http://localhost:8191 | grep -q 'FlareSolverr'"] # Check if FlareSolverr UI is reachable
192-
interval: ${FLARESOLVERR_HEALTHCHECK_INTERVAL} # Run the check at this interval
193-
timeout: ${FLARESOLVERR_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
194-
start_period: ${FLARESOLVERR_HEALTHCHECK_START_PERIOD} # Grace period before checks start
195-
retries: 5 # Mark as unhealthy after 5 failures
198+
<<: *default-healthcheck-settings # Pull in default healthcheck settings
196199

197200
#
198201
# Define the 'prowlarr' service for managing indexers
@@ -210,11 +213,8 @@ services:
210213

211214
# Define container healthcheck to verify Prowlarr connectivity
212215
healthcheck:
213-
test: ["CMD-SHELL", "wget -qO- http://localhost:9696 | grep -q '<title>Login - Prowlarr</title>'"] # Check if Prowlarr web UI is up
214-
interval: ${PROWLARR_HEALTHCHECK_INTERVAL} # Run the check at this interval
215-
timeout: ${PROWLARR_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
216-
start_period: ${PROWLARR_HEALTHCHECK_START_PERIOD} # Grace period before checks start
217-
retries: 5 # Mark as unhealthy after 5 failures
216+
test: ["CMD-SHELL", "wget -qO- http://localhost:${PROWLARR_WEBUI_PORT} | grep -q 'Prowlarr'"] # Check if Prowlarr web UI is up
217+
<<: *default-healthcheck-settings # Pull in default healthcheck settings
218218

219219
# Specify container service dependencies
220220
depends_on:
@@ -240,11 +240,8 @@ services:
240240

241241
# Define container healthcheck to verify qBittorrent connectivity
242242
healthcheck:
243-
test: ["CMD-SHELL", "wget -qO- http://localhost:8080 | grep -q '<title>qBittorrent WebUI</title>'"] # Check if qBittorrent web UI is reachable
244-
interval: ${QBITTORRENT_HEALTHCHECK_INTERVAL} # Run the check at this interval
245-
timeout: ${QBITTORRENT_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
246-
start_period: ${QBITTORRENT_HEALTHCHECK_START_PERIOD} # Grace period before checks start
247-
retries: 5 # Mark as unhealthy after 5 failures
243+
test: ["CMD-SHELL", "wget -qO- http://localhost:${QBITTORRENT_WEBUI_PORT} | grep -q 'qBittorrent'"] # Check if qBittorrent web UI is reachable
244+
<<: *default-healthcheck-settings # Pull in default healthcheck settings
248245

249246
# Specify container service dependencies
250247
depends_on:
@@ -269,11 +266,8 @@ services:
269266

270267
# Define container healthcheck to verify Radarr connectivity
271268
healthcheck:
272-
test: ["CMD-SHELL", "wget -qO- http://localhost:7878 | grep -q '<title>Radarr</title>'"] # Check if Radarr web UI is reachable
273-
interval: ${RADARR_HEALTHCHECK_INTERVAL} # Run the check at this interval
274-
timeout: ${RADARR_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
275-
start_period: ${RADARR_HEALTHCHECK_START_PERIOD} # Grace period before checks start
276-
retries: 5 # Mark as unhealthy after 5 failures
269+
test: ["CMD-SHELL", "wget -qO- http://localhost:7878 | grep -q 'Radarr'"] # Check if Radarr web UI is reachable
270+
<<: *default-healthcheck-settings # Pull in default healthcheck settings
277271

278272
# Specify container service dependencies
279273
depends_on:
@@ -302,11 +296,8 @@ services:
302296

303297
# Define container healthcheck to verify Sonarr connectivity
304298
healthcheck:
305-
test: ["CMD-SHELL", "wget -qO- http://localhost:8989 | grep -q '<title>Sonarr</title>'"] # Check if Sonarr web UI is reachable
306-
interval: ${SONARR_HEALTHCHECK_INTERVAL} # Run the check at this interval
307-
timeout: ${SONARR_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
308-
start_period: ${SONARR_HEALTHCHECK_START_PERIOD} # Grace period before checks start
309-
retries: 5 # Mark as unhealthy after 5 failures
299+
test: ["CMD-SHELL", "wget -qO- http://localhost:${SONARR_WEBUI_PORT} | grep -q 'Sonarr'"] # Check if Sonarr web UI is reachable
300+
<<: *default-healthcheck-settings # Pull in default healthcheck settings
310301

311302
# Specify container service dependencies
312303
depends_on:
@@ -335,11 +326,8 @@ services:
335326

336327
# Define container healthcheck to verify Bazarr connectivity
337328
healthcheck:
338-
test: ["CMD-SHELL", "wget -qO- http://localhost:6767 | grep -q '<title>Bazarr</title>'"] # Check if Bazarr web UI is reachable
339-
interval: ${BAZARR_HEALTHCHECK_INTERVAL} # Run the check at this interval
340-
timeout: ${BAZARR_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
341-
start_period: ${BAZARR_HEALTHCHECK_START_PERIOD} # Grace period before checks start
342-
retries: 5 # Mark as unhealthy after 5 failures
329+
test: ["CMD-SHELL", "wget -qO- http://localhost:6767 | grep -q 'Bazarr'"] # Check if Bazarr web UI is reachable
330+
<<: *default-healthcheck-settings # Pull in default healthcheck settings
343331

344332
# Specify container service dependencies
345333
depends_on:
@@ -368,11 +356,8 @@ services:
368356

369357
# Define container healthcheck to verify Readarr connectivity
370358
healthcheck:
371-
test: ["CMD-SHELL", "wget -qO- http://localhost:8787 | grep -q '<title>Readarr</title>'"] # Check if Readarr web UI is reachable
372-
interval: ${READARR_HEALTHCHECK_INTERVAL} # Run the check at this interval
373-
timeout: ${READARR_HEALTHCHECK_TIMEOUT} # Fail if it exceeds this duration
374-
start_period: ${READARR_HEALTHCHECK_START_PERIOD} # Grace period before checks start
375-
retries: 5 # Mark as unhealthy after 5 failures
359+
test: ["CMD-SHELL", "wget -qO- http://localhost:${READARR_WEBUI_PORT} | grep -q 'Readarr'"] # Check if Readarr web UI is reachable
360+
<<: *default-healthcheck-settings # Pull in default healthcheck settings
376361

377362
# Specify container service dependencies
378363
depends_on:

β€Žexample.envβ€Ž

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ DEFAULT_PUID="${DEFAULT_PUID:-1000}"
2929
DEFAULT_PGID="${DEFAULT_PGID:-1000}"
3030
DEFAULT_GROUP="${DEFAULT_GROUP:-109}"
3131

32+
#
33+
# Standard healthcheck timing settings
34+
#
35+
DEFAULT_HEALTHCHECK_INTERVAL="${DEFAULT_HEALTHCHECK_INTERVAL:-10s}"
36+
DEFAULT_HEALTHCHECK_TIMEOUT="${DEFAULT_HEALTHCHECK_TIMEOUT:-10s}"
37+
DEFAULT_HEALTHCHECK_START_PERIOD="${DEFAULT_HEALTHCHECK_START_PERIOD:-10s}"
38+
3239
#
3340
# Container logging settings
3441
#
@@ -71,9 +78,6 @@ GLUETUN_TAG="${GLUETUN_TAG:-latest}"
7178
GLUETUN_VPN_SERVICE_PROVIDER="${GLUETUN_VPN_SERVICE_PROVIDER:-custom}"
7279
GLUETUN_VPN_TYPE="${GLUETUN_VPN_TYPE:-wireguard}"
7380
GLUETUN_CONFIG_PATH="${GLUETUN_CONFIG_PATH:-./config/gluetun}"
74-
GLUETUN_HEALTHCHECK_INTERVAL="${GLUETUN_HEALTHCHECK_INTERVAL:-10s}"
75-
GLUETUN_HEALTHCHECK_TIMEOUT="${GLUETUN_HEALTHCHECK_TIMEOUT:-10s}"
76-
GLUETUN_HEALTHCHECK_START_PERIOD="${GLUETUN_HEALTHCHECK_START_PERIOD:-10s}"
7781

7882
#
7983
# Flaresolverr environment variables
@@ -83,19 +87,13 @@ FLARESOLVERR_LOG_LEVEL="${FLARESOLVERR_LOG_LEVEL:-info}"
8387
FLARESOLVERR_LOG_HTML="${FLARESOLVERR_LOG_HTML:-false}"
8488
FLARESOLVERR_CAPTCHA_SOLVER="${FLARESOLVERR_CAPTCHA_SOLVER:-none}"
8589
FLARESOLVERR_PORT="${FLARESOLVERR_PORT:-8191}"
86-
FLARESOLVERR_HEALTHCHECK_INTERVAL="${FLARESOLVERR_HEALTHCHECK_INTERVAL:-10s}"
87-
FLARESOLVERR_HEALTHCHECK_TIMEOUT="${FLARESOLVERR_HEALTHCHECK_TIMEOUT:-10s}"
88-
FLARESOLVERR_HEALTHCHECK_START_PERIOD="${FLARESOLVERR_HEALTHCHECK_START_PERIOD:-10s}"
8990

9091
#
9192
# Prowlarr environment variables
9293
#
9394
PROWLARR_TAG="${PROWLARR_TAG:-latest}"
9495
PROWLARR_WEBUI_PORT="${PROWLARR_WEBUI_PORT:-9696}"
9596
PROWLARR_CONFIG_PATH="${PROWLARR_CONFIG_PATH:-./config/prowlarr}"
96-
PROWLARR_HEALTHCHECK_INTERVAL="${PROWLARR_HEALTHCHECK_INTERVAL:-10s}"
97-
PROWLARR_HEALTHCHECK_TIMEOUT="${PROWLARR_HEALTHCHECK_TIMEOUT:-10s}"
98-
PROWLARR_HEALTHCHECK_START_PERIOD="${PROWLARR_HEALTHCHECK_START_PERIOD:-10s}"
9997

10098
#
10199
# qBittorrent environment variables
@@ -105,49 +103,34 @@ QBITTORRENT_TCP_PORT="${QBITTORRENT_TCP_PORT:-6881}"
105103
QBITTORRENT_UDP_PORT="${QBITTORRENT_UDP_PORT:-6881}"
106104
QBITTORRENT_WEBUI_PORT="${QBITTORRENT_WEBUI_PORT:-8080}"
107105
QBITTORRENT_CONFIG_PATH="${QBITTORRENT_CONFIG_PATH:-./config/qbittorrent}"
108-
QBITTORRENT_HEALTHCHECK_INTERVAL="${QBITTORRENT_HEALTHCHECK_INTERVAL:-10s}"
109-
QBITTORRENT_HEALTHCHECK_TIMEOUT="${QBITTORRENT_HEALTHCHECK_TIMEOUT:-10s}"
110-
QBITTORRENT_HEALTHCHECK_START_PERIOD="${QBITTORRENT_HEALTHCHECK_START_PERIOD:-10s}"
111106

112107
#
113108
# Radarr environment variables
114109
#
115110
RADARR_TAG="${RADARR_TAG:-latest}"
116111
RADARR_WEBUI_PORT="${RADARR_WEBUI_PORT:-7878}"
117112
RADARR_CONFIG_PATH="${RADARR_CONFIG_PATH:-./config/radarr}"
118-
RADARR_HEALTHCHECK_INTERVAL="${RADARR_HEALTHCHECK_INTERVAL:-10s}"
119-
RADARR_HEALTHCHECK_TIMEOUT="${RADARR_HEALTHCHECK_TIMEOUT:-10s}"
120-
RADARR_HEALTHCHECK_START_PERIOD="${RADARR_HEALTHCHECK_START_PERIOD:-10s}"
121113

122114
#
123115
# Sonarr environment variables
124116
#
125117
SONARR_TAG="${SONARR_TAG:-latest}"
126118
SONARR_WEBUI_PORT="${SONARR_WEBUI_PORT:-8989}"
127119
SONARR_CONFIG_PATH="${SONARR_CONFIG_PATH:-./config/sonarr}"
128-
SONARR_HEALTHCHECK_INTERVAL="${SONARR_HEALTHCHECK_INTERVAL:-10s}"
129-
SONARR_HEALTHCHECK_TIMEOUT="${SONARR_HEALTHCHECK_TIMEOUT:-10s}"
130-
SONARR_HEALTHCHECK_START_PERIOD="${SONARR_HEALTHCHECK_START_PERIOD:-10s}"
131120

132121
#
133122
# Bazarr environment variables
134123
#
135124
BAZARR_TAG="${BAZARR_TAG:-latest}"
136125
BAZARR_WEBUI_PORT="${BAZARR_WEBUI_PORT:-6767}"
137126
BAZARR_CONFIG_PATH="${BAZARR_CONFIG_PATH:-./config/bazarr}"
138-
BAZARR_HEALTHCHECK_INTERVAL="${BAZARR_HEALTHCHECK_INTERVAL:-10s}"
139-
BAZARR_HEALTHCHECK_TIMEOUT="${BAZARR_HEALTHCHECK_TIMEOUT:-10s}"
140-
BAZARR_HEALTHCHECK_START_PERIOD="${BAZARR_HEALTHCHECK_START_PERIOD:-10s}"
141127

142128
#
143129
# Readarr environment variables
144130
#
145131
READARR_TAG="${READARR_TAG:-develop}"
146132
READARR_WEBUI_PORT="${READARR_WEBUI_PORT:-8787}"
147133
READARR_CONFIG_PATH="${READARR_CONFIG_PATH:-./config/readarr}"
148-
READARR_HEALTHCHECK_INTERVAL="${READARR_HEALTHCHECK_INTERVAL:-10s}"
149-
READARR_HEALTHCHECK_TIMEOUT="${READARR_HEALTHCHECK_TIMEOUT:-10s}"
150-
READARR_HEALTHCHECK_START_PERIOD="${READARR_HEALTHCHECK_START_PERIOD:-10s}"
151134

152135
#
153136
# Overseerr environment variables

0 commit comments

Comments
Β (0)