68 lines
1.4 KiB
YAML
68 lines
1.4 KiB
YAML
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 |