remove depends_on statements that abra doesn't like, add environment vars, add volumes, remove smtp_pass

This commit is contained in:
2025-04-30 17:54:11 -04:00
parent de8bc970a7
commit 47f32df269

View File

@ -1,4 +1,3 @@
---
version: "3.8"
services:
@ -6,32 +5,54 @@ services:
app:
image: ghcr.io/revoltchat/server:20250210-1
depends_on:
database:
condition: service_healthy
redis:
condition: service_started
rabbit:
condition: service_healthy
- database
- redis
- rabbit
environment:
- HOSTNAME
- REVOLT_PUBLIC_URL
- INVITE_ONLY_ENABLED
- EMAIL_VERIFICATION_ENABLED
- SMTP_HOST
- SMTP_USERNAME
- SMTP_FROM_ADDRESS
- SMTP_REPLY_TO
- SMTP_PORT
- SMTP_USE_TLS
- SECURITY_CAPTCHA_ENABLED
- SECURITY_CLAMV_HOST
- NOTIFICATIONS_WEBOOKS_ENABLED
- NOTIFICATIONS_MASS_MENTIONS_PUSH_NOTIF
- NOTIFICATIONS_MASS_MENTIONS_ENABLED
- NOTIFICATIONS_FCM_ENABLED
- NOTIFICATIONS_APN_ENABLED
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80"
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.services.api.loadbalancer.server.port=14702"
- "traefik.http.routers.api.rule=Host(`${DOMAIN}`) && PathPrefix(`/api`)"
- "traefik.http.routers.api.entrypoints=web-secure"
- "traefik.http.routers.api.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.middlewares.api-stripprefix.stripprefix.prefixes=/api"
- "traefik.http.routers.api.middlewares=api-stripprefix"
- "coop-cloud.${STACK_NAME}.version=0.1.0+0.8.2"
configs:
- source: revolt_toml
target: /Revolt.toml
secrets:
- file_encrypt_token
- public_key
- private_key
- rabbit_password
networks:
internal:
proxy:
database:
image: docker.io/mongo
restart: always
volumes:
- db:/data/db
healthcheck:
@ -43,19 +64,20 @@ services:
networks:
internal:
redis:
image: docker.io/eqalpha/keydb
image: docker.io/eqalpha/keydb:x86_64_v6.3.4
networks:
internal:
rabbit:
image: docker.io/rabbitmq:4
restart: always
image: docker.io/rabbitmq:4.1.0
environment:
RABBITMQ_DEFAULT_USER: rabbituser
RABBITMQ_DEFAULT_PASS: rabbitpass
volumes:
- ./data/rabbit:/var/lib/rabbitmq
- rabbit:/var/lib/rabbitmq
healthcheck:
test: rabbitmq-diagnostics -q ping
interval: 10s
@ -65,11 +87,12 @@ services:
networks:
internal:
minio:
image: docker.io/minio/minio
image: docker.io/minio/minio:RELEASE.2025-04-22T22-12-26Z
command: server /data
volumes:
- ./data/minio:/data
- minio:/data
environment:
MINIO_ROOT_USER: minioautumn
MINIO_ROOT_PASSWORD: minioautumn
@ -77,77 +100,166 @@ services:
networks:
internal:
events:
image: ghcr.io/revoltchat/bonfire:20250210-1
depends_on:
database:
condition: service_healthy
redis:
condition: service_started
- database
- redis
environment:
- HOSTNAME
- REVOLT_PUBLIC_URL
- INVITE_ONLY_ENABLED
- EMAIL_VERIFICATION_ENABLED
- SMTP_HOST
- SMTP_USERNAME
- SMTP_FROM_ADDRESS
- SMTP_REPLY_TO
- SMTP_PORT
- SMTP_USE_TLS
- SECURITY_CAPTCHA_ENABLED
- SECURITY_CLAMV_HOST
- NOTIFICATIONS_WEBOOKS_ENABLED
- NOTIFICATIONS_MASS_MENTIONS_PUSH_NOTIF
- NOTIFICATIONS_MASS_MENTIONS_ENABLED
- NOTIFICATIONS_FCM_ENABLED
- NOTIFICATIONS_APN_ENABLED
configs:
- source: revolt_toml
target: /Revolt.toml
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.services.events.loadbalancer.server.port=14703"
- "traefik.http.routers.events.rule=Host(`${DOMAIN}`) && PathPrefix(`/ws`)"
- "traefik.http.routers.events.entrypoints=web-secure"
- "traefik.http.routers.events.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.middlewares.ws-stripprefix.stripprefix.prefixes=/ws"
- "traefik.http.routers.events.middlewares=ws-stripprefix"
networks:
internal:
proxy:
web:
image: ghcr.io/revoltchat/client:1.0.1
environment:
- HOSTNAME
- REVOLT_PUBLIC_URL
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.services.web.loadbalancer.server.port=5000"
- "traefik.http.routers.web.rule=Host(`${DOMAIN}`) && !PathPrefix(`/api`, `/ws`, `/autumn`, `/january`)"
- "traefik.http.routers.web.entrypoints=web-secure"
- "traefik.http.routers.web.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.web.priority=1"
networks:
internal:
proxy:
autumn:
image: ghcr.io/revoltchat/autumn:20250210-1
depends_on:
database:
condition: service_healthy
createbuckets:
condition: service_started
- database
- createbuckets
environment:
- HOSTNAME
- REVOLT_PUBLIC_URL
- INVITE_ONLY_ENABLED
- EMAIL_VERIFICATION_ENABLED
- SMTP_HOST
- SMTP_USERNAME
- SMTP_FROM_ADDRESS
- SMTP_REPLY_TO
- SMTP_PORT
- SMTP_USE_TLS
- SECURITY_CAPTCHA_ENABLED
- SECURITY_CLAMV_HOST
configs:
- source: revolt_toml
target: /Revolt.toml
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.services.autumn.loadbalancer.server.port=14704"
- "traefik.http.routers.autumn.rule=Host(`${DOMAIN}`) && PathPrefix(`/autumn`)"
- "traefik.http.routers.autumn.entrypoints=web-secure"
- "traefik.http.routers.autumn.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.middlewares.autumn-stripprefix.stripprefix.prefixes=/autumn"
- "traefik.http.routers.autumn.middlewares=autumn-stripprefix"
networks:
internal:
proxy:
# Metadata and image proxy
january:
image: ghcr.io/revoltchat/january:20250210-1
environment:
- HOSTNAME
- REVOLT_PUBLIC_URL
configs:
- source: revolt_toml
target: /Revolt.toml
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.services.january.loadbalancer.server.port=14705"
- "traefik.http.routers.january.rule=Host(`${DOMAIN}`) && PathPrefix(`/january`)"
- "traefik.http.routers.january.entrypoints=web-secure"
- "traefik.http.routers.january.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.middlewares.january-stripprefix.stripprefix.prefixes=/january"
- "traefik.http.routers.january.middlewares=january-stripprefix"
networks:
internal:
proxy:
# Regular task daemon
crond:
image: ghcr.io/revoltchat/crond:20250210-1-debug
depends_on:
database:
condition: service_healthy
minio:
condition: service_started
- database
- minio
environment:
- HOSTNAME
- REVOLT_PUBLIC_URL
- INVITE_ONLY_ENABLED
- EMAIL_VERIFICATION_ENABLED
- SMTP_HOST
- SMTP_USERNAME
- SMTP_FROM_ADDRESS
- SMTP_REPLY_TO
- SMTP_PORT
- SMTP_USE_TLS
configs:
- source: revolt_toml
target: /Revolt.toml
networks:
internal:
# Push notification daemon
pushd:
image: ghcr.io/revoltchat/pushd:20250210-1
depends_on:
database:
condition: service_healthy
redis:
condition: service_started
rabbit:
condition: service_healthy
- database
- redis
- rabbit
environment:
- HOSTNAME
- REVOLT_PUBLIC_URL
- NOTIFICATIONS_WEBOOKS_ENABLED
- NOTIFICATIONS_MASS_MENTIONS_PUSH_NOTIF
- NOTIFICATIONS_MASS_MENTIONS_ENABLED
- NOTIFICATIONS_FCM_ENABLED
- NOTIFICATIONS_APN_ENABLED
configs:
- source: revolt_toml
target: /Revolt.toml
networks:
internal:
createbuckets:
image: docker.io/minio/mc
depends_on:
@ -160,15 +272,24 @@ services:
networks:
internal:
networks:
proxy:
external: true
internal:
volumes:
db:
minio:
rabbit:
configs:
revolt_toml:
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
name: ${STACK_NAME}_revolt_toml_${REVOLT_TOML_VERSION}
file: Revolt.toml.tmpl
template_driver: golang
template_driver: golang
secrets:
file_encrypt_token:
@ -183,6 +304,3 @@ secrets:
rabbit_password:
name: ${STACK_NAME}_rabbit_password_${SECRET_RABBIT_PASSWORD_VERSION}
external: true
smtp_password:
name: ${STACK_NAME}_smtp_password_${SECRET_SMTP_PASSWORD_VERSION}
external: true