Project

General

Profile

Health Check » History » Revision 2

Revision 1 (Redmine Admin, 10/25/2026 04:16 PM) → Revision 2/3 (Redmine Admin, 10/26/2026 02:24 AM)

# Health check 

 All `site-*` units at once, from the host. Requests go straight to NPM on 
   

 127.0.0.1:444 — the same 443→444 translation the FortiGate VIP does — while 
   

 `--resolve` keeps SNI/Host as the real domain. Domains come from each unit's 
   

 `Description=<App> -- <domain>` line (WordPress, Redmine and Snipe-IT alike). 

 ```bash 
 

 ``` 
 for u in ~/.config/containers/systemd/site-*.container; do 
   
   d=$(sed -n 's/^Description=.* -- //p' "$u") 
   
   printf '%-28s ' "$d"; curl -sI --max-time 10 --resolve "$d:444:127.0.0.1" "https://$d:444" | head -1 
 
 done 
 
 # add -k to curl while a Let's Encrypt cert isn't issued yet 

 

 # one site by hand 
 
 curl -sI --resolve <domain>:444:127.0.0.1 https://<domain>:444 | head -1 

 

 # from outside (mobile data / VPN client) 
 
 curl -sI https://<domain> | head -1 
 
 ``` 

 

 `~/deploy/check-sites.sh` is the same loop with container status alongside 
   

 (uses the same `.* -- ` --` sed so non-WordPress units are included). 

 

 `200`/`301`/`302` healthy · `502` NPM up but can't reach the container 
   

 (network membership? container down?) · `NO RESPONSE` NPM/TLS not answering on 444. 


 

 --- 
 _Source: 

 *Source: `dmz-web-podman-cheatsheet.md` v1.1.1 in the `dmz-web-deploy` repo ([[Releases]]). ([Releases](#)). Edit the wiki and the repo copy together._ 
 together.*