gamehall/ops holds the traffic counter, the visitors digest and the nightly rollup, installed by gamehall/deploy.sh; the gamehall-visitors skill reads them. The hall now sends its origin as referrer, so a game can tell who came from it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
30 lines
1.4 KiB
Bash
Executable File
30 lines
1.4 KiB
Bash
Executable File
#!/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 <host>
|
|
set -euo pipefail
|
|
HOST="${1:?usage: gamehall/deploy.sh <host>}"
|
|
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"
|
|
rsync -az "$HERE/ops/" "root@$HOST:/tmp/gamehall-ops/"
|
|
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
|
|
# The counting tools: installed on every publish so the live copies are the repo copies.
|
|
install -m 755 /tmp/gamehall-ops/gamehall-visitors.sh /usr/local/bin/gamehall-visitors.sh
|
|
install -m 755 /tmp/gamehall-ops/gamehall-rollup.sh /usr/local/bin/gamehall-rollup.sh
|
|
install -m 644 -D /tmp/gamehall-ops/traffic.py /usr/local/lib/gamehall/traffic.py
|
|
install -m 644 /tmp/gamehall-ops/gamehall.cron /etc/cron.d/gamehall
|
|
mkdir -p /var/lib/gamehall /var/log/gamehall
|
|
rm -r /tmp/gamehall-ops
|
|
'
|
|
echo "published."
|