#!/usr/bin/env bash # Publish Kestrel's Hall to the shared host: the page to /opt/gamehall and # its Caddy site file beside the games'. Usage: gamehall/deploy.sh set -euo pipefail HOST="${1:?usage: gamehall/deploy.sh }" HERE="$(cd "$(dirname "$0")" && pwd)" rsync -az --delete "$HERE/site/" "root@$HOST:/opt/gamehall/" scp -q "$HERE/gamehall.caddy" "root@$HOST:/etc/caddy/sites/gamehall.caddy" ssh "root@$HOST" ' set -e chown -R root:caddy /opt/gamehall chmod -R g+rX /opt/gamehall # Validating as root would create the access log as root; Caddy runs as caddy and must own it. touch /var/lib/caddy/gamehall-access.log chown caddy:caddy /var/lib/caddy/gamehall-access.log caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile >/dev/null 2>&1 chown caddy:caddy /var/lib/caddy/gamehall-access.log systemctl reload caddy ' echo "published."