feat(ops/komodo): Komodo Stack hinzufuegen (Core + MongoDB + Periphery)
- MongoDB auf komodo_net (internal: true), nie frontend_net - Core auf frontend_net + komodo_net, Admin-Middleware - Periphery Docker-Socket ohne :ro (Ausnahme dokumentiert) - Secrets via _FILE Pattern fuer MongoDB
This commit is contained in:
@@ -0,0 +1,86 @@
|
|||||||
|
services:
|
||||||
|
|
||||||
|
# ──────────────────────────────────────────────────────────────────
|
||||||
|
# MongoDB — Datenbank fuer Komodo Core
|
||||||
|
# Netz: komodo_net (internal: true) — niemals frontend_net
|
||||||
|
# ──────────────────────────────────────────────────────────────────
|
||||||
|
komodo-mongo:
|
||||||
|
image: mongo:7
|
||||||
|
container_name: komodo-mongo
|
||||||
|
restart: unless-stopped
|
||||||
|
command: --quiet
|
||||||
|
volumes:
|
||||||
|
- /mnt/user/appdata/komodo/mongo:/data/db
|
||||||
|
- /mnt/user/appdata/secrets/komodo_mongo_password.txt:/run/secrets/mongo_password:ro
|
||||||
|
networks:
|
||||||
|
- komodo_net
|
||||||
|
environment:
|
||||||
|
- MONGO_INITDB_ROOT_USERNAME=komodo
|
||||||
|
- MONGO_INITDB_ROOT_PASSWORD_FILE=/run/secrets/mongo_password
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
|
||||||
|
# ──────────────────────────────────────────────────────────────────
|
||||||
|
# Komodo Core — Management-UI (Portainer-Ersatz)
|
||||||
|
# Netz: frontend_net (Traefik) + komodo_net (MongoDB/Periphery)
|
||||||
|
# Admin-Dienst: dashboard-auth@file + secure-headers@file Pflicht
|
||||||
|
# ──────────────────────────────────────────────────────────────────
|
||||||
|
komodo-core:
|
||||||
|
image: ghcr.io/mbecker20/komodo:latest
|
||||||
|
container_name: komodo-core
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- komodo-mongo
|
||||||
|
volumes:
|
||||||
|
- /mnt/user/appdata/komodo/core:/repo-cache
|
||||||
|
networks:
|
||||||
|
- komodo_net
|
||||||
|
- frontend_net
|
||||||
|
environment:
|
||||||
|
- TZ=Europe/Berlin
|
||||||
|
- KOMODO_HOST=https://komodo.kaleschke.info
|
||||||
|
- KOMODO_TITLE=Kallilabcore
|
||||||
|
- KOMODO_SECRET_KEY=${KOMODO_SECRET_KEY}
|
||||||
|
- KOMODO_MONGO_ADDRESS=komodo-mongo:27017
|
||||||
|
- KOMODO_MONGO_USERNAME=komodo
|
||||||
|
- KOMODO_MONGO_PASSWORD=${KOMODO_MONGO_PASSWORD}
|
||||||
|
- KOMODO_LOG_LEVEL=info
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.docker.network=frontend_net
|
||||||
|
- traefik.http.routers.komodo.rule=Host(`komodo.kaleschke.info`)
|
||||||
|
- traefik.http.routers.komodo.entrypoints=websecure
|
||||||
|
- traefik.http.routers.komodo.tls=true
|
||||||
|
- traefik.http.routers.komodo.tls.certresolver=le
|
||||||
|
- traefik.http.routers.komodo.middlewares=dashboard-auth@file,secure-headers@file
|
||||||
|
- traefik.http.services.komodo.loadbalancer.server.port=9120
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
|
||||||
|
# ──────────────────────────────────────────────────────────────────
|
||||||
|
# Komodo Periphery — Docker-Agent auf Kallilabcore
|
||||||
|
# Netz: komodo_net (internal) — kein Traefik noetig
|
||||||
|
# Ausnahme: Docker-Socket ohne :ro (Periphery startet/stoppt Container)
|
||||||
|
# ──────────────────────────────────────────────────────────────────
|
||||||
|
komodo-periphery:
|
||||||
|
image: ghcr.io/mbecker20/periphery:latest
|
||||||
|
container_name: komodo-periphery
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- /mnt/user/appdata/komodo/periphery:/etc/komodo
|
||||||
|
networks:
|
||||||
|
- komodo_net
|
||||||
|
environment:
|
||||||
|
- PERIPHERY_PASSKEY=${KOMODO_PERIPHERY_PASSKEY}
|
||||||
|
- TZ=Europe/Berlin
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
|
||||||
|
networks:
|
||||||
|
frontend_net:
|
||||||
|
external: true
|
||||||
|
komodo_net:
|
||||||
|
name: komodo_net
|
||||||
|
internal: true
|
||||||
|
driver: bridge
|
||||||
Reference in New Issue
Block a user