Skip to content

About

Server supporting our games of Blood On The Clocktower!

Resources

Stars

0 stars

Watchers

2 watching

Forks

Repository files navigation

Death's Door

A tool to increase the production value when we host games of Blood on the Clocktower.

The backend (Rust + axum) manages game state with event sourcing, provides a soundboard, controls DMX lighting, and pushes live updates via SSE and APNS.

The frontend (React + Vite) is a streaming overlay projected on a wall — countdown timer, player list, and vote threshold — designed to replace OBS scenes.

An iOS app (maintained separately) serves as the storyteller's primary remote control interface.

Quick Start

# Backend
cd backend
make run         # or: make sample (loads a pre-built test game)

# Frontend (dev mode with hot reload)
cd frontend
npm install
npm run dev      # http://localhost:5173/overlay

# Build frontend into the backend for single-server mode
make build       # then: make run serves everything on :8000

Running a Game

  1. Start the backend: make run (or make sample for a test game)
  2. Start the frontend: cd frontend && npm run dev
  3. Project http://localhost:5173/overlay on the wall
  4. Control the game from the iOS app
  5. Players visit http://localhost:8000/reveal on their phones to see their roles

Requirements

  • Rust (stable, 1.94+) — install via rustup
  • Node.js 25+ (managed by mise)
  • Font Help Me (optional — falls back to Impact)
  • Optional: DMX USB interface for lighting effects

About

Server supporting our games of Blood On The Clocktower!

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages