CORE / DOC / 01Local installation

Getting started

Build the database boundary first, then start the API and Console. The shortest path still keeps migration and runtime privileges separate.

Requirements

  • Go 1.25.13 or newer in the supported release line.
  • PostgreSQL 16 or newer.
  • Node.js 22.15 or newer and npm 10.

Create the database and roles

Create an empty database plus separate runtime and maintenance logins. Neither runtime role should be a superuser, database creator, role creator, or RLS bypass role.

createdb amsonia_core
createuser --login --no-superuser --no-createdb \
  --no-createrole --no-bypassrls --pwprompt amsonia_runtime
createuser --login --no-superuser --no-createdb \
  --no-createrole --no-bypassrls --pwprompt amsonia_maintenance

Run migrations as the database owner, then install the least-privileged grants using the checked-in role-provisioning script. Store binding secrets outside the repository.

Migrate, bootstrap, and start

export AMSONIA_MIGRATION_DSN='postgres://[email protected]:5432/amsonia_core?sslmode=disable'
go run ./cmd/amsonia migrate
go run ./cmd/amsonia bootstrap-admin
go run ./cmd/api

The API uses the non-superuser runtime DSN and an unpadded base64url tenant-binding secret. Do not expose either value to the Console or commit them.

Start the Console

npm --prefix web ci
VITE_API_PROXY_TARGET='http://127.0.0.1:8080' npm --prefix web run dev

Open http://127.0.0.1:3000 and sign in with the administrator created by the operator CLI.

Run the quality gates

make check

The complete command and environment reference remains in the versioned repository guide.