diff --git a/Revolt/docker-compose.yml b/Revolt/docker-compose.yml new file mode 100644 index 0000000..7af27d6 --- /dev/null +++ b/Revolt/docker-compose.yml @@ -0,0 +1,107 @@ +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; + "