1.14 - Rename to Komodo - Docker Management (#56)

* setup network page

* add Network, Image, Container

* Docker ListItems and Inspects

* frontend build

* dev0

* network info working

* fix cargo lock

* dev1

* pages for the things

* implement Active in dashboard

* RunBuild update trigger list refresh

* rename deployment executions to StartDeployment etc

* add server level container control

* dev2

* add Config field to Image

* can get image labels from Config.Labels

* mount container page

* server show resource count

* add GetContainerLog api

* add _AllContainers api

* dev3

* move ResourceTarget to entities mod

* GetResourceMatchingContainer api

* connect container to resource

* dev4 add volume names to container list items

* ts types

* volume / image / network unused management

* add image history to image page

* fix PruneContainers incorret Operation

* update cache for server for server after server actions

* dev5

* add singapore to Hetzner

* implement delete single network / image / volume api

* dev6

* include "in use" on Docker Lists

* add docker resource delete buttons

* is nice

* fix volume all in use

* remove google font dependency

* use host networking in test compose

* implement Secret Variables (hidden in logs)

* remove unneeded borrow

* interpolate variables / secrets into extra args / onclone / onpull / command etc

* validate empty strings before SelectItem

* rename everything to Komodo

* rename workspace to komodo

* rc1
This commit is contained in:
Maxwell Becker
2024-09-02 01:38:40 +03:00
committed by GitHub
parent 2463ed3879
commit 5fc0a87dea
429 changed files with 14351 additions and 7077 deletions

View File

@@ -1,21 +1,21 @@
# Monitor Core Setup
# Komodo Core Setup
To run Monitor Core, you will need Docker. See [the docker install docs](https://docs.docker.com/engine/install/).
To run Komodo Core, you will need Docker. See [the docker install docs](https://docs.docker.com/engine/install/).
### Deploy Monitor Core with Docker Compose
### Deploy Komodo Core with Docker Compose
There is an example compose file here: [https://github.com/mbecker20/monitor/blob/main/config_example/core.compose.yaml](https://github.com/mbecker20/monitor/blob/main/config_example/core.compose.yaml).
There is an example compose file here: [https://github.com/mbecker20/komodo/blob/main/config_example/core.compose.yaml](https://github.com/mbecker20/komodo/blob/main/config_example/core.compose.yaml).
Copy the contents to a `compose.yaml`, and deploy it with `docker compose up -d`.
:::info
Monitor Core itself can really only run remote builds.
You also have to [**install the Monitor Periphery agent**](/docs/connecting-servers) on your hosts and connect them as **Servers**
Komodo Core itself can really only run remote builds.
You also have to [**install the Komodo Periphery agent**](/docs/connecting-servers) on your hosts and connect them as **Servers**
in order to alert / deploy etc.
If you **only need to connect on one server** (the one you are deploying Monitor Core on), you can do it all dockerized,
and use the [**all-in-one compose file**](https://github.com/mbecker20/monitor/blob/main/config_example/aio.compose.yaml).
This will deploy Monitor Core and Periphery, and automatically add the local periphery as a connected server.
If you **only need to connect on one server** (the one you are deploying Komodo Core on), you can do it all dockerized,
and use the [**all-in-one compose file**](https://github.com/mbecker20/komodo/blob/main/config_example/aio.compose.yaml).
This will deploy Komodo Core and Periphery, and automatically add the local periphery as a connected server.
Deploying with the AIO compose file **will not** stop you from connecting more servers later, and is really just for setup convenience.
@@ -24,10 +24,10 @@ You can currently and always will be able to **connect as many servers an you li
### Configuration
You can configure Monitor with environment variables, or using a config file.
You can configure Komodo with environment variables, or using a config file.
The example config file in the Monitor repo documents all the configuration options, along with the corresponding environment variables.
It can be found here: [https://github.com/mbecker20/monitor/blob/main/config_example/core.config.example.toml](https://github.com/mbecker20/monitor/blob/main/config_example/core.config.example.toml).
The example config file in the Komodo repo documents all the configuration options, along with the corresponding environment variables.
It can be found here: [https://github.com/mbecker20/komodo/blob/main/config_example/core.config.example.toml](https://github.com/mbecker20/komodo/blob/main/config_example/core.config.example.toml).
Note that configuration passed in environment variables will take precedent over what is given in the file.
@@ -35,7 +35,7 @@ Note that configuration passed in environment variables will take precedent over
To enable OAuth2 login, you must create a client on the respective OAuth provider,
for example [google](https://developers.google.com/identity/protocols/oauth2)
or [github](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps).
Monitor uses the `web application` login flow.
Komodo uses the `web application` login flow.
The redirect uri is `<base_url>/auth/google/callback` for google and `<base_url>/auth/github/callback` for github.
:::
@@ -56,7 +56,7 @@ Core itself only supports http, so a reverse proxy like [caddy](https://caddyser
Mongo can be run locally using the docker cli:
```sh
docker run --name monitor-mongo \
docker run --name komodo-mongo \
--network host \
-v /local/storage/path:/data/db \
-e MONGO_INITDB_ROOT_USERNAME="admin" \
@@ -71,20 +71,20 @@ Note that this uses "host" networking, which will allow core to connect over loc
Many users will prefer the default "bridge" network, and to use port mapping with `-p 27017:27017`.
:::note
The disk space requirements of Monitor are dominated by the storage of system stats.
The disk space requirements of Komodo are dominated by the storage of system stats.
This depends on the number of connected servers (more system stats being produces / stored), stats collection frequency, and your stats pruning configuration.
If you need to save on space, you can configure these fields in your core config: - Stats poll frequency can be reduced using, for example, `monitoring_interval = "15-sec"` - Pruning can be tuned more aggresively using, for example, `keep_stats_for_days = 7`.
:::
### 2. Start Monitor core
### 2. Start Komodo core
Monitor core is distributed via Github Container Registry under the package [mbecker20/monitor](https://github.com/mbecker20/monitor/pkgs/container/monitor).
Komodo core is distributed via Github Container Registry under the package [mbecker20/komodo](https://github.com/mbecker20/komodo/pkgs/container/komodo).
```sh
docker run -d --name monitor-core \
docker run -d --name komodo-core \
--network host \
-v $HOME/.monitor/core.config.toml:/config/config.toml \
ghcr.io/mbecker20/monitor:latest
-v $HOME/.config/komodo/core.config.toml:/config/config.toml \
ghcr.io/mbecker20/komodo:latest
```
Note that this uses "host" networking, which will allow it to connect to a local periphery agent on localhost.