diff --git a/container_management/komodo/mongo.compose.yaml b/container_management/komodo/mongo.compose.yaml new file mode 100644 index 0000000..58be174 --- /dev/null +++ b/container_management/komodo/mongo.compose.yaml @@ -0,0 +1,88 @@ +################################ +# 🦎 KOMODO COMPOSE - MONGO 🦎 # +################################ + +## This compose file will deploy: +## 1. MongoDB +## 2. Komodo Core +## 3. Komodo Periphery + +services: + mongo: + image: mongo + labels: + komodo.skip: # Prevent Komodo from stopping with StopAllContainers + command: --quiet --wiredTigerCacheSizeGB 0.25 + restart: unless-stopped + # ports: + # - 27017:27017 + volumes: + - ${CONFIG_ROOT}/komodo/mongo-data:/data/db + - ${CONFIG_ROOT}/komodo/mongo-config:/data/configdb + environment: + MONGO_INITDB_ROOT_USERNAME: ${KOMODO_DB_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${KOMODO_DB_PASSWORD} + networks: + - internal + + core: + image: ghcr.io/moghtech/komodo-core:${COMPOSE_KOMODO_IMAGE_TAG:-latest} + labels: + komodo.skip: # Prevent Komodo from stopping with StopAllContainers + traefik.enable: "true" + traefik.http.routers.komodo.rule: "Host(`containers.${DOMAIN}`)" + traefik.http.routers.komodo.entrypoints: "https" + traefik.http.routers.komodo.tls.certresolver: "cloudflare" + traefik.http.routers.komodo.service: "komodo" + traefik.http.services.komodo.loadbalancer.server.port: "9120" + traefik.docker.network: "traefik_public" + restart: unless-stopped + depends_on: + - mongo + env_file: ./compose.env + environment: + KOMODO_DATABASE_ADDRESS: mongo:27017 + KOMODO_DATABASE_USERNAME: ${KOMODO_DB_USERNAME} + KOMODO_DATABASE_PASSWORD: ${KOMODO_DB_PASSWORD} + volumes: + ## Store dated backups of the database - https://komo.do/docs/setup/backup + - ${COMPOSE_KOMODO_BACKUPS_PATH}:/backups + ## Store sync files on server + - ${CONFIG_ROOT}/komodo/syncs:/syncs + ## Optionally mount a custom core.config.toml + # - /path/to/core.config.toml:/config/config.toml + ## Allows for systemd Periphery connection at + ## "https://host.docker.internal:8120" + # extra_hosts: + # - host.docker.internal:host-gateway + networks: + - internal + - traefik_public + + ## Deploy Periphery container using this block, + ## or deploy the Periphery binary with systemd using + ## https://github.com/moghtech/komodo/tree/main/scripts + periphery: + image: ghcr.io/moghtech/komodo-periphery:${COMPOSE_KOMODO_IMAGE_TAG:-latest} + labels: + komodo.skip: # Prevent Komodo from stopping with StopAllContainers + restart: unless-stopped + env_file: ./compose.env + volumes: + ## Mount external docker socket + - /var/run/docker.sock:/var/run/docker.sock + ## Allow Periphery to see processes outside of container + - /proc:/proc + ## Specify the Periphery agent root directory. + ## Must be the same inside and outside the container, + ## or docker will get confused. See https://github.com/moghtech/komodo/discussions/180. + ## Default: /etc/komodo. + - ${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}:${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo} + networks: + - internal + +networks: + traefik_public: + external: true + internal: + driver: bridge