services: komodo_db: container_name: komodo_db image: ghcr.io/ferretdb/postgres-documentdb:17-0.106.0-ferretdb-2.5.0 restart: unless-stopped labels: komodo.skip: environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=postgres volumes: - ./db:/var/lib/postgresql/data networks: - backend healthcheck: test: ["CMD-SHELL", "pg_isready -d postgres -U ${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 3 start_period: 10s komodo_ferretdb: container_name: komodo_ferretdb image: ghcr.io/ferretdb/ferretdb:2.7.0 restart: unless-stopped labels: komodo.skip: depends_on: komodo_db: condition: service_healthy environment: - FERRETDB_POSTGRESQL_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@komodo_db:5432/postgres volumes: - ./ferretdb:/state networks: - backend komodo_core: container_name: komodo_core image: ghcr.io/moghtech/komodo-core:1.19.5 restart: unless-stopped labels: komodo.skip: depends_on: komodo_ferretdb: condition: service_healthy environment: - KOMODO_DATABASE_URI=mongodb://${POSTGRES_USER}:${POSTGRES_PASSWORD}@komodo_ferretdb:27017 volumes: - ./core.config.toml:/config/config.toml - ./syncs:/syncs - ./action-cache:/action-cache - ./repo-cache:/repo-cache ports: - ${CORE_PORT}:9120 networks: - frontend - backend komodo_periphery: container_name: komodo_periphery image: ghcr.io/moghtech/komodo-periphery:1.19.5 restart: unless-stopped hostname: ${HOSTNAME} labels: komodo.skip: command: periphery --config-path ${PERIPHERY_ROOT_DIRECTORY}/periphery.config.toml volumes: - /var/run/docker.sock:/var/run/docker.sock - /proc:/proc - ${PERIPHERY_ROOT_DIRECTORY}:${PERIPHERY_ROOT_DIRECTORY} ports: - ${PERIPHERY_PORT}:8120 networks: - backend networks: frontend: external: true backend: external: true