|
|
|
name: revolt
|
|
|
|
|
|
|
|
services:
|
|
|
|
# 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
|
|
|
|
volumes:
|
|
|
|
- ./data/minio:/data
|
|
|
|
environment:
|
|
|
|
MINIO_ROOT_USER: minioautumn
|
|
|
|
MINIO_ROOT_PASSWORD: minioautumn
|
|
|
|
MINIO_DOMAIN: minio
|
|
|
|
networks:
|
|
|
|
default:
|
|
|
|
aliases:
|
|
|
|
- revolt-uploads.minio
|
|
|
|
# legacy support:
|
|
|
|
- attachments.minio
|
|
|
|
- avatars.minio
|
|
|
|
- backgrounds.minio
|
|
|
|
- icons.minio
|
|
|
|
- banners.minio
|
|
|
|
- emojis.minio
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
# Caddy web server
|
|
|
|
caddy:
|
|
|
|
image: caddy
|
|
|
|
restart: always
|
|
|
|
env_file: .env.web
|
|
|
|
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:20241024-1
|
|
|
|
depends_on:
|
|
|
|
- database
|
|
|
|
- redis
|
|
|
|
volumes:
|
|
|
|
- ./Revolt.toml:/Revolt.toml
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
# Events service (quark)
|
|
|
|
events:
|
|
|
|
image: ghcr.io/revoltchat/bonfire:20241024-1
|
|
|
|
depends_on:
|
|
|
|
- database
|
|
|
|
- redis
|
|
|
|
volumes:
|
|
|
|
- ./Revolt.toml:/Revolt.toml
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
# Web App (revite)
|
|
|
|
web:
|
|
|
|
image: ghcr.io/revoltchat/client:master
|
|
|
|
restart: always
|
|
|
|
env_file: .env.web
|
|
|
|
|
|
|
|
# File server (autumn)
|
|
|
|
autumn:
|
|
|
|
image: ghcr.io/revoltchat/autumn:20241024-1
|
|
|
|
depends_on:
|
|
|
|
- database
|
|
|
|
- createbuckets
|
|
|
|
volumes:
|
|
|
|
- ./Revolt.toml:/Revolt.toml
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
# Metadata and image proxy (january)
|
|
|
|
january:
|
|
|
|
image: ghcr.io/revoltchat/january:20241024-1
|
|
|
|
volumes:
|
|
|
|
- ./Revolt.toml:/Revolt.toml
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
# Create buckets for minio.
|
|
|
|
createbuckets:
|
|
|
|
image: minio/mc
|
|
|
|
depends_on:
|
|
|
|
- minio
|
|
|
|
entrypoint: >
|
|
|
|
/bin/sh -c "
|
|
|
|
while ! /usr/bin/mc ready minio; do
|
|
|
|
/usr/bin/mc config host add minio http://minio:9000 minioautumn minioautumn;
|
|
|
|
echo 'Waiting minio...' && sleep 1;
|
|
|
|
done;
|
|
|
|
/usr/bin/mc mb minio/revolt-uploads;
|
|
|
|
exit 0;
|
|
|
|
"
|