the ultimate platform for running games of assassin

Files
README.md

assassins #

the ultimate platform for running games of assassin

Run it #

bun install
bunx wrangler d1 create assassins       # put the id in wrangler.jsonc
bun run db:migrate                      # tables, locally

cp .env.example .env                    # Google, GroupMe, and cedarengine
bun run data                            # the join -> local D1
bun run dev                             # http://localhost:5173

bun run data asks cedarengine who each player is: the directory for their room and class, harvested booklists for the sections they are in, the catalog for when and where those meet, and the campus they walk across. Everything cedarengine cannot know — who is in the group, who posted a reference photo, which of two Grace Andersons somebody is — stays in data/.

Deploying:

bun run db:migrate:remote
bun run data:remote
bun run deploy

From CI, Workers Builds needs three things set in its own settings, because it ignores the build block in wrangler.jsonc:

setting value why
Build command bun run build main does not exist until Vite has run
Deploy command bunx wrangler deploy
BUN_VERSION 1.4.0 the image ships 1.2.15, which cannot read a lockfileVersion 2 bun.lock. Bun is the one tool with no version file, so it has to be a variable

The secrets go in with wrangler secret put, not the build variables — build variables are not visible at runtime. ORIGIN is for tunnels only; leave it unset in production or every OAuth redirect will point at the wrong host.

Polar needs checkouts:write, customer_sessions:write, orders:read and customers:read on the access token, and a webhook on order.paid, order.refunded and customer.state_changed.

© 2026-present Kieran Klukas