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
- Svelte 52%
- TypeScript 45%
- CSS 2%
- HTML <1%
- JavaScript <1%