Project

General

Profile

Health Check » History » Version 2

Redmine Admin, 10/26/2026 02:24 AM
deploy-publish.sh

1 2 Redmine Admin
All `site-*` units at once, from the host. Requests go straight to NPM on
2
127.0.0.1:444 — the same 443→444 translation the FortiGate VIP does — while
3
`--resolve` keeps SNI/Host as the real domain. Domains come from each unit's
4 1 Redmine Admin
`Description=<App> -- <domain>` line (WordPress, Redmine and Snipe-IT alike).
5
6 2 Redmine Admin
```bash
7 1 Redmine Admin
for u in ~/.config/containers/systemd/site-*.container; do
8
  d=$(sed -n 's/^Description=.* -- //p' "$u")
9
  printf '%-28s ' "$d"; curl -sI --max-time 10 --resolve "$d:444:127.0.0.1" "https://$d:444" | head -1
10
done
11
# add -k to curl while a Let's Encrypt cert isn't issued yet
12
13
# one site by hand
14
curl -sI --resolve <domain>:444:127.0.0.1 https://<domain>:444 | head -1
15
16
# from outside (mobile data / VPN client)
17
curl -sI https://<domain> | head -1
18
```
19
20 2 Redmine Admin
`~/deploy/check-sites.sh` is the same loop with container status alongside
21
(uses the same `.* -- ` sed so non-WordPress units are included).
22 1 Redmine Admin
23 2 Redmine Admin
`200`/`301`/`302` healthy · `502` NPM up but can't reach the container
24 1 Redmine Admin
(network membership? container down?) · `NO RESPONSE` NPM/TLS not answering on 444.
25
26
27 2 Redmine Admin
---
28
_Source: `dmz-web-podman-cheatsheet.md` v1.1.1 in the `dmz-web-deploy` repo ([[Releases]]). Edit the wiki and the repo copy together._