* docs: Add development POC * docs: Flesh out full build/run steps * feat: Add mergeable compose file to expose port and internal periphery url * feat: Add .devcontainer and VSCode Tasks for developing Komodo * Make cargo cache persistent in devcontainer * Add deno to devcontainer * Update tasks to include TS client copy to frontend before run * Recommend extensions for used dependencies in vscode workspace All extensions recommended are included in the devcontainer. This makes it easier for users not using devcontainer to get lang support. * Update local `run` sequence for development docs
2.8 KiB
Development
Dependencies
Running Komodo from source requires either Docker, use of the included devcontainer or these dependencies installed:
- For backend (Komodo core server, periphery, API)
- For frontend (Web UI)
Docker
After making changes to the project simply 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 test-core-- builds core binaryrun test-periphery-- builds periphery binary
- Build Frontend
run 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
Docs
Use run 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.