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

@@ -6,76 +6,80 @@
## A "default" server pointing to the local Periphery will be waiting in the UI on first startup.
services:
monitor-core:
image: ghcr.io/mbecker20/monitor:latest ## use ghcr.io/mbecker20/monitor:latest-aarch64 for arm support
komodo-core:
image: ghcr.io/mbecker20/komodo:latest ## use ghcr.io/mbecker20/komodo:latest-aarch64 for arm support
restart: unless-stopped
depends_on:
- monitor-mongo
- komodo-mongo
logging:
driver: local # enable log rotation by default. see `https://docs.docker.com/config/containers/logging/local/`
networks:
- monitor-network
- komodo-network
ports:
- 9120:9120
environment: # https://github.com/mbecker20/monitor/blob/main/config_example/core.config.example.toml
MONITOR_HOST: https://demo.monitor.dev # CHANGEME
MONITOR_TITLE: Monitor # Change the app title, displayed in the browser tab.
MONITOR_ENSURE_SERVER: http://monitor-periphery:8120 # Created the "default" server.
environment: # https://github.com/mbecker20/komodo/blob/main/config_example/core.config.example.toml
KOMODO_HOST: https://demo.komo.do # CHANGEME
KOMODO_TITLE: Komodo # Change the app title, displayed in the browser tab.
KOMODO_ENSURE_SERVER: http://komodo-periphery:8120 # Creates the "default" server.
## MONGO
MONITOR_MONGO_ADDRESS: monitor-mongo:27017
MONITOR_MONGO_USERNAME: admin # match db credentials ones below
MONITOR_MONGO_PASSWORD: admin
KOMODO_MONGO_ADDRESS: komodo-mongo:27017
KOMODO_MONGO_USERNAME: admin # match db credentials ones below
KOMODO_MONGO_PASSWORD: admin
## KEYS
MONITOR_PASSKEY: a_random_passkey # used to auth against periphery
MONITOR_WEBHOOK_SECRET: a_random_secret # used to authenticate incoming webhooks
MONITOR_JWT_SECRET: a_random_jwt_secret # Optional. If empty, will have to log in again on restart.
KOMODO_PASSKEY: a_random_passkey # used to auth against periphery
KOMODO_WEBHOOK_SECRET: a_random_secret # used to authenticate incoming webhooks
KOMODO_JWT_SECRET: a_random_jwt_secret # Optional. If empty, will have to log in again on restart.
## AUTH
MONITOR_LOCAL_AUTH: true # the default is false.
# MONITOR_GITHUB_OAUTH_ENABLED: true # also support google oauth
# MONITOR_GITHUB_OAUTH_ID: your_oauth_id
# MONITOR_GITHUB_OAUTH_SECRET: your_oauth_secret
KOMODO_LOCAL_AUTH: true # the default is false.
# KOMODO_GITHUB_OAUTH_ENABLED: true # also support google oauth
# KOMODO_GITHUB_OAUTH_ID: your_oauth_id
# KOMODO_GITHUB_OAUTH_SECRET: your_oauth_secret
## AWS
# MONITOR_AWS_ACCESS_KEY_ID: your_aws_key_id
# MONITOR_AWS_SECRET_ACCESS_KEY: your_secret_access_key
# KOMODO_AWS_ACCESS_KEY_ID: your_aws_key_id
# KOMODO_AWS_SECRET_ACCESS_KEY: your_secret_access_key
## HETZNER
# MONITOR_HETZNER_TOKEN: your_hetzner_token
# KOMODO_HETZNER_TOKEN: your_hetzner_token
## Deploy periphery container using this block,
## or deploy it on the host directly using https://github.com/mbecker20/monitor/tree/main/scripts
monitor-periphery:
## or deploy it on the host directly using https://github.com/mbecker20/komodo/tree/main/scripts
komodo-periphery:
image: ghcr.io/mbecker20/periphery:latest # use ghcr.io/mbecker20/periphery:latest-aarch64 for arm support
logging:
driver: local
networks:
- monitor-network
- komodo-network
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- monitor-repos:/etc/monitor/repos # manage repos in a docker volume, or change it to an accessible host directory.
- komodo-repos:/etc/komodo/repos # manage repos in a docker volume, or change it to an accessible host directory.
- komodo-stacks:/etc/komodo/stacks # manage stack files in a docker volume, or change it to an accessible host directory.
# environment:
# # If the disk size is overreporting, can use one of these to
# # whitelist / blacklist the disks to filter them, whichever is easier.
# PERIPHERY_INCLUDE_DISK_MOUNTS: /etc/monitor/repos
# PERIPHERY_INCLUDE_DISK_MOUNTS: /etc/komodo/repos
# PERIPHERY_EXCLUDE_DISK_MOUNTS: /snap
monitor-mongo:
komodo-mongo:
image: mongo
command: --quiet # suppress mongo logs a bit
restart: unless-stopped
logging:
driver: local
networks:
- monitor-network
- komodo-network
ports:
- 27017:27017
volumes:
- db-data:/data/db
- db-config:/data/configdb
environment:
MONGO_INITDB_ROOT_USERNAME: admin # change these
MONGO_INITDB_ROOT_PASSWORD: admin
volumes:
db-data:
monitor-repos:
db-config:
komodo-repos:
komodo-stacks:
networks:
monitor-network: {}
komodo-network: {}