diff --git a/README.md b/README.md index 89493ca..3cd1f5e 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,44 @@ Festival drink-sale tracker. See [PLAN.md](PLAN.md) for architecture, [NOTES.md](NOTES.md) for the original requirements, and [TODO.md](TODO.md) for deferred work. -## Dev +## Toolchain setup + +Requires Node.js 20+ and pnpm 9+. Native SQLite bindings install from prebuilt +binaries on x86_64 / arm64 — no compiler needed for most setups. + +### Nix (Linux / macOS) ```sh nix develop # node 20, pnpm, sqlite, build deps +``` + +### Debian / Ubuntu + +```sh +# Node 20 from NodeSource +curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - +sudo apt install -y nodejs +sudo corepack enable # provides pnpm + +# Only needed if a prebuilt better-sqlite3 binary is unavailable for your arch +sudo apt install -y build-essential python3 +``` + +### Windows + +Install Node.js 20 LTS via the official MSI from (this +also installs the optional "Tools for Native Modules"). Then in PowerShell: + +```powershell +corepack enable # provides pnpm +``` + +Use PowerShell to set env vars on the same line, e.g. +`$env:ADMIN_PASSWORD="changeme"; pnpm dev:server`. + +## Dev + +```sh pnpm install ADMIN_PASSWORD=changeme pnpm dev:server # http://localhost:3000 pnpm dev:client # http://localhost:5173 (proxies /api, /admin)