Skip to main content

Local development

Two ways to run Lexbox locally: everything in Kubernetes via Tilt, or infrastructure in Kubernetes with the API and/or UI running directly on your machine.

Full detail lives in the repo README; this page is the short version.

Prerequisites

  • Docker and Compose, with Kubernetes enabled in the Docker Desktop settings
  • Taskfile and Tilt on your PATH (check with tilt version)
  • Node v20+ (SvelteKit UI) and the .NET SDK (API) if you want to run either directly
  • Optionally Kustomize

OS-specific steps (hosts file entries, install commands, quirks):

Then confirm your GitHub credentials work (git ls-remote origin HEAD), and run task setup, which initializes local.env, points Git at the ignore-revs file, and downloads the FLEx seed-data repo.

Kubernetes workflow

task up

The whole app comes up at http://localhost.

Running services directly

GoalCommands
Develop the .NET APItask infra-up, then task api:only
Develop the SvelteKit UItask backend-up, then task ui:only (or task ui-dev in one console)
Develop bothtask infra-up, then task api:only and task ui:only
K8s already runningtask k8s:infra-forward (API deps) or task k8s:backend-forward (UI deps)

The UI running directly is at http://localhost:3000. The k8s-hosted UI at http://localhost is always there, but is only reliable when the whole project was started with task up.

Service URLs

URLService
http://localhostk8s ingress
http://localhost:3000SvelteKit UI
http://localhost:5158/api.NET API
http://localhost:5158/api/swaggerSwagger UI
http://localhost:5158/api/graphqlGraphQL API
http://localhost:5158/api/graphql/uiGraphQL UI
http://localhost:8088/hghgweb (append the project code and use the URL in FLEx to clone)
http://localhost:1080maildev UI
http://localhost:4810pgadmin UI (admin@test.com / pass)
http://localhost:18888Aspire dashboard (OTEL traces)

Seeded logins

The backend seeds these users when it creates the database. The password for all of them is pass.

UserRole
admin@test.comsuper admin
manager@test.comproject manager
editor@test.comproject editor
user@test.comuser with no projects

One project, Sena 3, is seeded too. It has no hg repository unless you do the optional setup in the README.