Development
Raahi has a Rust backend, a Svelte admin UI, and an Astro documentation site.
Run the backend and admin UI
Section titled “Run the backend and admin UI”Start the backend in one terminal:
just run-seedStart the UI development server in another:
just ui-devOpen http://localhost:5173. Vite forwards API, health, and event requests to the management API on port 9080.
For backend-only changes, skip the UI build:
just run-fast -- --seedRepository layout
Section titled “Repository layout”| Path | Code in that directory |
|---|---|
crates/raahi-core |
Resource types, route matching, and active configuration |
crates/raahi-store |
SQLite migrations, database queries, exports, imports, and configuration builds |
crates/raahi-proxy |
HTTP and TCP proxying, plugins, health checks, metrics, and TLS |
crates/raahi-api |
Management API, user authentication, SSO, and admin UI serving |
crates/raahi-acme |
ACME accounts, challenges, certificate issuance, and renewal |
src/main.rs |
Process startup and listener setup |
ui/ |
Svelte admin UI |
site/ |
Astro documentation |
Run checks
Section titled “Run checks”just fmt-checkjust clippy-strictjust testjust ui-checkcd site && npm run buildRun the smallest relevant check while editing. Run the complete set before a release.
Update the API contract
Section titled “Update the API contract”site/public/openapi.yaml points to docs/openapi.yaml. The interactive API reference and downloadable specification therefore use the contract checked into the repository.