The public demo's deployment (docs/website/DEMO_MODE.md §7, §10 step 5): - deploy/demo/docker-compose.yml: the app and its database only, DEMO_MODE on, a /status healthcheck, the fixture mounted for seed:demo, MODULES read from state/modules.env so the workflow never edits the .env with secrets. - deploy/demo/.env.example: every variable the host needs, including BOT_INTERNAL_KEY (the app refuses to start in production without it) and MODULE_SOURCE_HOSTS (a fresh database's install allowlist). - deploy/demo/seed.json: the four logins, settings, two posts, a wiki page, a published "Server greeting" event on a Rust console step, the rig's server link and demo-player's Steam link; secrets as "$env:NAME". - deploy/demo/rig.mjs: plan (latest Rust bundle + newest Module-Rust on the same protocol, keeping the previous set when none matches), restore (kill, write a changed bundle, delete + unpack demo-baseline.tar.gz, start), baseline (power stop saves the world, DM22; compress, rename, start) and smoke (the site, then the rig reporting in), on the Pterodactyl client API. - .gitea/workflows/demo-wipe.yml: every 2 h on the hour UTC, on a push to deploy/demo/, and by hand; rig first, then down -v / pull / up / seed. - .gitea/workflows/demo-baseline.yml: by hand only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
80 lines
3.3 KiB
JSON
80 lines
3.3 KiB
JSON
{
|
|
"accounts": {
|
|
"demo-admin": { "role": "admin", "password": "$env:DEMO_ADMIN_PASSWORD" },
|
|
"demo-moderator": { "role": "moderator", "password": "$env:DEMO_MODERATOR_PASSWORD" },
|
|
"demo-player": { "role": "player", "password": "$env:DEMO_PLAYER_PASSWORD" },
|
|
"play-review": { "role": "admin", "password": "$env:PLAY_REVIEW_PASSWORD", "published": false }
|
|
},
|
|
"settings": {
|
|
"site_title": "Runic Gateway Demo",
|
|
"status_message": "A public demo. Look around, change things — every change is wiped every two hours."
|
|
},
|
|
"content": {
|
|
"posts": [
|
|
{
|
|
"category": "news",
|
|
"title": "Welcome to the Runic Gateway demo",
|
|
"slug": "welcome-to-the-demo",
|
|
"body": "<p>This is a live Runic Gateway site, linked to a real Rust server. Sign in with one of the logins on the sign-in page and look around: the admin panel, the moderation queue, a player's own pages.</p><p>You can change most things. A few would break the demo for the next visitor — uploads, the server link, deleting accounts — and those answer <em>This is turned off on the demo site</em>. Everything is put back every two hours.</p>"
|
|
},
|
|
{
|
|
"category": "news",
|
|
"title": "What the Rust module adds",
|
|
"slug": "what-the-rust-module-adds",
|
|
"body": "<p>The server list, the kill feed and the leaderboard come from the game as it happens. Signed in as an admin you can manage permission groups, place NPCs, edit plugin configs and build events that run on the server.</p>"
|
|
}
|
|
],
|
|
"wiki": [
|
|
{
|
|
"slug": "about-this-demo",
|
|
"title": "About this demo",
|
|
"category": "guides",
|
|
"published": true,
|
|
"body": "<h2>The logins</h2><p>The sign-in page lists them, with a button that fills the form: an admin, a moderator and a player.</p><h2>The wipe</h2><p>The site and its Rust server go back to this starting point every two hours, on the hour, UTC. The banner says when the next one is. Anyone signed in is signed out by it.</p><h2>What is turned off</h2><p>Anything that would break the demo for the next visitor: uploads, the contact form, changing the shared logins, the site mode, the server link, and console commands that would stop the server.</p>"
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"title": "Server greeting",
|
|
"summary": "Says hello in the game chat. Run it from Admin → Events.",
|
|
"timezone": "UTC",
|
|
"spec": {
|
|
"schedule": { "kind": "manual" },
|
|
"phases": [
|
|
{
|
|
"key": "main",
|
|
"label": "Greet",
|
|
"steps": [
|
|
{
|
|
"actionId": "rust.command.run",
|
|
"params": {
|
|
"server": "demo",
|
|
"commands": ["say Hello from the Runic Gateway demo site!"],
|
|
"confirm": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"publish": true
|
|
}
|
|
]
|
|
},
|
|
"modules": {
|
|
"rust": {
|
|
"servers": [
|
|
{
|
|
"id": "demo",
|
|
"name": "Demo server",
|
|
"sidecarBaseUrl": "$env:DEMO_RIG_SIDECAR_URL",
|
|
"sidecarToken": "$env:DEMO_RIG_SIDECAR_TOKEN"
|
|
}
|
|
],
|
|
"links": [
|
|
{ "username": "demo-player", "steamId": "$env:DEMO_PLAYER_STEAM_ID", "serverId": "demo" }
|
|
]
|
|
}
|
|
}
|
|
}
|