108 lines
2.3 KiB
YAML
108 lines
2.3 KiB
YAML
|
version: "3.8"
|
||
|
|
||
|
services:
|
||
|
# MongoDB database
|
||
|
database:
|
||
|
image: mongo
|
||
|
restart: always
|
||
|
ports:
|
||
|
- "27017:27017"
|
||
|
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
|
||
|
|
||
|
# Caddy web server
|
||
|
caddy:
|
||
|
image: caddy
|
||
|
restart: always
|
||
|
env_file: .env
|
||
|
ports:
|
||
|
- "1234:80"
|
||
|
# Change the port allocations to the following if you want to reverse proxy with this Caddy container:
|
||
|
#ports:
|
||
|
#- "80:80"
|
||
|
#- "443:443"
|
||
|
volumes:
|
||
|
- ./Caddyfile:/etc/caddy/Caddyfile
|
||
|
- ./data/caddy-data:/data
|
||
|
- ./data/caddy-config:/config
|
||
|
|
||
|
# API server (delta)
|
||
|
api:
|
||
|
image: ghcr.io/revoltchat/server:20230704-1
|
||
|
env_file: .env
|
||
|
depends_on:
|
||
|
- database
|
||
|
- redis
|
||
|
- caddy
|
||
|
restart: always
|
||
|
|
||
|
# Events service (quark)
|
||
|
events:
|
||
|
image: ghcr.io/revoltchat/bonfire:20230704-1
|
||
|
env_file: .env
|
||
|
depends_on:
|
||
|
- database
|
||
|
- redis
|
||
|
- caddy
|
||
|
restart: always
|
||
|
|
||
|
# 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:1.1.10
|
||
|
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:master
|
||
|
depends_on:
|
||
|
- caddy
|
||
|
restart: always
|
||
|
|
||
|
# Create buckets for minio.
|
||
|
createbuckets:
|
||
|
image: minio/mc
|
||
|
depends_on:
|
||
|
- minio
|
||
|
env_file: .env
|
||
|
entrypoint: >
|
||
|
/bin/sh -c "
|
||
|
while ! curl -s --output /dev/null --connect-timeout 1 http://minio:9000; do echo 'Waiting minio...' && sleep 0.1; done;
|
||
|
/usr/bin/mc alias set minio http://minio:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD;
|
||
|
/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;
|
||
|
"
|