184 lines
4.0 KiB
YAML
184 lines
4.0 KiB
YAML
|
services:
|
||
|
# r-proxy, log generator
|
||
|
caddy:
|
||
|
image: caddy:latest
|
||
|
restart: always
|
||
|
env_file: .env.caddy
|
||
|
ports:
|
||
|
- '8880:80'
|
||
|
- '4443:443'
|
||
|
volumes:
|
||
|
- './Caddyfile:/etc/caddy/Caddyfile'
|
||
|
- './data/caddy-data:/data'
|
||
|
- './data/caddy-config:/config'
|
||
|
|
||
|
##########################################
|
||
|
# Monitoring
|
||
|
#####
|
||
|
|
||
|
# log collector
|
||
|
prometheus:
|
||
|
image: prom/prometheus:latest
|
||
|
restart: always
|
||
|
volumes:
|
||
|
- ./prometheus/:/etc/prometheus/
|
||
|
- prometheus_storage:/prometheus
|
||
|
command:
|
||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||
|
- '--storage.tsdb.path=/prometheus'
|
||
|
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
|
||
|
- '--web.console.templates=/usr/share/prometheus/consoles'
|
||
|
ports:
|
||
|
- 9090:9090
|
||
|
# links:
|
||
|
# - cadvisor:cadvisor
|
||
|
depends_on:
|
||
|
- cadvisor
|
||
|
- caddy
|
||
|
|
||
|
# log viewer
|
||
|
grafana:
|
||
|
image: grafana/grafana:latest
|
||
|
user: "472"
|
||
|
restart: always
|
||
|
ports:
|
||
|
- 3000:3000
|
||
|
volumes:
|
||
|
- './grafana/provisioning/:/etc/grafana/provisioning/'
|
||
|
- 'grafana_storage:/var/lib/grafana'
|
||
|
env_file:
|
||
|
- ./grafana/.env.grafana
|
||
|
depends_on:
|
||
|
- prometheus
|
||
|
|
||
|
node-exporter:
|
||
|
image: quay.io/prometheus/node-exporter:latest
|
||
|
volumes:
|
||
|
- /proc:/host/proc:ro
|
||
|
- /sys:/host/sys:ro
|
||
|
- /:/rootfs:ro
|
||
|
- /:/host:ro,rslave
|
||
|
command:
|
||
|
- '--path.rootfs=/host'
|
||
|
- '--path.procfs=/host/proc'
|
||
|
- '--path.sysfs=/host/sys'
|
||
|
- --collector.filesystem.mount-points-exclude
|
||
|
- "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
|
||
|
ports:
|
||
|
- 9100:9100
|
||
|
restart: always
|
||
|
deploy:
|
||
|
mode: global
|
||
|
|
||
|
cadvisor:
|
||
|
image: gcr.io/cadvisor/cadvisor
|
||
|
volumes:
|
||
|
- /:/rootfs:ro
|
||
|
- /var/run:/var/run:rw
|
||
|
- /sys:/sys:ro
|
||
|
- /var/lib/docker/:/var/lib/docker:ro
|
||
|
ports:
|
||
|
- 8080:8080
|
||
|
restart: always
|
||
|
deploy:
|
||
|
mode: global
|
||
|
|
||
|
##########################################
|
||
|
# Revolt
|
||
|
#####
|
||
|
|
||
|
# MongoDB database
|
||
|
database:
|
||
|
image: mongo
|
||
|
restart: always
|
||
|
volumes:
|
||
|
- './data/db:/data/db'
|
||
|
|
||
|
# Redis server
|
||
|
redis:
|
||
|
image: eqalpha/keydb
|
||
|
restart: always
|
||
|
|
||
|
# S3-compatible storage server
|
||
|
minio:
|
||
|
image: minio/minio
|
||
|
command: server /data
|
||
|
env_file: .env
|
||
|
volumes:
|
||
|
- './data/minio:/data'
|
||
|
restart: always
|
||
|
|
||
|
# API server (delta)
|
||
|
api:
|
||
|
image: ghcr.io/revoltchat/server:latest
|
||
|
env_file: .env
|
||
|
depends_on:
|
||
|
- database
|
||
|
- redis
|
||
|
- caddy
|
||
|
restart: always
|
||
|
volumes:
|
||
|
- './Revolt.toml:/Revolt.toml'
|
||
|
|
||
|
# Events service (quark)
|
||
|
events:
|
||
|
image: ghcr.io/revoltchat/bonfire:latest
|
||
|
env_file: .env
|
||
|
depends_on:
|
||
|
- database
|
||
|
- redis
|
||
|
- caddy
|
||
|
restart: always
|
||
|
volumes:
|
||
|
- './Revolt.toml:/Revolt.toml'
|
||
|
|
||
|
# Web App (revite)
|
||
|
web:
|
||
|
image: ghcr.io/revoltchat/client:master
|
||
|
env_file: .env
|
||
|
depends_on:
|
||
|
- caddy
|
||
|
restart: always
|
||
|
|
||
|
# File server (autumn)
|
||
|
autumn:
|
||
|
image: ghcr.io/revoltchat/autumn:latest
|
||
|
env_file: .env
|
||
|
depends_on:
|
||
|
- database
|
||
|
- createbuckets
|
||
|
- caddy
|
||
|
environment:
|
||
|
- AUTUMN_MONGO_URI=mongodb://database
|
||
|
restart: always
|
||
|
|
||
|
# Metadata and image proxy (january)
|
||
|
january:
|
||
|
image: ghcr.io/revoltchat/january:latest
|
||
|
depends_on:
|
||
|
- caddy
|
||
|
restart: always
|
||
|
|
||
|
# Create buckets for minio.
|
||
|
createbuckets:
|
||
|
image: minio/mc
|
||
|
depends_on:
|
||
|
- minio
|
||
|
env_file: .env
|
||
|
entrypoint: >
|
||
|
/bin/sh -c "
|
||
|
/usr/bin/mc config host add minio http://minio:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD;
|
||
|
while ! /usr/bin/mc ready minio; do echo 'Waiting minio...' && sleep 1; done;
|
||
|
/usr/bin/mc mb minio/attachments;
|
||
|
/usr/bin/mc mb minio/avatars;
|
||
|
/usr/bin/mc mb minio/backgrounds;
|
||
|
/usr/bin/mc mb minio/icons;
|
||
|
/usr/bin/mc mb minio/banners;
|
||
|
/usr/bin/mc mb minio/emojis;
|
||
|
exit 0;
|
||
|
"
|
||
|
|
||
|
volumes:
|
||
|
grafana_storage: {}
|
||
|
prometheus_storage: {}
|