version: '3.8' services: # MongoDB database database: image: mongo:4.4.12-rc1 restart: always volumes: - ./data/db:/data/db # Redis server redis: image: eqalpha/keydb restart: always # REVOLT API server (Delta) api: image: revoltchat/server:0.5.3-alpha.8 env_file: .env depends_on: - database - redis environment: - REVOLT_MONGO_URI=mongodb://database - REVOLT_REDIS_URI=redis://redis/ ports: - "8000:8000" - "9000:9000" restart: always # REVOLT Web App web: image: revoltchat/client:master env_file: .env ports: - "5000:5000" restart: always # S3-compatible storage server minio: image: minio/minio command: server /data env_file: .env volumes: - ./data/minio:/data ports: - "10000:9000" 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; exit 0; " # REVOLT file hosting service (Autumn) autumn: image: revoltchat/autumn:master env_file: .env depends_on: - database - createbuckets environment: - AUTUMN_MONGO_URI=mongodb://database ports: - "3000:3000" restart: always # REVOLT metadata and image proxy (January) january: image: revoltchat/january:latest ports: - "7000:3000" restart: always