The game kit: the shared infrastructure of Wiz-War and Waving Hands as a template

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up
This commit is contained in:
Eric Wagoner
2026-09-23 11:00:05 -04:00
co-authored by Claude Fable 5.1
commit 1cd24e3ddd
59 changed files with 7420 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
[Unit]
Description=__NAME__ game server
After=network.target
[Service]
Type=simple
User=__SLUG__
WorkingDirectory=/opt/__SLUG__/app/server
Environment=PORT=__PORT__
# Caddy terminates TLS; the plaintext port must not face the internet.
Environment=HOST=127.0.0.1
Environment=DATA_DIR=/var/lib/__SLUG__/rooms
# Create the Sentry project (the Sentry MCP can) and paste its DSN here; empty means no error reporting.
Environment=SENTRY_DSN=__SENTRY_DSN__
ExecStart=/opt/__SLUG__/app/server/node_modules/.bin/tsx src/index.ts
Restart=always
RestartSec=3
# Sandbox: the process reads /opt/__SLUG__ and writes only its data dir.
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/lib/__SLUG__
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictSUIDSGID=yes
# A runaway process gets killed and restarted before it can take the box down.
MemoryMax=300M
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target