Development
Dependencies
Running Komodo from source requires either Docker (and can use the included devcontainer), or can have the development dependencies installed locally:
- For backend (Komodo core server, periphery, API)
- Rust stable via rustup installer
- MongoDB or FerretDB available locally.
- On Debian:
apt install build-essential pkg-config libssl-devrequired to build the rust source.
- For frontend (Web UI)
Docker
After making changes to the project, run run test-compose-build to rebuild Komodo and then run test-compose-exposed to start a Komodo container with the UI accessible at localhost:9120. Any changes made to source files will require re-running the build and exposed commands.
Devcontainer
Use the included .devcontainer.json with VSCode or other compatible IDE to stand-up a full environment, including database, with one click.
VSCode Tasks are provded for building and running Komodo.
After opening the repository with the devcontainer run the task Init to build the frontend/backend. Then, the task Run Komodo can be used to run frontend/backend. Other tasks for rebuilding/running only parts of the application are also provided.
Local
runnables-cli can be used as a convience for running common project tasks (like a Makefile) found in runfile.toml. Otherwise, you can create your own project tasks by references the cmds found in runfile.toml. All instructions below will use runnables-cli.
To run a full Komodo instance from a non-container environment run commands in this order:
- Ensure dependencies are up to date
rustup update-- ensure rust toolchain is up to date
- Build and Run backend
run -r test-core-- builds core binaryrun -r test-periphery-- builds periphery binary
- Build Frontend
run -r gen-client-- generates TS client and adds to the frontend- Prepare API Client
cd client/core/ts && yarn && yarn build && yarn link- After running once client can be rebuilt with
run build-ts-client
- After running once client can be rebuilt with
- Prepare Frontend
cd frontend && yarn link komodo_client && yarn install- After running once client can be built with
run build-frontendor started in dev (watch) mode withrun start-frontend
- After running once client can be built with
Docsite Development
Use run -r docsite-start to start the Docusaurus Komodo docs site in development mode. Changes made to files in /docsite will be automatically reloaded by the server.