Prerequisites
Use Rust 1.99.0, Bun 1.3.5, SQLx CLI 0.8.6 and Topcoat CLI 0.11.0. Run every command below from the workspace root.
just bootstrap
just init
just install
just migrate
just build
just servejust bootstrap creates a fresh .env from the example and generates a session
secret. just init creates the app-specific oxidt_ci role and database on shared
PostgreSQL at localhost:5432. It never starts containers.
Use the shared Mailpit SMTP server at localhost:1025; read local sign-in codes at http://localhost:8025. The application listens at http://localhost:8080.
Public registration is closed. The first account bootstraps the application; subsequent users need an invitation or a configured registration allowlist.
Build and verify
just css
just test
just http-test
just releaseThe application is in crates/oxidt-app; pure domain logic lives in
crates/oxidt-core. Topcoat renders HTML on the server without a WASM client.
Production assets are bundled beside the executable. Build the root Dockerfile
with docker build -t oxidt-ci ..
Database changes
Migrations are embedded and applied at startup. They can also be applied with
just migrate. SQLx offline metadata lives in crates/oxidt-app/.sqlx.
After changing SQL, apply migrations and run just prepare.