Run the whole stack yourself.

ShatteredArchive is a Docker Compose stack of small, independent services for MUD players and builders — a scriptable web client, an area builder, a map and data browser, a single sign-on hub and a few tools that grew out of the same workshop. Every service below is running live so you can see what you get before you clone anything.

Live demos

Public instances of the services in deploy/docker-compose.yml and deploy/docker-compose.shattered-archive-experimental.yml. They are shared, so treat anything you create as disposable — the point is to show what a self-hosted deployment looks like, not to be durable storage.

Game Client

Live

A browser MUD client with plugins, triggers and user-authored scripts running in an embedded Lua and Python interpreter.

game-client.shatteredarchive.dev

Web Client

Live

Map and world-data browser for the archive — continents, areas and the reference data behind them.

web-client.shatteredarchive.dev

Scrum Poker

Live

Planning poker with no accounts at all — create a room, share the link, estimate. The room URL is the only membership there is.

scrum-poker.shatteredarchive.dev

Auth Hub

Live

The single sign-on hub the other services authenticate against: accounts, API keys, device-bound credentials and SSO.

auth.shatteredarchive.dev

Soulsteel

Live

A Herald's dashboard for The Umbral Cloak and the Soulsteel Dagger — track players, roles, nightly actions and eliminations for this social-deduction rite. No accounts, everything stays in your browser.

soulsteel.shatteredarchive.dev

MUD Builder

Live

Full area authoring for a Merc-derived MUD — rooms, mobs, objects, resets, scripts and generated area maps, with hot reload into a running game. Free to browse; sign in at trusted tier or above to edit.

build.shatteredarchive.dev

Simulacrum

Live

The near-stock ROM 2.4 world that MUD Builder edits, reachable only by a signed-in trusted+ account — sign in at the Auth Hub and request access rather than connecting anonymously.

simulacrum.shatteredarchive.dev

Kingdom Tactics

Coming soon

A turn-based tactics game built on the archive's class, skill and alignment data — online matches and local hotseat share one engine.

kingdom-tactics.shatteredarchive.dev

Self-hosting setup

The stack addresses its services by hostname rather than by port, so a local deployment needs those names pointing at your own machine before Docker will resolve them. This is a one-time step.

1. Map the development domains to localhost

Windows (Administrator PowerShell):

pnpm setup:hosts:win

macOS / Linux:

sudo pnpm setup:hosts:nix

This writes entries pointing the following names at 127.0.0.1:

  • shatteredarchive.dev
  • game-client.shatteredarchive.dev
  • game-server.shatteredarchive.dev
  • web-client.shatteredarchive.dev
  • web-server.shatteredarchive.dev
  • build.shatteredarchive.dev
  • auth.shatteredarchive.dev
  • kingdom-tactics.shatteredarchive.dev
  • scrum-poker.shatteredarchive.dev
  • soulsteel.shatteredarchive.dev
  • simulacrum.shatteredarchive.dev

2. Bring the stack up

From deploy/. The default compose file runs the published services; the experimental one adds MUD Builder, Kingdom Tactics, and Simulacrum. Simulacrum's own container also ships in the default file, but it needs MUD Builder's shared role store to grant anyone access, so it only works when run via the experimental stack.

docker compose -f docker-compose.yml up -d

3. Open the client

Browse to http://game-client.shatteredarchive.dev. If you land back on this page instead, the host entries from step 1 have not taken effect — restart Docker and reload.

Seeing this page on a subdomain you expected an app on? That is the symptom of an incomplete step 1: the name resolved to this edge rather than to your local Docker network.

Documentation