dendrite/build/docker/docker-compose.polylith.yml
2023-01-26 13:02:27 +01:00

147 lines
3.2 KiB
YAML

version: "3.4"
services:
postgres:
hostname: postgres
image: postgres:15-alpine
restart: always
volumes:
# This will create a docker volume to persist the database files in.
# If you prefer those files to be outside of docker, you'll need to change this.
- dendrite_postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: itsasecret
POSTGRES_USER: dendrite
POSTGRES_DATABASE: dendrite
healthcheck:
test: ["CMD-SHELL", "pg_isready -U dendrite"]
interval: 5s
timeout: 5s
retries: 5
networks:
- internal
jetstream:
hostname: jetstream
image: nats:latest
command: |
--jetstream
--store_dir /var/lib/nats
--cluster_name Dendrite
volumes:
- dendrite_jetstream:/var/lib/nats
networks:
- internal
# This "component" will exit immediately, it's only purpose is
# to provide the common settings
component:
image: matrixdotorg/dendrite-polylith:latest
restart: "no"
networks:
- internal
volumes:
- ./config:/etc/dendrite
depends_on:
jetstream:
condition: service_started
postgres:
condition: service_healthy
client_api:
extends:
service: component
hostname: client_api
command: clientapi
restart: unless-stopped
depends_on:
user_api:
condition: service_started
media_api:
extends:
service: component
hostname: media_api
command: mediaapi
restart: unless-stopped
volumes:
- dendrite_media:/var/dendrite/media
sync_api:
extends:
service: component
hostname: sync_api
command: syncapi
restart: unless-stopped
volumes:
- dendrite_search_index:/var/dendrite/searchindex
depends_on:
room_server:
condition: service_started
user_api:
condition: service_started
key_server:
condition: service_started
room_server:
extends:
service: component
hostname: room_server
command: roomserver
restart: unless-stopped
federation_api:
extends:
service: component
hostname: federation_api
command: federationapi
restart: unless-stopped
depends_on:
room_server:
condition: service_started
key_server:
extends:
service: component
hostname: key_server
command: keyserver
restart: unless-stopped
depends_on:
room_server:
condition: service_started
federation_api:
condition: service_started
user_api:
extends:
service: component
hostname: user_api
command: userapi
restart: unless-stopped
depends_on:
room_server:
condition: service_started
key_server:
condition: service_started
appservice_api:
extends:
service: component
hostname: appservice_api
command: appservice
restart: unless-stopped
depends_on:
room_server:
condition: service_started
user_api:
condition: service_started
networks:
internal:
attachable: true
volumes:
dendrite_jetstream:
dendrite_postgres_data:
dendrite_media:
dendrite_search_index: