Wiz-War lives on the shared hall host: its scripts, skills and docs name it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
56ea593e07
commit
397c68a1c8
+6
-4
@@ -7,16 +7,18 @@ survive deploys and reboots.
|
||||
|
||||
## Current production
|
||||
|
||||
- Droplet: `wizwar` (nyc3, s-1vcpu-1gb, tag `wizwar`), IP 104.236.96.198
|
||||
- Host: `hall` (nyc3, tag `kestrels-hall`), IP 159.203.115.252, shared with
|
||||
the other games of Kestrel's Hall since 2026-09-29; Wiz-War keeps its own
|
||||
service user, port 8787, site file and access log there.
|
||||
- URLs: https://wizwar.kestrelsnest.social
|
||||
and https://wizwar.104.236.96.198.sslip.io (always works, zero DNS).
|
||||
and https://wizwar.159.203.115.252.sslip.io (always works, zero DNS).
|
||||
Caddy serves both; NOTE: kestrelsnest.social's authoritative DNS is at
|
||||
HOVER (ns1/ns2.hover.com), not DigitalOcean — records must be added there.
|
||||
A matching record also sits in the DO zone in case nameservers ever move.
|
||||
|
||||
## Everyday deploys
|
||||
|
||||
deploy/deploy.sh 104.236.96.198
|
||||
deploy/deploy.sh 159.203.115.252
|
||||
|
||||
Builds the client locally, rsyncs the repo (minus node_modules, data/, .git,
|
||||
research), installs dependencies on the droplet, and restarts the service.
|
||||
@@ -25,7 +27,7 @@ automatically.
|
||||
|
||||
Before any deploy that touches the engine, run the determinism gate:
|
||||
|
||||
deploy/verify-ledgers.sh 104.236.96.198
|
||||
deploy/verify-ledgers.sh 159.203.115.252
|
||||
|
||||
It fetches every production ledger and strictly replays it against the local
|
||||
engine; a single refused command fails the check. A room whose ledger no
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# to a local folder, and write a digest beside them for reading.
|
||||
# deploy/pull-feedback.sh [host] [folder] (default ~/Desktop/wizwar-reports)
|
||||
set -euo pipefail
|
||||
HOST="${1:-104.236.96.198}"
|
||||
HOST="${1:-159.203.115.252}"
|
||||
OUT="${2:-$HOME/Desktop/wizwar-reports}"
|
||||
mkdir -p "$OUT/images"
|
||||
scp -q "root@$HOST:/var/lib/wizwar/feedback.jsonl" "$OUT/feedback.jsonl"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# replay it against the LOCAL engine. Any refused command is a hard failure.
|
||||
# Run from the repo root before deploying any engine change.
|
||||
set -euo pipefail
|
||||
HOST="${1:-104.236.96.198}"
|
||||
HOST="${1:-159.203.115.252}"
|
||||
TMP=$(mktemp -d)
|
||||
trap 'rm -rf "$TMP"' EXIT
|
||||
scp -q "root@$HOST:/var/lib/wizwar/rooms/*.jsonl" "$TMP/"
|
||||
|
||||
@@ -74,7 +74,7 @@ for f in sorted(glob.glob("/var/lib/caddy/wizwar-access*.log*")):
|
||||
ref = " ".join(h.get("Referer", [""]))
|
||||
m = re.match(r"https?://([^/]+)", ref)
|
||||
host = m.group(1) if m else ""
|
||||
ours = host.endswith("kestrelsnest.social") or "104.236.96.198" in host
|
||||
ours = host.endswith("kestrelsnest.social") or "159.203.115.252" in host
|
||||
# Scanners forge referrers on paths like /.env, and the app answers
|
||||
# unknown paths with the page itself, so the status cannot tell a
|
||||
# probe from a reader. Only the pages count.
|
||||
|
||||
Reference in New Issue
Block a user