mirror of
https://github.com/moghtech/komodo.git
synced 2026-05-01 07:36:16 -05:00
* inc version * Komodo interp in ui compose file * fix auto update when image doesn't specify tag by defaulting to latest * Pull image buttons don't need safety dialog * WIP crosscompile * rename * entrypoint * fix copy * remove example/* from workspace * add targets * multiarch pkg config * use specific COPY * update deps * multiarch build command * pre compile deps * cross compile * enable-linger * remove spammed log when server doesn't have docker * add multiarch.Dockerfile * fix casing * fix tag * try not let COPY fail * try * ARG TARGETPLATFORM * use /app for consistency * try * delete cross-compile approach * add multiarch core build * multiarch Deno * single arch multi arch * typeshare cli note * new typeshare * remove note about aarch64 image * test configs * fix config file headers * binaries dockerfile * update cargo build * docs * simple * just simple * use -p * add configurable binaries tag * add multi-arch * allow copy to fail * fix binary paths * frontend Dockerfiel * use dedicated static frontend build * auto retry getting instance state from aws * retry 5 times * cleanup * simplify binary build * try alpine and musl * install alpine deps * back to debian, try rustls * move fully to rustls * single arch builds using single binary image * default IMAGE_TAG * cleanup * try caching deps * single arch add frontend build * rustls::crypto::ring::default_provider() * back to simple * comment dockerfile * add select options prop, render checkboxes if present * add allowSelectedIf to enable / disable rows where necessary * rename allowSelectIf to isSelectable, allow false as global disable, disable checkboxes when not allowed * rename isSelectable to disableRow (it works the oppsite way lol) * selected resources hook, start deployment batch execute component * add deployment group actions * add deployment group actions * add default (empty) group actions for other resources * fix checkbox header styles * explicitly check if disableRow is passed (this prop is cursed) * don't disable row selection for deployments table * don't need id for groupactions * add group actions to resources page * fix row checkbox (prop not cursed, i dumb) * re-implement group action list using dropdown menu * only make group actions clickable when at least one row selected * add loading indicator * gap betwen new resource and group actions * refactor group actions * remove "Batch" from action labels * add group actions for relevant resources * fix hardcode * add selectOptions to relevant tables * select by name not id * expect selected to be names * add note re selection state init for future reference * multi select working nicely for all resources * configure server health check timeout * config message * refresh processes remove dead processes * simplify the build args * default timeout seconds 3 --------- Co-authored-by: kv <karamvir.singh98@gmail.com>
55 lines
3.2 KiB
Markdown
55 lines
3.2 KiB
Markdown
# 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](https://github.com/mbecker20/komodo) requires either [Docker](https://www.docker.com/) (and can use the included [devcontainer](https://code.visualstudio.com/docs/devcontainers/containers)), or can have the development dependencies installed locally:
|
|
|
|
* Backend (Core / Periphery APIs)
|
|
* [Rust](https://www.rust-lang.org/) stable via [rustup installer](https://rustup.rs/)
|
|
* [MongoDB](https://www.mongodb.com/) or [FerretDB](https://www.ferretdb.com/) available locally.
|
|
* On Debian/Ubuntu: `apt install build-essential pkg-config libssl-dev` required to build the rust source.
|
|
* Frontend (Web UI)
|
|
* [Node](https://nodejs.org/en) >= 18.18 + NPM
|
|
* [Yarn](https://yarnpkg.com/) - (Tip: use `corepack enable` after installing `node` to use `yarn`)
|
|
* [typeshare](https://github.com/1password/typeshare)
|
|
* [Deno](https://deno.com/) >= 2.0.2
|
|
|
|
### runnables-cli
|
|
|
|
[mbecker20/runnables-cli](https://github.com/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 `cmd`s found in `runfile.toml`. All instructions below will use runnables-cli v1.3.7+.
|
|
|
|
## Docker
|
|
|
|
After making changes to the project, run `run -r test-compose-build` to rebuild Komodo and then `run -r 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 `test-compose-build` and `test-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](https://code.visualstudio.com/Docs/editor/tasks) are provided 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 just one component of the stack (Core API, Periphery API, Frontend) 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 -r test-core` -- Build and run Core API
|
|
* `run -r test-periphery` -- Build and run Periphery API
|
|
* Build Frontend
|
|
* Install **typeshare-cli**: `cargo install typeshare-cli`
|
|
* **Run this once** -- `run -r link-client` -- generates TS client and links to the frontend
|
|
* After running the above once:
|
|
* `run -r gen-client` -- Rebuild client
|
|
* `run -r start-frontend` -- Start in dev (watch) mode
|
|
* `run -r build-frontend` -- Typecheck and build
|
|
|
|
|
|
## Docsite Development
|
|
|
|
Use `run -r docsite-start` to start the [Docusaurus](https://docusaurus.io/) Komodo docs site in development mode. Changes made to files in `./docsite` will be automatically reloaded by the server. |