No description
Find a file
2026-05-19 18:29:12 +02:00
client admin: drag-and-drop drink reordering per bar 2026-05-19 18:22:49 +02:00
server admin: add and rename bars 2026-05-19 18:18:10 +02:00
shared scaffold festival drink tracker (pnpm workspace, Fastify + SQLite, Preact tablet UI, admin) 2026-05-19 18:12:01 +02:00
.gitignore gitignore: drop local claude settings 2026-05-19 18:23:03 +02:00
flake.lock tablet: fit grid and cart on screen, no scrolling 2026-05-19 18:14:14 +02:00
flake.nix scaffold festival drink tracker (pnpm workspace, Fastify + SQLite, Preact tablet UI, admin) 2026-05-19 18:12:01 +02:00
NOTES.md initial reqs 2026-05-19 17:37:51 +02:00
package.json scaffold festival drink tracker (pnpm workspace, Fastify + SQLite, Preact tablet UI, admin) 2026-05-19 18:12:01 +02:00
PLAN.md scaffold festival drink tracker (pnpm workspace, Fastify + SQLite, Preact tablet UI, admin) 2026-05-19 18:12:01 +02:00
pnpm-lock.yaml scaffold festival drink tracker (pnpm workspace, Fastify + SQLite, Preact tablet UI, admin) 2026-05-19 18:12:01 +02:00
pnpm-workspace.yaml scaffold festival drink tracker (pnpm workspace, Fastify + SQLite, Preact tablet UI, admin) 2026-05-19 18:12:01 +02:00
README.md readme: add debian/ubuntu and windows setup 2026-05-19 18:29:12 +02:00
TODO.md todo: note many-drinks tablet layout case 2026-05-19 18:23:49 +02:00
tsconfig.base.json scaffold festival drink tracker (pnpm workspace, Fastify + SQLite, Preact tablet UI, admin) 2026-05-19 18:12:01 +02:00

wutzcalc

Festival drink-sale tracker. See PLAN.md for architecture, NOTES.md for the original requirements, and TODO.md for deferred work.

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)

nix develop          # node 20, pnpm, sqlite, build deps

Debian / Ubuntu

# 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 https://nodejs.org (this also installs the optional "Tools for Native Modules"). Then in 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

pnpm install
ADMIN_PASSWORD=changeme pnpm dev:server   # http://localhost:3000
pnpm dev:client                            # http://localhost:5173 (proxies /api, /admin)

Open http://localhost:5173/ for the tablet UI and http://localhost:5173/admin.html for the backoffice.

Production build

pnpm install
pnpm build
ADMIN_PASSWORD=... DB_PATH=/var/lib/wutzcalc/wutz.db node server/dist/index.js

Single Node process serves the API, both client entries (/ tablet, /admin backoffice), and writes to one SQLite file.

Env vars

  • PORT (default 3000)
  • HOST (default 0.0.0.0)
  • DB_PATH (default ./wutz.db)
  • ADMIN_PASSWORD (required for backoffice login)