name: stoat services: # MongoDB: Database database: image: docker.io/mongo restart: always volumes: - ./data/db:/data/db healthcheck: test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet interval: 10s timeout: 10s retries: 5 start_period: 10s # Redis: Event message broker & KV store redis: image: docker.io/eqalpha/keydb restart: always # RabbitMQ: Internal message broker source: ./Revolt.toml target: /Revolt.toml restart: always # Metadata and image proxy january: image: ghcr.io/stoatchat/proxy:v0.11.1 volumes: - type: bind source: ./Revolt.toml target: /Revolt.toml restart: always # Tenor proxy gifbox: image: ghcr.io/stoatchat/gifbox:v0.11.1 volumes: - type: bind source: ./Revolt.toml target: /Revolt.toml restart: always # Regular task daemon restart: always # Create buckets for minio. createbuckets: image: docker.io/minio/mc depends_on: - minio entrypoint: > /bin/sh -c " while ! /usr/bin/mc ready minio; do /usr/bin/mc alias set minio http://minio:9000 minioautumn minioautumn; echo 'Waiting minio...' && sleep 1; done; /usr/bin/mc mb minio/revolt-uploads; exit 0; " # Web App web: image: ghcr.io/stoatchat/for-web:addb6b7 restart: always env_file: .env.web