Add compose.yaml
This commit is contained in:
@@ -0,0 +1,92 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
traefik:
|
||||||
|
image: "traefik:${TRAEFIK_VERSION}"
|
||||||
|
restart: "always"
|
||||||
|
command:
|
||||||
|
- "--api=true"
|
||||||
|
- "--providers.docker=true"
|
||||||
|
- "--providers.docker.exposedbydefault=false"
|
||||||
|
- "--entrypoints.web.address=:80"
|
||||||
|
- "--entrypoints.websecure.address=:443"
|
||||||
|
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
|
||||||
|
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
|
||||||
|
- "--certificatesresolvers.letls.acme.email=admin@${DOMAIN}"
|
||||||
|
- "--certificatesresolvers.letls.acme.storage=/certs/acme.json"
|
||||||
|
- "--certificatesresolvers.letls.acme.httpchallenge=true"
|
||||||
|
- "--certificatesresolvers.letls.acme.httpchallenge.entrypoint=web"
|
||||||
|
ports:
|
||||||
|
- "443:443"
|
||||||
|
- "80:80"
|
||||||
|
volumes:
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
- traefik_certs:/certs
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
image: "nginx:${NGINX_VERSION}"
|
||||||
|
restart: "always"
|
||||||
|
volumes:
|
||||||
|
- nginx_conf:/etc/nginx/conf.d
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.nginx.entrypoints=websecure
|
||||||
|
- traefik.http.routers.nginx.rule=Host(`${DOMAIN}`)
|
||||||
|
- traefik.http.routers.nginx.tls=true
|
||||||
|
- traefik.http.routers.nginx.tls.certresolver=letls
|
||||||
|
|
||||||
|
synapse:
|
||||||
|
image: "docker.io/matrixdotorg/synapse:${SYNAPSE_VERSION}"
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
|
||||||
|
volumes:
|
||||||
|
- synapse_data:/data
|
||||||
|
depends_on:
|
||||||
|
- synapse_db
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.synapse.entrypoints=websecure
|
||||||
|
- traefik.http.routers.synapse.rule=Host(`matrix.${DOMAIN}`)
|
||||||
|
- traefik.http.routers.synapse.tls=true
|
||||||
|
- traefik.http.routers.synapse.tls.certresolver=letls
|
||||||
|
|
||||||
|
synapse_db:
|
||||||
|
image: "docker.io/postgres:${POSTGRES_VERSION}"
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=synapse
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
|
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
|
||||||
|
volumes:
|
||||||
|
- synapse_db_data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
coturn:
|
||||||
|
image: "instrumentisto/coturn:${COTURN_VERSION}"
|
||||||
|
restart: "unless-stopped"
|
||||||
|
volumes:
|
||||||
|
- coturn:/etc/coturn
|
||||||
|
ports:
|
||||||
|
- "49160-49200:49160-49200/udp"
|
||||||
|
- "3478:3478"
|
||||||
|
- "5349:5349"
|
||||||
|
|
||||||
|
element:
|
||||||
|
image: "vectorim/element-web:${ELEMENT_VERSION}"
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- element:/app
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.element.entrypoints=websecure
|
||||||
|
- traefik.http.routers.element.rule=Host(`web.${DOMAIN}`)
|
||||||
|
- traefik.http.routers.element.tls=true
|
||||||
|
- traefik.http.routers.element.tls.certresolver=letls
|
||||||
|
- traefik.http.services.element.loadbalancer.server.port=80
|
||||||
|
volumes:
|
||||||
|
traefik_certs:
|
||||||
|
nginx_conf:
|
||||||
|
synapse_data:
|
||||||
|
synapse_db_data:
|
||||||
|
coturn:
|
||||||
|
element:
|
||||||
Reference in New Issue
Block a user