ArcticFoxes-Synapse-Docker-.../docker-compose.yml

168 lines
4.1 KiB
YAML
Raw Permalink Normal View History

2022-01-13 15:22:49 +00:00
# This compose file is compatible with Compose itself, it might need some
# adjustments to run properly with stack.
version: '3'
services:
synapse:
# Use docker.io/matrixdotorg/synapse:latest if you want the official image (without the Mjolnir module).
image: ghcr.io/tommytran732/synapse:latest
2022-01-13 15:22:49 +00:00
# Since synapse does not retry to connect to the database, restart upon
# failure
2022-01-13 15:40:59 +00:00
container_name: synapse
restart: unless-stopped
# Comment out the next line if you are using the official image.
user: "991:991"
2022-01-13 15:22:49 +00:00
# See the readme for a full documentation of the environment settings
# NOTE: You must edit homeserver.yaml to use postgres, it defaults to sqlite
environment:
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
volumes:
- ./files:/data:Z
2022-01-17 21:03:56 +00:00
# Uncomment if you want to install appservices. The registration files should go into ./bridges, and in your homeserver.yaml specify that it should install the appservices in /bridges.
2022-01-17 21:11:03 +00:00
# - ./bridges:/bridges:Z
2022-01-13 15:22:49 +00:00
depends_on:
2022-01-13 15:40:32 +00:00
- postgres
2022-01-13 15:26:55 +00:00
networks:
2022-01-13 16:03:12 +00:00
- matrix
- postgres
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
#Runtime should always be runc, otherwise load average with gVisor will be extremely high
runtime: runc
2022-01-13 15:22:49 +00:00
2022-01-13 15:40:32 +00:00
postgres:
image: docker.io/postgres-15:alpine
2022-01-13 15:40:32 +00:00
container_name: postgres
restart: unless-stopped
2022-01-13 15:22:49 +00:00
# Change that password, of course!
environment:
- POSTGRES_USER=synapse
- POSTGRES_PASSWORD=changeme
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
volumes:
- ./schemas:/var/lib/postgresql/data:Z
2022-01-13 15:26:55 +00:00
networks:
- postgres
healthcheck:
test: ["CMD", "pg_isready", "-U", "synapse"]
interval: 15s
timeout: 5s
#user: "70:70"
#read_only: true
#security_opt:
# - no-new-privileges:true
#cap_drop:
# - ALL
#tmpfs:
# - /var/run/postgresql:size=50M,mode=0770,uid=70,gid=70,noexec,nosuid,nodev
shm_size: 1g
#Runtime should always be runc, otherwise load average with gVisor will be extremely high
runtime: runc
2022-01-13 15:26:55 +00:00
2022-01-13 15:40:32 +00:00
element:
2022-01-13 16:02:06 +00:00
image: vectorim/element-web:latest
2022-01-13 15:40:32 +00:00
container_name: element
restart: unless-stopped
2022-01-13 16:03:39 +00:00
volumes:
- ./element/config.json:/app/config.json:Z
2022-01-13 15:40:32 +00:00
networks:
- element
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
- CAP_NET_BIND_SERVICE
tmpfs:
- /var/run:size=50M,mode=0770,noexec,nosuid,nodev
- /var/cache/nginx:size=50M,mode=0770,noexec,nosuid,nodev
2022-01-13 15:40:32 +00:00
matrix-to:
image: ghcr.io/tommytran732/matrix.to
container_name: matrix-to
restart: unless-stopped
networks:
- matrix-to
user: 992:992
security_opt:
- no-new-privileges:true
- label:disable
cap_drop:
- ALL
2022-01-13 15:26:55 +00:00
swag:
image: ghcr.io/linuxserver/swag
container_name: swag
restart: unless-stopped
2022-01-13 15:26:55 +00:00
environment:
- PUID=1000
- PGID=1000
2022-01-13 16:50:31 +00:00
- URL=yourdomain.tld
2022-01-15 15:45:33 +00:00
- SUBDOMAINS=synapse,element
2022-01-13 15:26:55 +00:00
- VALIDATION=http
2022-01-13 16:50:31 +00:00
- EMAIL=changeme@yourdomain.tld
2022-01-13 15:26:55 +00:00
- ONLY_SUBDOMAINS=true
volumes:
- ./swag:/config:Z
- /etc/localtime:/etc/localtime:ro
ports:
- 443:443
- 80:80
- 8448:8448
2022-01-13 15:26:55 +00:00
networks:
2022-01-13 16:03:12 +00:00
- matrix
- element
- mjolnir
security_opt:
- no-new-privileges:true
cap_add:
- NET_ADMIN
2022-01-13 16:30:41 +00:00
2022-07-01 04:15:15 +00:00
pantalaimon:
2022-07-04 17:37:35 +00:00
image: matrixdotorg/pantalaimon:latest
2022-07-01 04:15:15 +00:00
container_name: pantalaimon
restart: unless-stopped
volumes:
- ./pantalaimon:/data:Z
depends_on:
- synapse
networks:
- pantalaimon
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
2022-07-01 04:15:15 +00:00
2022-07-01 03:41:55 +00:00
mjolnir:
image: matrixdotorg/mjolnir:latest
container_name: mjolnir
2022-07-01 04:15:15 +00:00
restart: unless-stopped
2022-07-01 03:41:55 +00:00
volumes:
- ./mjolnir:/data:Z
2022-07-01 04:15:15 +00:00
depends_on:
- pantalaimon
networks:
- pantalaimon
- mjolnir
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
2022-07-01 04:15:15 +00:00
2022-01-13 16:30:41 +00:00
networks:
matrix:
postgres:
element:
pantalaimon:
mjolnir: