Skip to content

Local development

xNifty edited this page Oct 11, 2026 · 3 revisions

Vue hot reload

Terminal 1: API (Redis required; API must be enabled):

ORDRYN_MODE=full go run .

Terminal 2: Vite (proxies /api → :8080):

npm run dev:web

Open http://localhost:5173/

From web/: npm ci && npm run dev. Production build: npm run build:web (output web/dist/). Details: web/README.md.

Tests

No .env file is required for tests; a test session key is used automatically under go test.

go test ./...     # Go (domain tests start an embedded PostgreSQL)
npm test            # Vue unit tests (node:test)
make test           # both

npm run build:web also type-checks the SPA (vue-tsc) before the Vite build.

OpenAPI coverage (every registered /api/v2 route must appear in openapi.yaml):

go test ./internal/server/ -run 'TestOpenAPI|TestServerAPIV1' -count=1

CI runs Go tests and builds the SPA on pushes and PRs (.github/workflows/go-test.yml, build-assets.yml). release_web_dist.yml attaches the web-dist zip to releases.

Extensions while developing

Clone Ordryn-Extensions and copy (or symlink) the folders you need into data/extensions/, which is gitignored. Edit a manifest, then click Reload Extensions in Admin; no restart needed. Test copies used by go test live in internal/extensions/testdata/extensions. Keep them in sync with the extensions repo when you change events or templates.

Building locally

make run and make build stamp version.Version from git describe --tags --abbrev=0. Plain go run . / go build without -ldflags do not. Production binaries copied out of the git tree: Building-the-server.

Releasing

The git tag is the version; nothing in source is bumped.

  1. Merge the intended changes to main.
  2. Publish a GitHub Release named vX.Y.Z targeting main (creates the tag). That is enough; CI stamps server binaries and attaches web-dist.
  3. Hosts that git pull then rebuild must fetch tags and stamp -ldflags if the binary is stored outside the checkout. See Building-the-server.

Do not move or reuse published version tags. Bump openapi.yaml info.version only for large or breaking API contract changes.

Clone this wiki locally