scripts: caddy apply helper for koopa host Caddyfile

Backup, install from ~/koopa-caddy/Caddyfile, validate, reload.
Live path on host: ~/koopa-caddy/apply.sh
This commit is contained in:
Hernâni Marques 2026-07-10 15:37:42 +02:00
parent fa20edf2e9
commit 730389b97d
No known key found for this signature in database
2 changed files with 57 additions and 0 deletions

15
scripts/caddy/README.md Normal file
View file

@ -0,0 +1,15 @@
# koopa Caddy apply
| File | Role |
|------|------|
| `Caddyfile` | Desired config (sync from admin-log `configs/caddy/Caddyfile`) |
| `apply.sh` | Backup live, install, validate, `systemctl reload caddy` |
```bash
# as hernani (prompts for sudo password)
~/koopa-caddy/apply.sh
# or
sudo ~/koopa-caddy/apply.sh
```
Override source: `CADDYFILE_SRC=/path/to/Caddyfile ~/koopa-caddy/apply.sh`

42
scripts/caddy/apply.sh Executable file
View file

@ -0,0 +1,42 @@
#!/usr/bin/env bash
# Apply koopa Caddyfile (git.hacktivism.ch, forgejo-ssh note :9200, ACME host list).
# Usage: sudo ~/koopa-caddy/apply.sh
# or: ~/koopa-caddy/apply.sh (will re-exec with sudo if needed)
set -euo pipefail
SRC="${CADDYFILE_SRC:-/home/hernani/koopa-caddy/Caddyfile}"
DST="/etc/caddy/Caddyfile"
BACKUP_DIR="/etc/caddy"
if [[ ! -f "$SRC" ]]; then
echo "error: source missing: $SRC" >&2
exit 1
fi
if [[ "$(id -u)" -ne 0 ]]; then
exec sudo -E "$0" "$@"
fi
ts=$(date +%Y%m%d-%H%M%S)
bak="${BACKUP_DIR}/Caddyfile.bak-${ts}"
cp -a "$DST" "$bak"
echo "backup: $bak"
cp "$SRC" "$DST"
chown root:caddy "$DST" 2>/dev/null || chown root:root "$DST"
chmod 644 "$DST"
echo "validate..."
if command -v caddy >/dev/null 2>&1; then
caddy validate --config "$DST"
else
echo "warn: caddy binary not in PATH; skipping validate" >&2
fi
echo "reload..."
systemctl reload caddy
systemctl is-active caddy
echo "spot-check:"
grep -n "git.hacktivism\|9200\|9024" "$DST" | head -10
echo "OK: $DST updated from $SRC"