Files
komodo/bin/cli
Maxwell Becker 8708f0f600 2.3.0 (#1520)
* dockerfile builds use latest rust 1.96.0

* bump rust and js dependencies

* deploy 2.3.0-dev-1

* omnisearch clear on close option (default true), fix omnisearch border radius cutting off search input

* fix resource description responsive overflow in some screen size

* kill process group

* Start wiring through shell timeout / external cancel options

* deploy 2.3.0-dev-2

* implement CommandOptions (timeout / cancel ability) throughout shell usage

* Add timeouts to read child commands

* deploy 2.3.0-dev-3

* remove periphery custom_timeout option, it doesn't function as timeout as expected

* customize command timeouts

* Ensure git is installed for clear error message

* deploy 2.3.0-dev-4

* deploy 2.3.0-dev-5

* deploy 2.3.0-dev-6

* swarm completed in roadmap

* unnecessary line

* Komodo v2 march 2026

* remove debub container ports logs

* remove log view console log

* Fix deployment tabs disappear

* align other resource store tab per resource id

* disable terminal tab when attached to swarm

* List All Docker Containers supports wildcard container name matching

* improve container pagination situation

* deploy 2.3.0-dev-7

* fix container data table search slowness

* deploy 2.3.0-dev-8

* ListAllStackServices, add stack services to omni search, All containers filter by tags (based on server)

* deploy 2.3.0-dev-9

* service icon correct size

* list all containers / services support filtering by state

* get latest image digest timeout 10s

* deploy 2.3.0-dev-10

* send keepalive pings on user websockets to survive idle proxy timeouts (#1486)

* bump mantine and other UI deps

* deploy 2.3.0-dev-11

* fix containers page server filter

* show server config always if no swarms exist

* DeleteTerminal: fix incoming stack / deployment names to ids internally

* single builder distribute to multiple specified servers

* deploy 2.3.0-dev-12

* fix server type builder config comment

* fix builder toml server_ids => server/s

* sync: fix alerter resources / except_resources using ids instead of names

* fix multi server builder resource page header

* deploy 2.3.0-dev-13

* fix builder resource header with multiple servers styling

* run dkf -> dku

* white background favicon + gen resources schema

* feat: break out cache/buffers and ZFS ARC from used memory (#1489)

* deploy 2.3.0-dev-14

* onmisearch improve finding containers / services

* refine service / container search

* deploy 2.3.0-dev-15

* deploy 2.3.0-dev-16

* bump mogh auth server, remove authors from cargo toml in line with newer spec

* deploy 2.3.0-dev-17

* improve selection of available building server, works when multiple builds sent simultaneously

* deploy 2.3.0-dev-18

* show stack services even when down

* improve stack services view when down

* deploy 2.3.0-dev-19

* mogh ui 0.7.0 including login page back button if already logged in

* deploy 2.3.0-dev-20

* fix containers pagination boundary

* fix update permissions on swarm

* deploy 2.3.0-dev-21

* skip alerting check on initial server cache refresh after startup

* deploy 2.3.0-dev-22

* Fix build - deployment flow when build doesn't publish semver image tags

* move check button to left of update available button

* omnisearch containers only fetch when query types

* Add cancel procedure / action apis

* add procedure / action cancel buttons

* deploy 2.3.0-dev-23

* Execution error

* useIsCancelling hook for better state conveyance

* fmt mem module

* allow all builders build to cancel during build

* deploy 2.3.0-dev-24

* bump rust to 1.96.1

* tweak ui index.html

* build webhook cancel build before triggering another - better behavior for back-to-back pushes

* deploy 2.3.0-dev-25

* De-vendor container apis from Docker

* deploy 2.3.0-dev-26

* startup support for pagination

* implement limit / page on the list routes

* swarm pagination and add swarm read support to cli

* use Option for limit

* resource selector and omni search using pagination / search

* deploy 2.3.0-dev-27

* update available disable action state polling in small

* resources page support pagination

* fix Image bug, improve resources page debounce

* fix omni missing !

* procedure failure update log provides link to view failed update

* fix omni search link ids with brute force query

* improve command error message formatting

* fix dashboard query for right resources

* attach linked resource names in addition to ids for efficient usage with pagination

* fix pagination bugs and improve pagination efficiency

* some brute force pagination fixes still with limit: 0

* deploy 2.3.0-dev-28

* replace limit: 0 server query with proper search based multi selector

* list api support filtering by state, use with dashboard active table

* Fix state filter pagination and create terminal limit: 0 queries

* deploy 2.3.0-dev-29

* deployment / stack filter by swarm id

* deploy 2.3.0-dev-30

* improve database query efficiency on large resource sets

* fix ListFull not filtering by query states

* fix the list permits respect resource.base_permission

* use saturating mul in skip computations

* Fix list all containers / stack services - tags query, terms case insensitive

* deploy 2.3.0-dev-31

* api based list resource sorting which works with pagination

* ui implement server side table sort

* fix cli usage

* deploy 2.3.0-dev-32

* ensure required refetch intervals are still passed for data freshness

* omni search services before containers

* add Deployment custom_name configuration to set specific container name

* GetResourceMatchingContainer fix empty container passed check

* validate conatiner / docker compatible names protect against injection

* track deployment deployed name for smooth swarm service renaming behavior

* deploy 2.3.0-dev-33

* batch executions support filtering by tag

* fix clippy lint

* improve tag multi selector matching resource sync config

* deploy 2.3.0-dev-34

* fix containers page networks / volumes wrapping

* use enum cmp for sorting by state

* container page uses api based sort

* move list stack methods

* deploy 2.3.0-dev-35

* stack / deployment state sorting prefers update available shown first

* ensure name is always fallback sort

* deploy 2.3.0-dev-36

* fix Source sorting for stacks, builds, syncs

* deploy 2.3.0-dev-37

* keepPreviousData method to prevent lots of loading flashes

* omni search tweaks / fixes

* fix clear on close

* paginated schedules

* for efficient schedule sort

* paginated terminals

* fix terminals cli

* fix clippy lint

* deploy 2.3.0-dev-38

* configurable default pagination, including 0 (no pagination)

* deploy 2.3.0-dev-39

* omnisearch use keepPreviousData

* Fix omni search auto highlight first item

* drop resource action guard / reset action state before pushing updates to clients for requery

* deploy 2.3.0-dev-40

* builder instance type use divided children

* default pagination limit 50

* UI: useDebouncedTermSearch hook

* stats page

* deploy 2.3.0-dev-41

* page description tweak

* dashboard tables show template query mode

* fix stats page legend over tooltip

* setup-periphery.py: add "--core-public-keys" command line argument (#1524)

* only log core public keys if provided

* fix terminal execute echo colliding with output sentinels (#1522)

Build the execute command as a single physical line so the PTY's local
echo cannot reproduce a bare sentinel line before the real output. The
`printf` format strings now use literal `\n` escapes (which printf
expands) instead of embedded newline bytes, keeping the emitted output
byte-identical while making the echoed command one line.

Closes #1289


Claude-Session: https://claude.ai/code/session_01M1ZTEJFKv3BAW36VmBwe2v

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* deploy 2.3.0-dev-42

* nowrap on server stats containers table

* improve Resources tabs with pagination support and multi select executions

* allow simultaneous server container execs

* Container page batch executions

* use controlled selection state for resources for proper clearing selection state after delete

* deploy 2.3.0-dev-43

* server docker resources multi select

* server docker tabs move execute button

* fix: log webhook branch-mismatch skips at debug instead of warn (#1528)

Git providers send push webhooks for every branch and Komodo filters
them server side (docs: Automate > Webhooks > Branch Filtering), so a
push to a non-matching branch is routine operation, not a failure. It
was surfaced through the generic 'Failed at running webhook' warn,
indistinguishable from genuine failures, and a repo with active bot
branches (e.g. Renovate) produces hundreds of these warns per day.

Rename ExtractBranch::verify_branch to branch_matches, returning
Ok(false) on a mismatch (logged at debug) so handlers skip quietly,
matching the existing silent webhook_enabled=false skip. Branch
EXTRACTION failures (e.g. a ref-less payload on a named-branch
listener) still return Err and reach the warn, preserving the
misconfiguration signal.

* fix: parse compose config before sanitizing so secret replacers cannot corrupt service detection (#1529)

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Maxwell Becker <49575486+mbecker20@users.noreply.github.com>

* clean up fix compose parse / sanitize ordering

* deploy 2.3.0-dev-44

* user permissioning fix search

* Fix GetHistoricalServerStats pagination

* server stats list (avoiding lots of queries) and server side sorting by stats (cpu, mem, disk)

* fix clippy lint

* deploy 2.3.0-dev-45

* fix ui build after monaco bump

* load average chart first in stats

* Fix deployment build version selector

* remove build version console log

* provide logical core count, update load to reflect

* deploy 2.3.0-dev-46

* add basic reporting functionality

* Add / fix shell escaping for periphery commands

* safe stdin token and prevent args passed through resource names on shell

* deploy 2.3.0-dev-47

* Delete only batch executions just use delete button

* add New / batch executions to dashboard tables

* rust 1.97.1

* deploy 2.3.0-dev-48

* default key reporting.key

* default reporting.key

* redeploy on build for all running unhealthy states (rebuild to fix eg restarting issue)

* resource updates query memo missing buildId in deps

* deploy 2.3.0-dev-49

* Fix reporting signature

* deploy 2.3.0-dev-50

---------

Co-authored-by: Remco Jongschaap <hey@dougley.com>
Co-authored-by: ChanningHe <52875777+ChanningHe@users.noreply.github.com>
Co-authored-by: Amos Shapira <amos.shapira@gmail.com>
Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Christopher Plieger <917744+cplieger@users.noreply.github.com>
2026-07-29 15:08:28 -07:00
..
2025-08-17 17:25:45 -07:00
2026-07-29 15:08:28 -07:00
2026-07-29 15:08:28 -07:00
2026-07-29 15:08:28 -07:00
2026-05-07 11:19:55 -07:00
2024-09-04 16:48:27 +03:00
2025-08-17 17:25:45 -07:00
2026-03-24 05:50:10 -07:00

Komodo CLI

Komodo CLI is a tool to execute actions on your Komodo instance from shell scripts.

Install

cargo install komodo_cli

Note: On Ubuntu, also requires apt install build-essential pkg-config libssl-dev.

Usage

Credentials

Configure a file ~/.config/komodo/creds.toml file with contents:

url = "https://your.komodo.address"
key = "YOUR-API-KEY"
secret = "YOUR-API-SECRET"

Note. You can specify a different creds file by using --creds ./other/path.toml. You can also bypass using any file and pass the information using --url, --key, --secret:

komodo --url "https://your.komodo.address" --key "YOUR-API-KEY" --secret "YOUR-API-SECRET" ...

Run Executions

# Triggers an example build
komodo execute run-build test_build

Manual

komodo --help

Command line tool to execute Komodo actions

Usage: komodo [OPTIONS] <COMMAND>

Commands:
  execute  Runs an execution
  help     Print this message or the help of the given subcommand(s)

Options:
      --creds <CREDS>    The path to a creds file [default: /Users/max/.config/komodo/creds.toml]
      --url <URL>        Pass url in args instead of creds file
      --key <KEY>        Pass api key in args instead of creds file
      --secret <SECRET>  Pass api secret in args instead of creds file
  -y, --yes              Always continue on user confirmation prompts
  -h, --help             Print help (see more with '--help')
  -V, --version          Print version

komodo execute --help

Runs an execution

Usage: komodo execute <COMMAND>

Commands:
  none                    The "null" execution. Does nothing
  run-procedure           Runs the target procedure. Response: [Update]
  run-build               Runs the target build. Response: [Update]
  cancel-build            Cancels the target build. Only does anything if the build is `building` when called. Response: [Update]
  deploy                  Deploys the container for the target deployment. Response: [Update]
  start-deployment        Starts the container for the target deployment. Response: [Update]
  restart-deployment      Restarts the container for the target deployment. Response: [Update]
  pause-deployment        Pauses the container for the target deployment. Response: [Update]
  unpause-deployment      Unpauses the container for the target deployment. Response: [Update]
  stop-deployment         Stops the container for the target deployment. Response: [Update]
  destroy-deployment      Stops and destroys the container for the target deployment. Reponse: [Update]
  clone-repo              Clones the target repo. Response: [Update]
  pull-repo               Pulls the target repo. Response: [Update]
  build-repo              Builds the target repo, using the attached builder. Response: [Update]
  cancel-repo-build       Cancels the target repo build. Only does anything if the repo build is `building` when called. Response: [Update]
  start-container         Starts the container on the target server. Response: [Update]
  restart-container       Restarts the container on the target server. Response: [Update]
  pause-container         Pauses the container on the target server. Response: [Update]
  unpause-container       Unpauses the container on the target server. Response: [Update]
  stop-container          Stops the container on the target server. Response: [Update]
  destroy-container       Stops and destroys the container on the target server. Reponse: [Update]
  start-all-containers    Starts all containers on the target server. Response: [Update]
  restart-all-containers  Restarts all containers on the target server. Response: [Update]
  pause-all-containers    Pauses all containers on the target server. Response: [Update]
  unpause-all-containers  Unpauses all containers on the target server. Response: [Update]
  stop-all-containers     Stops all containers on the target server. Response: [Update]
  prune-containers        Prunes the docker containers on the target server. Response: [Update]
  delete-network          Delete a docker network. Response: [Update]
  prune-networks          Prunes the docker networks on the target server. Response: [Update]
  delete-image            Delete a docker image. Response: [Update]
  prune-images            Prunes the docker images on the target server. Response: [Update]
  delete-volume           Delete a docker volume. Response: [Update]
  prune-volumes           Prunes the docker volumes on the target server. Response: [Update]
  prune-system            Prunes the docker system on the target server, including volumes. Response: [Update]
  run-sync                Runs the target resource sync. Response: [Update]
  deploy-stack            Deploys the target stack. `docker compose up`. Response: [Update]
  start-stack             Starts the target stack. `docker compose start`. Response: [Update]
  restart-stack           Restarts the target stack. `docker compose restart`. Response: [Update]
  pause-stack             Pauses the target stack. `docker compose pause`. Response: [Update]
  unpause-stack           Unpauses the target stack. `docker compose unpause`. Response: [Update]
  stop-stack              Starts the target stack. `docker compose stop`. Response: [Update]
  destroy-stack           Destoys the target stack. `docker compose down`. Response: [Update]
  sleep                   
  help                    Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

--yes

You can use --yes to avoid any human prompt to continue, for use in automated environments.