Files
Foscarealm/scripts/deploy_caddy.sh
Stanislav Hubacek a75d9b4d34 CI/CD
2026-04-07 20:16:22 +02:00

35 lines
938 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
BASE="/opt/homelab"
GENERATOR="$BASE/scripts/generate_caddy.py"
WRAPPER="$BASE/Caddyfile.wrapper"
TARGET_CADDYFILE="/etc/caddy/Caddyfile"
BACKUP_CADDYFILE="/etc/caddy/Caddyfile.bak"
GENERATED_DIR="$BASE/generated/caddy"
echo "[1/5] Ensuring generated directory exists..."
mkdir -p "$GENERATED_DIR"
echo "[2/5] Generating Caddy fragments..."
python3 "$GENERATOR"
echo "[3/5] Installing wrapper Caddyfile..."
if [[ -f "$TARGET_CADDYFILE" ]]; then
cp "$TARGET_CADDYFILE" "$BACKUP_CADDYFILE"
fi
cp "$WRAPPER" "$TARGET_CADDYFILE"
echo "[4/5] Validating Caddy config..."
if ! caddy validate --config "$TARGET_CADDYFILE"; then
echo "[ERROR] Validation failed, restoring backup..."
if [[ -f "$BACKUP_CADDYFILE" ]]; then
cp "$BACKUP_CADDYFILE" "$TARGET_CADDYFILE"
fi
exit 1
fi
echo "[5/5] Reloading Caddy..."
systemctl reload caddy
echo "[Done] Caddy deployed successfully."