用户至上的聊天平台Revolt

用户至上的聊天平台Revolt

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

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;
      "
##
## 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
{$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
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注