Being Human — Internal Docs

Getting Started

Clone to running in two minutes

Prerequisites

  • Node ≥ 20, pnpm 9 (corepack enable handles it)
  • Nothing else. No Postgres, no Docker.

Run everything

pnpm install
pnpm dev          # turbo runs all apps

Or run one app: pnpm dev --filter=api.

Environment

Local dev needs no env vars — sane defaults and an embedded database cover everything. To override, copy the example:

cp apps/api/.env.example apps/api/.env
VariableRequiredPurpose
PORTno (3001)API port
DATABASE_URLprod onlyReal Postgres; unset = embedded PGlite in .data/pglite
BETTER_AUTH_SECRETprod onlySession signing — openssl rand -base64 32
BETTER_AUTH_URLnoPublic URL of the API
CORS_ORIGINSnoComma-separated allowed origins
DISCORD_WEBHOOK_URLnoEvent feed → Discord (setup)
DISCORD_BOT_TOKEN, DISCORD_GUILD_IDnoOnly for pnpm discord:setup
STEAM_WEB_API_KEY, STEAM_APP_IDnoAchievement mirroring (setup)

Day-to-day commands

pnpm test                        # all tests (in-memory Postgres, fast)
pnpm turbo run check-types lint  # static gates
pnpm --filter api db:generate    # regenerate migrations after schema edits
pnpm --filter api discord:setup  # build out the Discord server

The game repo

The actual game lives at dougwithseismic/thisisbeinghuman-rust (locally ../Factorio-2 — Rust workspace: simrendergame → native/web shells). Its own CLAUDE.md and docs/ drive that work — nothing in this repo builds the game.

On this page