version: "3.4" services: postgres: hostname: postgres image: postgres:14 restart: always volumes: - ./postgres/create_db.sh:/docker-entrypoint-initdb.d/20-create_db.sh # To persist your PostgreSQL databases outside of the Docker image, # to prevent data loss, modify the following ./path_to path: - ./path_to/postgresql:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: itsasecret POSTGRES_USER: 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: # To persist your NATS JetStream streams outside of the Docker image, # prevent data loss, modify the following ./path_to path: - ./path_to/nats:/var/lib/nats networks: - internal client_api: hostname: client_api image: matrixdotorg/dendrite-polylith:latest command: clientapi volumes: - ./config:/etc/dendrite depends_on: - jetstream - postgres networks: - internal restart: unless-stopped media_api: hostname: media_api image: matrixdotorg/dendrite-polylith:latest command: mediaapi volumes: - ./config:/etc/dendrite - ./media:/var/dendrite/media networks: - internal restart: unless-stopped sync_api: hostname: sync_api image: matrixdotorg/dendrite-polylith:latest command: syncapi volumes: - ./config:/etc/dendrite depends_on: - jetstream - postgres networks: - internal restart: unless-stopped room_server: hostname: room_server image: matrixdotorg/dendrite-polylith:latest command: roomserver volumes: - ./config:/etc/dendrite depends_on: - jetstream - postgres networks: - internal restart: unless-stopped federation_api: hostname: federation_api image: matrixdotorg/dendrite-polylith:latest command: federationapi volumes: - ./config:/etc/dendrite depends_on: - jetstream - postgres networks: - internal restart: unless-stopped key_server: hostname: key_server image: matrixdotorg/dendrite-polylith:latest command: keyserver volumes: - ./config:/etc/dendrite depends_on: - jetstream - postgres networks: - internal restart: unless-stopped user_api: hostname: user_api image: matrixdotorg/dendrite-polylith:latest command: userapi volumes: - ./config:/etc/dendrite depends_on: - jetstream - postgres networks: - internal restart: unless-stopped appservice_api: hostname: appservice_api image: matrixdotorg/dendrite-polylith:latest command: appservice volumes: - ./config:/etc/dendrite networks: - internal depends_on: - jetstream - postgres - room_server - user_api restart: unless-stopped networks: internal: attachable: true