Skip to content
Local environment

Local environment

Application

  • Node — align with CI (the repo’s workflow uses modern Node).
  • PostgreSQL — local Docker Compose is typical; run npm run db:migrate after the database is up.
npm ci
npm run db:migrate
npm run dev

On Windows, Docker health/wait scripts vary—often you start Postgres (docker compose up -d postgres), migrate, then run the dev server. For local email-free OTP, teams sometimes enable console email modes only in development; production builds should use a real mail provider.

If Postgres credentials change after a volume was initialized, you may need to reset the data volume so the cluster matches your compose file.

Documentation site (Hugo)

From site/:

hugo mod tidy
hugo server -D

Production build:

hugo --gc --minify

Output goes to site/public/ (ignored for version control—do not commit build output).

Schema changes

Database DDL must stay consistent between scripts/db-migrate.js and server/utils/state-store.ts initialization per project policy.