on-demand control plane

Start the server from Discord. Play. Put it back to sleep.

Reveille turns a self-hosted game server on and off with two slash commands — from any device, with nothing to install but a bot. A human decides when; that's the whole policy.

Try the dashboard → See the flow

— reveille · the bugle call that wakes the troops

~3s
to joinable · empty world
2
commands · /start /stop
0
auth — by design
1
open port, ever
The whole experience

Two commands. No terminal, no admin console.

Either player types /start palworld from a phone and joins moments later. When they're done, /stop palworld saves the world and shuts it down.

  • A stop never loses the world. If the save can't complete, the server stays up and says so — it will not force-kill to satisfy a stop.
  • Honest reporting. "Started" means the launch call didn't error — never a claim the server stayed up.
  • Never stops on its own. Every shutdown is a human command. No timers, no presence tracking.
# palworld-crew private · trusted
K
Kayla today · 21:04
/start palworld
reveille bot
reveille APP today · 21:04
Starting the server. Launch issued without error — give it a moment, then join.
That means launched, not verified. If it died on startup you will find out by failing to join.
J
Jonah today · 21:04
/stop palworld
reveille bot
reveille APP
A start is in progress — try again in a moment. The launching process is left untouched.
Three components

Each welded to something.

Ask "what is it welded to?" and every placement question answers itself. The orchestrator is the only component that ever relocates; actuators multiply instead. They talk over a network API — always, even while sharing a box.

×1 · exactly one

Orchestrator

Decides when. Takes the Discord command, serializes it to one clean winner, and asks the host.

welded to → nothing
runs → wherever is always-on
1 per server

Agent

Knows how. Spawns and gracefully stops the game process; owns the save-before-exit guarantee.

welded to → a game server process
runs → on that server's machine
1 per LAN

Emitter

Wakes sleeping machines. Deferred today, but the seat is already drawn so it needs no rewrite later.

welded to → a network
runs → anywhere on it
growth →

More rows, never new kinds. A second game is an agent; a second machine is an agent plus a MAC address; a second network is an emitter. If adding a capability needs a new kind of thing rather than a new row, something was drawn wrong.

Interactive demo

The same two commands, as a panel.

A simulation running entirely in your browser — nothing is connected to a real host. Try it anyway: the refusals below are the real spec (FR-008, FR-017, SC-002).

Palworld dedicated
host · watson
STOPPED
Uptime
Connected players
not tracked — by design
agent bound to 127.0.0.1 · 1 inbound port · 0 auth
agent.log — tail -f