Revolt 是在不牺牲任何可用性的情况下与您的朋友和社区保持联系的最佳方式之一。我们只关注用户,您可以确保您的对话是保密的,您的数据是安全的。

docker-compose.yml
version: "3.8"
services:
database:
image: mongo:4.4.2
container_name: revolt-database
restart: always
volumes:
- ./data:/data/db
redis:
image: eqalpha/keydb
container_name: revolt-redis
restart: always
minio:
image: minio/minio
container_name: revolt-minio
command: server /data
env_file: .env.example
volumes:
- ./minio:/data
restart: always
caddy:
image: caddy
container_name: revolt-caddy
restart: always
env_file: .env.example
ports:
- "11080:80"
- "11443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy-data:/data
- ./caddy-config:/config
api:
image: ghcr.io/revoltchat/server
container_name: revolt-api
env_file: .env.example
depends_on:
- database
- redis
- caddy
restart: always
events:
image: ghcr.io/revoltchat/bonfire
container_name: revolt-events
env_file: .env.example
depends_on:
- database
- redis
- caddy
restart: always
web:
image: ghcr.io/revoltchat/client:master
container_name: revolt-web
env_file: .env.example
depends_on:
- caddy
restart: always
autumn:
image: ghcr.io/revoltchat/autumn
container_name: revolt-autumn
env_file: .env.example
depends_on:
- database
- createbuckets
- caddy
environment:
- AUTUMN_MONGO_URI=mongodb://database
restart: always
january:
image: ghcr.io/revoltchat/january
container_name: revolt-january
depends_on:
- caddy
restart: always
createbuckets:
image: minio/mc
container_name: revolt-mc
depends_on:
- minio
env_file: .env.example
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;
"
.env.example
##
## Quark configuration
##
# MongoDB
MONGODB=mongodb://database
# Redis
REDIS_URI=redis://redis/
# Hostname used for Caddy
# This should in most cases match REVOLT_APP_URL
#HOSTNAME=http://local.revolt.chat
HOSTNAME=:80
# URL to where the Revolt app is publicly accessible
REVOLT_APP_URL=http://192.168.131.78:11080
# URL to where the API is publicly accessible
REVOLT_PUBLIC_URL=http://192.168.131.78:11080/api
VITE_API_URL=http://192.168.131.78:11080/api
# URL to where the WebSocket server is publicly accessible
REVOLT_EXTERNAL_WS_URL=ws://192.168.131.78:11080/ws
# URL to where Autumn is publicly available
AUTUMN_PUBLIC_URL=http://192.168.131.78:11080/autumn
# URL to where January is publicly available
JANUARY_PUBLIC_URL=http://192.168.131.78:11080/january
##
## hCaptcha Settings
##
# If you are sure that you don't want to use hCaptcha, set to 1.
REVOLT_UNSAFE_NO_CAPTCHA=1
# hCaptcha API key (This is the "Secret key" from your User Settings page)
# REVOLT_HCAPTCHA_KEY=0x0000000000000000000000000000000000000000
# hCaptcha site key
# REVOLT_HCAPTCHA_SITEKEY=10000000-ffff-ffff-ffff-000000000001
##
## Email Settings
##
# If you are sure that you don't want to use email verification, set to 1.
REVOLT_UNSAFE_NO_EMAIL=1
# SMTP host
# REVOLT_SMTP_HOST=smtp.example.com
# SMTP username
# REVOLT_SMTP_USERNAME=noreply@example.com
# SMTP password
# REVOLT_SMTP_PASSWORD=CHANGEME
# SMTP From header
# REVOLT_SMTP_FROM=Revolt <noreply@example.com>
##
## Application Settings
##
# Whether to only allow users to sign up if they have an invite code
REVOLT_INVITE_ONLY=0
# Maximum number of people that can be in a group chat
REVOLT_MAX_GROUP_SIZE=150
# VAPID keys for push notifications
# Generate using this guide: https://gitlab.insrt.uk/revolt/delta/-/wikis/vapid
# --> Please replace these keys before going into production! <--
REVOLT_VAPID_PRIVATE_KEY=LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUJSUWpyTWxLRnBiVWhsUHpUbERvcEliYk1yeVNrNXpKYzVYVzIxSjJDS3hvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFWnkrQkg2TGJQZ2hEa3pEempXOG0rUXVPM3pCajRXT1phdkR6ZU00c0pqbmFwd1psTFE0WAp1ZDh2TzVodU94QWhMQlU3WWRldVovWHlBdFpWZmNyQi9BPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
REVOLT_VAPID_PUBLIC_KEY=BGcvgR-i2z4IQ5Mw841vJvkLjt8wY-FjmWrw83jOLCY52qcGZS0OF7nfLzuYbjsQISwVO2HXrmf18gLWVX3Kwfw=
##
## Autumn configuration
##
# S3 Region
AUTUMN_S3_REGION=minio
# S3 Endpoint
AUTUMN_S3_ENDPOINT=http://minio:9000
# MinIO Root User
MINIO_ROOT_USER=minioautumn
# MinIO Root Password
MINIO_ROOT_PASSWORD=minioautumn
# AWS Access Key ID
AWS_ACCESS_KEY_ID=minioautumn
# AWS Secret Key
AWS_SECRET_ACCESS_KEY=minioautumn
Caddyfile
{$HOSTNAME} {
route /api* {
uri strip_prefix /api
reverse_proxy http://api:8000
}
route /ws {
@upgrade {
header Connection *Upgrade*
header Upgrade websocket
}
uri strip_prefix /ws
reverse_proxy @upgrade http://events:9000
}
route /autumn* {
uri strip_prefix /autumn
reverse_proxy http://autumn:3000
}
route /january* {
uri strip_prefix /january
reverse_proxy http://january:7000
}
reverse_proxy http://web:5000
}