You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Revolt_docker/compose.yml

109 lines
2.2 KiB
YAML

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;
"