name: Deploy Caddy on: push: branches: [main] pull_request: branches: [main] jobs: deploy: if: github.event_name == 'push' runs-on: vps-runner steps: - uses: actions/checkout@v3 - name: Backup current config run: | sudo cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.backup sudo cp -r /etc/caddy/conf.d /etc/caddy/conf.d.backup - name: Deploy configs run: | sudo cp Caddyfile /etc/caddy/ sudo cp -r conf.d/* /etc/caddy/conf.d/ sudo cp ssl/*.pem /etc/caddy/ssl/ || true - name: Validate deployed config run: sudo caddy validate --config /etc/caddy/Caddyfile - name: Reload Caddy run: | sudo systemctl restart caddy || { echo "Reload failed, checking status:" sudo systemctl status caddy --no-pager sudo journalctl -xeu caddy.service --no-pager -n 50 exit 1 } - name: Check Caddy status run: sudo systemctl status caddy --no-pager