blob: eb0f35419e172ead464872f485d20ff8808f5d2e (
plain) (
tree)
|
|
version: "3.4"
services:
postgres:
image: postgres:13-alpine
networks:
- dbnet
volumes:
- db-data:/var/lib/postgresql/13/
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/pg_pass_secret
- POSTGRES_USER_FILE=/run/secrets/pg_user_secret
- POSTGRES_INITDB_ARGS_FILE=/run/secrets/pg_initdb_args_secret
- POSTGRES_DB_FILE=/run/secrets/pg_db_secret
secrets:
- pg_pass_secret
- pg_user_secret
- pg_initdb_args_secret
- pg_db_secret
synapse:
image: synapse
build:
context: ./synapse/
networks:
- matrixnet
- certnet
- dbnet
volumes:
- synapse-data:/data/
# - cert-data:/etc/letsencrypt/live/
# - ./synapse/homeserver.yaml:/data/homeserver.yaml
# - ./synapse/terminaldweller.com.signing.key:/data/terminaldweller.com.signing.key
# - ./synapse/terminaldweller.com.log.config:/data/terminaldweller.com.log.config
# entrypoint: ["tail", "-f", "/dev/null"]
# command: ["generate"]
depends_on:
- postgres
- haproxy
ports:
- "8008:8008"
# - "8484:8484/tcp"
# - "443:443"
environment:
- SYNAPSE_SERVER_NAME=terminaldweller.com
- SYNAPSE_REPORT_STATS=yes
- SYNAPSE_DATA_DIR=/data/
- SYNAPSE_CONFIG_DIR=/data/
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
# - TZ=Tehran/Asia
healthcheck:
test: ["CMD", "curl", "-fSs", "http://localhost:8008/health"]
interval: 1m
timeout: 10s
retries: 3
haproxy:
image: haproxy:lts-alpine
ports:
- "80:80"
- "443:443"
- "9999:9999"
- "8448:8448/tcp"
networks:
- matrixnet
- turnnet
- certnet
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
# - cert-data:/usr/local/etc/haproxy/certificates:ro
# - cert-data:/etc/certificates:ro
- certificates:/etc/certificates
depends_on:
- certbot
# restart: on-failure
certbot:
image: certbot
build:
context: ./certbot
ports:
- "9080:80"
- "9443:443"
networks:
- certnet
volumes:
# - cert-data:/etc/certificates
- certificates:/etc/certificates
- certbot-data:/etc/letsencrypt
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do . /etc/scripts/renew-certificates.sh ; sleep 12h & wait $${!}; done;'"
restart: always
command: ["certonly"]
# coturn:
# image: coturn/coturn:latest
# networks:
# - turnnet
# volumes:
# - ./coturn/turnserver.conf:/etc/turnserver.conf:ro
# ports:
# - "3478:3478"
# - "5349:5349"
# depends_on:
# - synapse
networks:
matrixnet:
certnet:
dbnet:
turnnet:
volumes:
db-data:
synapse-data:
cert-data:
certificates:
certbot-data:
secrets:
pg_pass_secret:
file: ./postgres/pg_pass_secret
pg_user_secret:
file: ./postgres/pg_user_secret
pg_initdb_args_secret:
file: ./postgres/pg_initdb_args_secret
pg_db_secret:
file: ./postgres/pg_db_secret
|