komodo/docker-compose.yml
hcornet 044824e6d8
Some checks failed
Deployment Verification / deploy-and-test (push) Failing after 54s
first sync
2025-02-09 18:54:20 +01:00

129 lines
4.3 KiB
YAML

#### NETWORKS
networks:
traefik_front_network:
external: true
back_network_komodo:
driver: bridge
attachable: true
#### SERVICES
services:
###
postgres:
container_name: komodo-db
hostname: komodo-db
image: postgres
labels:
komodo.skip: # Prevent Komodo from stopping with StopAllContainers
restart: unless-stopped
logging:
driver: ${COMPOSE_LOGGING_DRIVER:-local}
networks:
- back_network_komodo
volumes:
- pg-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${KOMODO_DB_USERNAME}
- POSTGRES_PASSWORD=${KOMODO_DB_PASSWORD}
- POSTGRES_DB=${KOMODO_DATABASE_DB_NAME:-komodo}
###
ferretdb:
container_name: ferretdb
hostname: ferretdb
image: ghcr.io/ferretdb/ferretdb
labels:
komodo.skip: # Prevent Komodo from stopping with StopAllContainers
restart: unless-stopped
depends_on:
- postgres
logging:
driver: ${COMPOSE_LOGGING_DRIVER:-local}
networks:
- back_network_komodo
environment:
- FERRETDB_POSTGRESQL_URL=postgres://postgres:5432/${KOMODO_DATABASE_DB_NAME:-komodo}
###
core:
container_name: core
hostname: core
image: ghcr.io/mbecker20/komodo:${COMPOSE_KOMODO_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
- ferretdb
logging:
driver: ${COMPOSE_LOGGING_DRIVER:-local}
networks:
- traefik_front_network
- back_network_komodo
ports:
- 9120:9120
env_file: ./.env
environment:
KOMODO_DATABASE_URI: mongodb://${KOMODO_DB_USERNAME}:${KOMODO_DB_PASSWORD}@ferretdb:27017/${KOMODO_DATABASE_DB_NAME:-komodo}?authMechanism=PLAIN
volumes:
## Core cache for repos for latest commit hash / contents
- repo-cache:/repo-cache
## Store sync files on server
# - /path/to/syncs:/syncs
## Optionally mount a custom core.config.toml
# - /path/to/core.config.toml:/config/config.toml
## Allows for systemd Periphery connection at
## "http://host.docker.internal:8120"
# extra_hosts:
# - host.docker.internal:host-gateway
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik_front_network"
# HTTP
- "traefik.http.routers.komodo-http.rule=Host(`komodo.tips-of-mine.com`)"
- "traefik.http.routers.komodo-http.entrypoints=http"
- "traefik.http.routers.komodo-http.priority=49"
# HTTPS
- "traefik.http.routers.komodo-https.rule=Host(`komodo.tips-of-mine.com`)"
- "traefik.http.routers.komodo-https.entrypoints=https"
- "traefik.http.routers.komodo-https.tls=true"
- "traefik.http.routers.komodo-https.priority=50"
- "traefik.http.routers.komodo.service=komodo-https-service"
# Middleware
# Service
- "traefik.http.services.komodo-https-service.loadbalancer.server.port=9120"
# - komodo.skip: # Prevent Komodo from stopping with StopAllContainers
## Deploy Periphery container using this block,
## or deploy the Periphery binary with systemd using
## https://github.com/mbecker20/komodo/tree/main/scripts
periphery:
container_name: periphery
hostname: periphery
image: ghcr.io/mbecker20/periphery:${COMPOSE_KOMODO_IMAGE_TAG:-latest}
labels:
komodo.skip: # Prevent Komodo from stopping with StopAllContainers
restart: unless-stopped
logging:
driver: ${COMPOSE_LOGGING_DRIVER:-local}
networks:
- back_network_komodo
env_file: ./.env
environment:
PERIPHERY_REPO_DIR: ${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}/repos
PERIPHERY_STACK_DIR: ${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}/stacks
PERIPHERY_SSL_KEY_FILE: ${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}/ssl/key.pem
PERIPHERY_SSL_CERT_FILE: ${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}/ssl/cert.pem
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/mbecker20/komodo/discussions/180.
## Default: /etc/komodo.
- ${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}:${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}
volumes:
# Postgres
pg-data:
# Core
repo-cache: