# Komodo - Docker & Server Management Platform # Docs: https://komo.do/docs/ # GitHub: https://github.com/moghtech/komodo services: komodo-mongo: container_name: komodo-mongo image: mongo:8.0 restart: unless-stopped command: ["--wiredTigerCacheSizeGB", "0.25"] environment: MONGO_INITDB_ROOT_USERNAME: ${KOMODO_DB_USERNAME:-admin} MONGO_INITDB_ROOT_PASSWORD: ${KOMODO_DB_PASSWORD:-admin} volumes: - mongo-data:/data/db - mongo-config:/data/configdb networks: - homelab labels: # Skip this container from Komodo management komodo.skip: true komodo-core: container_name: komodo-core image: ghcr.io/moghtech/komodo-core:${KOMODO_VERSION:-latest} restart: unless-stopped depends_on: - komodo-mongo env_file: - .env environment: # Database Configuration KOMODO_DATABASE_URI: mongodb://${KOMODO_DB_USERNAME:-admin}:${KOMODO_DB_PASSWORD:-admin}@komodo-mongo:27017 # Core Settings KOMODO_TITLE: ${KOMODO_TITLE:-Komodo} KOMODO_HOST: ${KOMODO_HOST:-https://komodo.fig.systems} KOMODO_PORT: 9120 # Authentication KOMODO_PASSKEY: ${KOMODO_PASSKEY:-abc123} KOMODO_LOCAL_AUTH: ${KOMODO_LOCAL_AUTH:-true} KOMODO_ENABLE_NEW_USERS: ${KOMODO_ENABLE_NEW_USERS:-true} KOMODO_ENABLE_NEW_USER_WEBHOOK: ${KOMODO_ENABLE_NEW_USER_WEBHOOK:-false} # Monitoring KOMODO_MONITORING_INTERVAL: ${KOMODO_MONITORING_INTERVAL:-15-sec} # Logging KOMODO_LOGGING_LEVEL: ${KOMODO_LOGGING_LEVEL:-info} TZ: ${TZ:-America/Los_Angeles} volumes: - ./data:/data - ./backups:/backups # Optional: mount custom config # - ./config/core.config.toml:/config/core.config.toml:ro networks: - homelab labels: # Skip this container from Komodo management komodo.skip: true # Traefik traefik.enable: true traefik.docker.network: homelab # Web UI traefik.http.routers.komodo.rule: Host(`komodo.fig.systems`) traefik.http.routers.komodo.entrypoints: websecure traefik.http.routers.komodo.tls.certresolver: letsencrypt traefik.http.services.komodo.loadbalancer.server.port: 9120 # Optional: SSO Protection komodo-periphery: container_name: komodo-periphery image: ghcr.io/moghtech/komodo-periphery:${KOMODO_VERSION:-latest} restart: unless-stopped depends_on: - komodo-core env_file: - .env environment: # Core Settings PERIPHERY_ROOT_DIR: ${PERIPHERY_ROOT_DIR:-/etc/komodo} PERIPHERY_PORT: 8120 # Authentication PERIPHERY_PASSKEY: ${KOMODO_PASSKEY:-abc123} PERIPHERY_HTTPS_ENABLED: ${PERIPHERY_HTTPS_ENABLED:-true} # Features PERIPHERY_DISABLE_TERMINALS: ${PERIPHERY_DISABLE_TERMINALS:-false} # Disk Monitoring PERIPHERY_INCLUDE_DISK_MOUNTS: ${PERIPHERY_INCLUDE_DISK_MOUNTS:-/} # PERIPHERY_EXCLUDE_DISK_MOUNTS: /snap,/boot # Logging PERIPHERY_LOGGING_LEVEL: ${PERIPHERY_LOGGING_LEVEL:-info} TZ: ${TZ:-America/Los_Angeles} volumes: - /var/run/docker.sock:/var/run/docker.sock - /proc:/proc:ro - ${PERIPHERY_ROOT_DIR:-/etc/komodo}:${PERIPHERY_ROOT_DIR:-/etc/komodo} # Optional: mount custom config # - ./config/periphery.config.toml:/config/periphery.config.toml:ro networks: - homelab labels: # Skip this container from Komodo management komodo.skip: true volumes: mongo-data: mongo-config: networks: homelab: external: true