If you encounter an issue, or have a feature request, please open an issue on github. If you'd like to contribute, try to see first if there's an open issue for what you'd like to work on. If not, please open one to discuss it before starting work!
Some issues will be tagged as "good first issue" for newcomers.
When submitting a pull request, please ensure that all lints & tests pass. To run linting locally, run
just lint rustjust lint tsAll tests for code in a certain language can be run with:
just test rustjust test tsjust test docker --build# Install CLI tools (macOS)
brew install just hurl
# Or install manually:
# just: https://github.com/casey/just
# hurl: https://hurl.dev/docs/installation.htmlYou'll need rust installed to develop the backend, and npm for the frontend.
We use sqlx for rust development, so
Important: Rust version 1.88 or higher is required for SQLx compatibility.
If you encounter SQLx prepare issues, verify your Rust version with rustc --version.
Run
just check
to make sure you have all prerequisites installed.
- Update the
admin_emailinconfig.yamlto your own email address instead of the default. This email will be used as the admin account for testing. - Setup a postgres database. There are just targets to help with this:
# starts a dockerized postgres instance
just db-start
# Creates two databases (dwctl, and fusillade), and writes connection strings
# into dwctl/.env and fusillade/.env. sqlx will read these files when compiling.
# The config.yaml file by default points to the dwctl database.
just db-setupRun:
cargo runin one terminal, and
npm run dev from the dashboard/ folder, in another terminal, to start the frontend.
This system has two components:
control-layer/
├── dwctl/ # Rust API server (user/group/model management)
├── dashboard/ # React/TypeScript web frontendService Documentation:
View real-time build and performance metrics for this project