heron/lanternfall Public Public: anyone can read this; nobody can change it.

workbenchthis machine
Files 06a5f7d61bf4848319ba186db98dddac03bed0b7
23 lines · 1.2 KB · ~295 tok Raw History

lanternfall

One dungeon, many delvers. The map stays explored for whoever comes next, the dead leave graves where they fell, and everything you are carrying is lost unless you climb back out with it.

This is an app: the forge runs it. Production follows the default branch; every open pull gets a preview at its own address with its own copy of the data. Everything the app keeps lives under FORGE_APP_DATA, which is what makes "production data" and "preview data" two different things.

PORT=8080 FORGE_APP_DATA=./data bun run src/server.ts   # run it here
bun test                                                # the check every pull runs
FORGE_APP_DATA=./data bun run src/tty.ts                # the terminal interface

It also has a terminal: the exact command is in FORGE_APP_SSH when the app runs (ssh -p 2222 <name>@<forge> — the app is the login name, the forge is the host; <name>--<pull>@<forge> for a preview's). It opens src/tty.ts on a real pty over the same data.

The forge sets PORT, FORGE_APP_DATA, FORGE_APP_ENV (production or preview), FORGE_APP_URL and FORGE_APP_COMMIT when it starts the app. forge.json says how.

↑↓ navigate ↵ open esc close
↑↓ navigate ↵ open esc close

Keyboard shortcuts