The kit's shared setup, its own Caddy site file and access log (the visitors, rollup and pulse read it), the gate taking a SITE override, and the host's address everywhere. The old droplet forwards to hall until the A record moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
14 lines
668 B
Bash
Executable File
14 lines
668 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# The determinism gate: fetch every production ledger and replay it with the
|
|
# LOCAL engine, comparing each room with what the server shows. A ledger the
|
|
# new engine replays differently would rewrite a duel in progress when the
|
|
# server restarts, so this runs before every deploy.
|
|
# deploy/verify-ledgers.sh <droplet-ip-or-host> [https://site]
|
|
set -euo pipefail
|
|
HOST="${1:?usage: verify-ledgers.sh <droplet-ip-or-host> [https://site]}"
|
|
SITE="${2:-${SITE:-https://hands.kestrelsnest.social}}"
|
|
DIR="$(mktemp -d)"
|
|
trap 'rm -rf "$DIR"' EXIT
|
|
rsync -az "root@$HOST:/var/lib/waving-hands/rooms/" "$DIR/"
|
|
npx tsx deploy/replay-ledgers.ts "$DIR" "$SITE"
|