Backup, install from ~/koopa-caddy/Caddyfile, validate, reload. Live path on host: ~/koopa-caddy/apply.sh
42 lines
1 KiB
Bash
Executable file
42 lines
1 KiB
Bash
Executable file
#!/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"
|