Files
komodo/docsite/docs/ecosystem/development.md
Maxwell Becker 96c4ae9fc5 2.0.0 UI (#1220)
* new ui using mantine

* resources page

* prog on resource page

* resources and resource layouts

* confirm button and modal

* tweaks

* update details

* topbar updates

* add skeletons for resource implementations

* add resource tables

* add tags to recents cards

* resource page table scrolling

* table component + tags filter

* export toml

* New Resource button

* Fix update details capture closing

* tweaks

* omni search

* refine config

* config tweaks

* implement more configs / resource selector

* add profile page

* provider / account selectors

* container table page

* build config

* deployment config

* fix deployment build version selector

* fix secrets selector

* resource sync config

* mobile topbar and updates

* update details fz sm

* stack config

* terminals page

* create terminal in prog

* create terminal menu

* finish create terminal menu

* terminal pages working

* stack tabs / info

* add executions

* add server header info

* confirm pubkey modal

* improve resource header styling

* FileSource component

* stack service table, move icons.ts

* basic procedure config

* tweak procedure config

* container / image pages

* network / volume pages

* clean up docker resource pages

*  basic log / terminal ui

* reusable log section

* styling

* clean up resource components

* delete in resource header

* log auto select stderr

* fix some bgs

* stack logs with service selector

* stack terminals

* add deployment executions

* use correct icon

* useResource hooks

* build info

* build info

* tweaks

* server tabs

* fix terminal section target

* prog on server tabs

* server stats

* light theme

* start on historical stats

* stack service page

* resource sync tabs

* sync tabs

* more topbar icons

* add settings basic

* add topbar alerts

* tweak stream selector behavior

* tweak alert icon topbar

* improve styling smaller screen

* schedules page and other progress

* onboarding keys

* improve schedule page descriptions

* improve update notifications

* schedule timezone selector

* tag color selector

* finish settings / providers

* use shared-text-update component so settings tables aren't janky

* updates page

* refine updates page

* alert page

* standardize borders

* theme and swarm

* swarm tabs

* swarm node page

* swarm config page

* swarm pages

* swarm task and secret pages

* swarm stack page

* fix stack log service selector in swarm mode

* standard inspect section

* swarm inspect tab

* server and swarm resources tab

* add disable confirm dialog (modal) option for executions

* stack update available indicator

* deployment update available

* add template switch to resource headers

* ResourceHeader + rename

* set editing name onclick

* repo tabs

* server stats table

* refine a bit

* refine deployment / stack header info

* show server stats dashboard. dashboard tables

* action last run in config

* SettingsUsers page

* user page etc

* manage api key

* user base permissions

* color the table multi select

* user group page

* UserAddUserGroup

* active includes deployments / stacks

* improve small screen view

* fix docker pages execution showing

* clean up

* rename frontend to UI

* align profile page styling

* config maintenance windows

* finish maintenance windows

* builder config

* add batch execute dropdown / confirm menu

* batch execute styling

* deploy 2.0.0-dev-117

* improve stats card light theme

* add update page

* improve mobile

* terminal group nowrap

* mobile improvements

* allow unused again

* improve mobile font sizing

* improve mobile updates / alerts

* mobile tabs

* alert page

* add server version mismatch color

* new resource, clearable selector

* Fix build show info tab

* copy resources

* keyboard shortcuts

* server resource header version mismatch

* fix type errors

* container page server multi select

* confirm button clear timeout

* hash compare force uses first 8 for short hash

* fix log height

* copy webhooks

* responsive tweaks

* add icons to server stat sections

* add historical server stats charts

* server stat current card shows usage numbers

* refine current stats more

* fix shortcuts interfering with monaco brave

* clean up unused

* remove v1 frontend
2026-02-25 15:28:23 -08:00

3.1 KiB

Development

If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.

Dependencies

Running Komodo from source requires either Docker (and can use the included devcontainer), or can have the development dependencies installed locally:

  • Backend (Core / Periphery APIs)
    • Rust stable via rustup installer
    • MongoDB or FerretDB available locally.
    • On Debian/Ubuntu: apt install build-essential pkg-config libssl-dev required to build the rust source.
  • Web UI
    • Node >= 18.18 + NPM
      • Yarn - (Tip: use corepack enable after installing node to use yarn)
    • typeshare
    • Deno >= 2.0.2

runnables-cli

mbecker20/runnables-cli can be used as a convience CLI for running common project tasks 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 v1.3.7+.

Docker

After making changes to the project, run run dev-compose-build to rebuild Komodo and then run dev-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 dev-compose-build and dev-compose-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 provided for building and running Komodo.

After opening the repository with the devcontainer run the task Init to build the ui/backend. Then, the task Run Komodo can be used to run ui/backend. Other tasks for rebuilding/running just one component of the stack (Core API, Periphery API, UI) are also provided.

Local

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 dev-core -- Build and run Core API
    • run dev-periphery -- Build and run Periphery API
  • Build UI
    • Install typeshare-cli: cargo install typeshare-cli
    • Run this once -- run link-client -- generates TS client and links to the ui
    • After running the above once:
      • run gen-client -- Rebuild client
      • run dev-ui -- Start in dev (watch) mode
      • run build-ui -- Typecheck and build

Docsite Development

Use run dev-docsite to start the Docusaurus Komodo docs site in development mode. Changes made to files in ./docsite will be automatically reloaded by the server.