mapletree/management/docker-compose.yml
2026-01-27 22:48:37 -07:00

193 lines
5.6 KiB
YAML

services:
postgres:
# 🚨 Pin to a specific version. Updates can be breaking.
image: ghcr.io/ferretdb/postgres-documentdb
container_name: postgres
cpus: 2.0
mem_limit: "4096m"
mem_reservation: "1024m"
user: "1000:1000"
env_file:
- /docker/management/.env
labels:
- "komodo.skip=true"
restart: unless-stopped
ports:
- "5432:5432"
networks:
- management_internal
volumes:
- /docker/management/komodo-postgres:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${KOMODO_DB_USERNAME}
POSTGRES_PASSWORD: ${KOMODO_DB_PASSWORD}
POSTGRES_DB: postgres
ferretdb:
image: ghcr.io/ferretdb/ferretdb
container_name: ferretdb
cpus: 2.0
mem_limit: "2048m"
mem_reservation: "512m"
user: "1000:1000"
env_file:
- /docker/management/.env
labels:
- "komodo.skip=true"
restart: unless-stopped
depends_on:
- postgres
ports:
- "27017:27017"
networks:
- management_internal
volumes:
- /docker/management/ferret:/state
environment:
FERRETDB_POSTGRESQL_URL: postgres://${KOMODO_DB_USERNAME}:${KOMODO_DB_PASSWORD}@postgres:5432/postgres
wud:
image: fmartinou/whats-up-docker:latest
container_name: wud
user: "1000:994"
cpus: 1.0
mem_limit: "1024m"
mem_reservation: "256m"
ports:
- "3001:3000"
networks:
- management_internal
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /docker/management/wud/etc:/etc/wud
- /docker/management/wud/var:/var/lib/wud
- /docker/management/wud-db:/var/lib/wud/db
environment:
- WUD_AUTOUPDATE=false
- TZ=America/Edmonton
- WUD_WATCHER_LOCAL_WATCHBYDEFAULT=true
- WUD_WATCHER_LOCAL_SOCKET=/var/run/docker.sock
- WUD_REGISTRIES_LSCR_ENABLED=true
- WUD_REGISTRY_LSCR_USERNAME=jkilloran82
- WUD_REGISTRY_LSCR_TOKEN=${GITHUB_PAT_TOKEN}
- WUD_TRIGGER_SMTP_EMAIL_FROM=wud@mapletree.email
- WUD_TRIGGER_SMTP_EMAIL_TO=jkilloran@doppio.ca
- WUD_TRIGGER_SMTP_EMAIL_HOST=10.19.19.3
- WUD_TRIGGER_SMTP_EMAIL_PORT=25
- WUD_TRIGGER_SMTP_EMAIL_TLS_ENABLED=false
- WUD_TRIGGER_SMTP_EMAIL_TLS_VERIFY=false
restart: unless-stopped
gitea-postgres:
image: docker.io/library/postgres:15
environment:
- POSTGRES_USER=${KOMODO_DB_USERNAME}
- POSTGRES_PASSWORD=${KOMODO_DB_PASSWORD}
- POSTGRES_DB=gitea
volumes:
- /docker/management/gitea-postgres/postgres:/var/lib/postgresql/data
container_name: gitea-postgres
labels:
- "komodo.skip=true"
restart: unless-stopped
ports:
- "5433:5432"
networks:
- management_internal
gitea:
image: gitea/gitea:latest
container_name: gitea
ports:
- "3002:3000"
- "222:22"
networks:
- management_internal
- gitea_external
volumes:
- /docker/management/gitea:/data
- /docker/management/gitea-postgres:/var/lib/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /docker:/docker
environment:
- TZ=America/Edmonton
- ROOT_URL=http://172.16.201.21:3002/
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea-postgres:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=${KOMODO_DB_USERNAME}
- GITEA__database__PASSWD=${KOMODO_DB_PASSWORD}
restart: unless-stopped
depends_on:
- gitea-postgres
komodo:
image: ghcr.io/moghtech/komodo-core:latest
container_name: komodo
cpus: 2.0
mem_limit: "2048m"
mem_reservation: "512m"
#user: "1000:1000"
env_file:
- /docker/management/.env
ports:
- "9120:9120"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /root/.ssh:/home/komodo/.ssh:ro
- /docker/management/komodo/config:/config
- /docker/management/komodo/backups:/backups
- /docker/management/komodo/core-etc:/etc/komodo
- /docker/management/komodo/var:/var/lib/komodo
- /docker/management/komodo/repo-cache:/repo-cache
- /docker:/docker
environment:
KOMODO_DATABASE_ADDRESS: ferretdb:27017
KOMODO_DATABASE_USERNAME: ${KOMODO_DB_USERNAME}
KOMODO_DATABASE_PASSWORD: ${KOMODO_DB_PASSWORD}
depends_on:
- ferretdb
restart: unless-stopped
labels:
- "komodo.skip=true"
#remove traefik for failover config
- "traefik.enable=true"
# Router
- "traefik.http.routers.komodo.rule=Host(`manage.mapletree.email`)"
- "traefik.http.routers.komodo.entrypoints=web,websecure"
- "traefik.http.routers.komodo.tls.certresolver=myresolver"
# Service
- "traefik.http.services.komodo.loadbalancer.server.port=9120"
- "traefik.docker.network=komodo_external"
#mongo info
# --uncomment for single host-- - KOMODO_DATABASE_URI=mongodb://127.0.0.1:27017/komodo?directConnection=true&replicaSet=rs0
# --uncomment for multi host-- - KOMODO_DATABASE_URI=mongodb://172.16.201.206:27017,172.16.201.106:27017/komodo?replicaSet=rs0
# Explicitly unset ADDRESS to avoid conflicts
# --uncomment for deployment-- - KOMODO_DATABASE_ADDRESS=
networks:
- komodo_external
- management_internal
######MONGO SECTION######
mongo:
image: mongo:7.0
container_name: mongo
restart: always
network_mode: host
command: ["--replSet", "rs0", "--bind_ip_all", "--port", "27017"]
volumes:
- /docker/management/mongodb:/data/db
networks:
komodo_external:
external: true
management_internal:
internal: true
gitea_external:
external: true