mirror of
https://github.com/c0mmando/hackliberty-conf.git
synced 2024-10-01 05:05:41 -04:00
705 lines
17 KiB
YAML
705 lines
17 KiB
YAML
version: '3.7'
|
|
|
|
networks:
|
|
matrix:
|
|
registration:
|
|
dimension:
|
|
gitea:
|
|
privatebin:
|
|
ots:
|
|
element:
|
|
chat:
|
|
lemmy:
|
|
bookstack:
|
|
tor:
|
|
write:
|
|
|
|
services:
|
|
synapse:
|
|
build: ./images/synapse-docker
|
|
restart: unless-stopped
|
|
container_name: synapse
|
|
user: "991:991"
|
|
environment:
|
|
- SYNAPSE_CONFIG_DIR=/data
|
|
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
|
|
volumes:
|
|
- ./files:/data:Z
|
|
depends_on:
|
|
- postgres
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
postgres:
|
|
image: docker.io/postgres:14.5-alpine
|
|
container_name: postgres
|
|
shm_size: 1g
|
|
user: "70:70"
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_USER}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- POSTGRES_DB=${POSTGRES_DB}
|
|
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
|
|
volumes:
|
|
- ./schemas:/var/lib/postgresql/data:Z
|
|
networks:
|
|
- matrix
|
|
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
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
swag:
|
|
image: ghcr.io/linuxserver/swag
|
|
restart: unless-stopped
|
|
container_name: swag
|
|
cap_add:
|
|
- NET_ADMIN
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- URL=${SWAG_URL}
|
|
- SUBDOMAINS=${SWAG_SUBDOMAINS}
|
|
- VALIDATION=http
|
|
- EMAIL=${SWAG_EMAIL}
|
|
- ONLY_SUBDOMAINS=false
|
|
volumes:
|
|
- ./swag:/config:Z
|
|
- /etc/localtime:/etc/localtime:ro
|
|
ports:
|
|
- 443:443
|
|
- 80:80
|
|
- 8448:8448
|
|
networks:
|
|
- matrix
|
|
- registration
|
|
- gitea
|
|
- privatebin
|
|
- ots
|
|
- element
|
|
- chat
|
|
- lemmy
|
|
- bookstack
|
|
- tor
|
|
- write
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
pantalaimon:
|
|
build: ./images/pantalaimon
|
|
container_name: pantalaimon
|
|
user: "911:911"
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./pantalaimon_data:/data:Z
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
read_only: true
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
mjolnir:
|
|
build: ./images/mjolnir
|
|
container_name: mjolnir
|
|
user: "911:911"
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./mjolnir:/data:Z
|
|
depends_on:
|
|
- pantalaimon
|
|
networks:
|
|
- matrix
|
|
read_only: true
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
maubot:
|
|
image: dock.mau.dev/maubot/maubot
|
|
container_name: maubot
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./maubot:/data:Z
|
|
networks:
|
|
- matrix
|
|
|
|
matrix-registration:
|
|
build: ./images/synapse-captcha
|
|
container_name: matrix-registration
|
|
restart: unless-stopped
|
|
command: [
|
|
"--config-path=/data/config.yaml",
|
|
"serve"
|
|
]
|
|
volumes:
|
|
- ./matrix-registration_data:/data:Z
|
|
networks:
|
|
- matrix
|
|
- tor
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
redis:
|
|
image: redis
|
|
container_name: redis
|
|
restart: unless-stopped
|
|
networks:
|
|
- matrix
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
dimension:
|
|
build: ./images/matrix-dimension
|
|
container_name: dimension
|
|
user: "1000:1000"
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./dimension:/data:Z
|
|
- ./dimension/config:/home/node/matrix-dimension/config/:Z
|
|
depends_on:
|
|
- dimension_db
|
|
networks:
|
|
- matrix
|
|
- dimension
|
|
read_only: true
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
dimension_db:
|
|
image: docker.io/postgres:14.5-alpine
|
|
container_name: dimension_db
|
|
user: "70:70"
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=${DIMENSION_DB_USER}
|
|
- POSTGRES_PASSWORD=${DIMENSION_DB_PASSWORD}
|
|
- POSTGRES_DB=${DIMENSION_DB_DB}
|
|
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
|
|
volumes:
|
|
- ./dimension/db:/var/lib/postgresql/data:Z
|
|
networks:
|
|
- dimension
|
|
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
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
grafana:
|
|
image: docker.io/grafana/grafana
|
|
container_name: grafana
|
|
user: "472:472"
|
|
volumes:
|
|
- ./grafana-data:/var/lib/grafana:Z
|
|
restart: unless-stopped
|
|
networks:
|
|
- matrix
|
|
|
|
prometheus:
|
|
image: docker.io/prom/prometheus
|
|
container_name: prometheus
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./prometheus:/etc/prometheus:Z
|
|
networks:
|
|
- matrix
|
|
command: --web.config.file=/etc/prometheus/web.yml --config.file=/etc/prometheus/prometheus.yml
|
|
|
|
node_exporter:
|
|
image: prom/node-exporter
|
|
container_name: node-exporter
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /proc:/host/proc:ro
|
|
- /sys:/host/sys:ro
|
|
- /:/rootfs:ro
|
|
command:
|
|
- '--path.procfs=/host/proc'
|
|
- '--path.rootfs=/rootfs'
|
|
- '--path.sysfs=/host/sys'
|
|
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
|
|
expose:
|
|
- 9100
|
|
networks:
|
|
- matrix
|
|
|
|
cadvisor:
|
|
image: gcr.io/cadvisor/cadvisor
|
|
container_name: cadvisor
|
|
command:
|
|
- '-port=9099'
|
|
- "--housekeeping_interval=30s"
|
|
- "--docker_only=true"
|
|
volumes:
|
|
- /:/rootfs:ro
|
|
- /var/run:/var/run:rw
|
|
- /sys:/sys:ro
|
|
- /var/lib/docker/:/var/lib/docker:ro
|
|
networks:
|
|
- matrix
|
|
|
|
postgres-exporter:
|
|
image: quay.io/prometheuscommunity/postgres-exporter
|
|
container_name: postgres-exporter
|
|
restart: always
|
|
environment:
|
|
- DATA_SOURCE_URI=postgres:5432/synapse?sslmode=disable
|
|
- DATA_SOURCE_USER=${POSTGRES_USER}
|
|
- DATA_SOURCE_PASS=${POSTGRES_PASSWORD}
|
|
networks:
|
|
- matrix
|
|
depends_on:
|
|
- postgres
|
|
|
|
nginx-exporter:
|
|
image: nginx/nginx-prometheus-exporter:0.10.0
|
|
container_name: nginx-exporter
|
|
restart: unless-stopped
|
|
networks:
|
|
- matrix
|
|
depends_on:
|
|
- swag
|
|
command:
|
|
- -nginx.scrape-uri
|
|
- http://swag:81/nginx_status
|
|
|
|
gitea:
|
|
image: gitea/gitea:1.21.1
|
|
container_name: gitea
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
- GITEA__database__DB_TYPE=postgres
|
|
- GITEA__database__HOST=gitea-postgres:5432
|
|
- GITEA__database__NAME=${GITEA_DB_NAME}
|
|
- GITEA__database__USER=${GITEA_POSTGRES_USER}
|
|
- GITEA__database__PASSWD=${GITEA_POSTGRES_PASSWORD}
|
|
restart: always
|
|
networks:
|
|
- gitea
|
|
- tor
|
|
volumes:
|
|
- ./gitea:/data
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
depends_on:
|
|
- gitea-postgres
|
|
|
|
gitea-postgres:
|
|
image: postgres:14
|
|
container_name: gitea-postgres
|
|
restart: always
|
|
environment:
|
|
- POSTGRES_USER=${GITEA_POSTGRES_USER}
|
|
- POSTGRES_PASSWORD=${GITEA_POSTGRES_PASSWORD}
|
|
- POSTGRES_DB=${GITEA_DB_NAME}
|
|
networks:
|
|
- gitea
|
|
volumes:
|
|
- ./gitea-postgres:/var/lib/postgresql/data
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
privatebin:
|
|
image: privatebin/fs
|
|
container_name: privatebin
|
|
user: "882:882"
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./privatebin-data:/srv/data:Z
|
|
- ./privatebin-data/conf.php:/srv/cfg/conf.php:ro
|
|
networks:
|
|
- privatebin
|
|
- tor
|
|
read_only: true
|
|
|
|
ots:
|
|
image: luzifer/ots
|
|
container_name: ots
|
|
restart: unless-stopped
|
|
networks:
|
|
- ots
|
|
- tor
|
|
entrypoint: ["/usr/local/bin/ots"]
|
|
|
|
element:
|
|
image: vectorim/element-web
|
|
container_name: element
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./element-data/element-config.json:/app/config.json:ro
|
|
networks:
|
|
- element
|
|
|
|
chat:
|
|
image: ghcr.io/schildichat/schildichat-web
|
|
container_name: chat
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./chat-data/element-config.json:/app/config.json:ro
|
|
networks:
|
|
- chat
|
|
|
|
lemmy-postgres:
|
|
image: postgres:15-alpine
|
|
user: "70:70"
|
|
container_name: lemmy-postgres
|
|
hostname: lemmy-postgres
|
|
environment:
|
|
- POSTGRES_USER=${LEMMY_POSTGRES_USER}
|
|
- POSTGRES_PASSWORD=${LEMMY_POSTGRES_PASSWORD}
|
|
- POSTGRES_DB=${LEMMY_POSTGRES_DB}
|
|
volumes:
|
|
- ./lemmy/volumes/postgres:/var/lib/postgresql/data
|
|
restart: unless-stopped
|
|
networks:
|
|
- lemmy
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
lemmy:
|
|
image: dessalines/lemmy:0.19.2
|
|
container_name: lemmy
|
|
restart: unless-stopped
|
|
environment:
|
|
- RUST_LOG="warn,lemmy_server=info,lemmy_api=info,lemmy_api_common=info,lemmy_api_crud=info,lemmy_apub=info,lemmy_db_schema=info,lemmy_db_views=info,lemmy_db_views_actor=info,lemmy_db_views_moderator=info,lemmy_routes=info,lemmy_utils=info,lemmy_websocket=info"
|
|
volumes:
|
|
- ./lemmy/lemmy.hjson:/config/config.hjson
|
|
depends_on:
|
|
- postgres
|
|
- pictrs
|
|
networks:
|
|
- lemmy
|
|
|
|
lemmy-ui:
|
|
image: dessalines/lemmy-ui:0.19.2
|
|
container_name: lemmy-ui
|
|
restart: unless-stopped
|
|
environment:
|
|
- LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8536
|
|
- LEMMY_UI_LEMMY_EXTERNAL_HOST=links.hackliberty.org
|
|
- LEMMY_UI_HTTPS=true
|
|
depends_on:
|
|
- lemmy
|
|
networks:
|
|
- lemmy
|
|
|
|
pictrs:
|
|
image: asonix/pictrs:0.3.1
|
|
hostname: pictrs
|
|
container_name: pictrs
|
|
ports:
|
|
- "127.0.0.1:8537:8080"
|
|
- "127.0.0.1:6670:6669"
|
|
user: 991:991
|
|
volumes:
|
|
- ./lemmy/volumes/pictrs:/mnt
|
|
restart: unless-stopped
|
|
networks:
|
|
- lemmy
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
protonmail-bridge:
|
|
image: shenxn/protonmail-bridge
|
|
container_name: protonmail-bridge
|
|
ports:
|
|
- "127.0.0.1:1025:25"
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./protonmail:/root
|
|
networks:
|
|
- lemmy
|
|
|
|
bookstack:
|
|
image: lscr.io/linuxserver/bookstack
|
|
container_name: bookstack
|
|
environment:
|
|
- PUID=1001
|
|
- PGID=1001
|
|
- APP_URL=https://docs.hackliberty.org
|
|
- DB_HOST=bookstack_db
|
|
- DB_PORT=3306
|
|
- DB_USER=${BOOKSTACK_DB_USER}
|
|
- DB_PASS=${BOOKSTACK_DB_PASS}
|
|
- DB_DATABASE=${BOOKSTACK_DB_DB}
|
|
volumes:
|
|
- ./bookstack:/config:Z
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- bookstack_db
|
|
networks:
|
|
- bookstack
|
|
|
|
bookstack_db:
|
|
image: lscr.io/linuxserver/mariadb
|
|
container_name: bookstack_db
|
|
environment:
|
|
- PUID=1001
|
|
- PGID=1001
|
|
- MYSQL_ROOT_PASSWORD=${BOOKSTACK_DB_PASS}
|
|
- TZ=Europe/London
|
|
- MYSQL_DATABASE=${BOOKSTACK_DB_DB}
|
|
- MYSQL_USER=${BOOKSTACK_DB_USER}
|
|
- MYSQL_PASSWORD=${BOOKSTACK_DB_PASS}
|
|
volumes:
|
|
- ./bookstack:/config:Z
|
|
restart: unless-stopped
|
|
networks:
|
|
- bookstack
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
watchtower:
|
|
image: containrrr/watchtower
|
|
container_name: watchtower
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
command: --interval 14400
|
|
|
|
matrix-chatgpt4-bot:
|
|
image: ghcr.io/matrixgpt/matrix-chatgpt-bot:sha-b78cc35
|
|
container_name: chatgpt4
|
|
volumes:
|
|
- ./chatgpt:/storage
|
|
env_file:
|
|
- ./.env
|
|
|
|
matrix-chatgpt3-bot:
|
|
image: ghcr.io/matrixgpt/matrix-chatgpt-bot:latest
|
|
container_name: chatgpt3
|
|
volumes:
|
|
- ./chatgpt3:/storage
|
|
env_file:
|
|
- ./.chatgpt3
|
|
|
|
tor:
|
|
image: osminogin/tor-simple
|
|
container_name: tor
|
|
volumes:
|
|
- ./tor-data:/var/lib/tor
|
|
- ./tor-data/torrc:/etc/tor
|
|
networks:
|
|
- tor
|
|
|
|
writefreely:
|
|
image: algernon/writefreely
|
|
container_name: writefreely
|
|
user: "5000:5000"
|
|
volumes:
|
|
- ./writefreely:/data:Z
|
|
networks:
|
|
- write
|
|
- tor
|
|
|
|
# WORKERS
|
|
|
|
synapse-generic-worker-4:
|
|
build: ./images/synapse-worker-docker
|
|
container_name: synapse-generic-worker-4
|
|
user: "991:991"
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_WORKER: synapse.app.generic_worker
|
|
entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/worker4.yaml"]
|
|
volumes:
|
|
- ./files:/data:Z
|
|
ports:
|
|
- 127.0.0.1:8083:8081
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
synapse-generic-worker-3:
|
|
build: ./images/synapse-worker-docker
|
|
container_name: synapse-generic-worker-3
|
|
user: "991:991"
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_WORKER: synapse.app.generic_worker
|
|
entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/worker3.yaml"]
|
|
volumes:
|
|
- ./files:/data:Z
|
|
ports:
|
|
- 127.0.0.1:8082:8081
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
synapse-generic-worker-2:
|
|
build: ./images/synapse-worker-docker
|
|
container_name: synapse-generic-worker-2
|
|
user: "991:991"
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_WORKER: synapse.app.generic_worker
|
|
entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/worker2.yaml"]
|
|
volumes:
|
|
- ./files:/data:Z
|
|
ports:
|
|
- 127.0.0.1:8081:8081
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
synapse-generic-worker-1:
|
|
build: ./images/synapse-worker-docker
|
|
container_name: synapse-generic-worker-1
|
|
user: "991:991"
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_WORKER: synapse.app.generic_worker
|
|
entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/worker1.yaml"]
|
|
volumes:
|
|
- ./files:/data:Z
|
|
ports:
|
|
- 127.0.0.1:8080:8081
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
synapse-federation-sender-4:
|
|
build: ./images/synapse-worker-docker
|
|
container_name: synapse-federation-sender-4
|
|
user: "991:991"
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_WORKER: synapse.app.generic_worker
|
|
entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/federation4.yaml"]
|
|
volumes:
|
|
- ./files:/data:Z
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
synapse-federation-sender-3:
|
|
build: ./images/synapse-worker-docker
|
|
container_name: synapse-federation-sender-3
|
|
user: "991:991"
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_WORKER: synapse.app.generic_worker
|
|
entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/federation3.yaml"]
|
|
volumes:
|
|
- ./files:/data:Z
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
synapse-federation-sender-2:
|
|
build: ./images/synapse-worker-docker
|
|
container_name: synapse-federation-sender-2
|
|
user: "991:991"
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_WORKER: synapse.app.generic_worker
|
|
entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/federation2.yaml"]
|
|
volumes:
|
|
- ./files:/data:Z
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|
|
|
|
synapse-federation-sender-1:
|
|
build: ./images/synapse-worker-docker
|
|
container_name: synapse-federation-sender-1
|
|
user: "991:991"
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_WORKER: synapse.app.generic_worker
|
|
entrypoint: ["/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/federation1.yaml"]
|
|
volumes:
|
|
- ./files:/data:Z
|
|
depends_on:
|
|
- synapse
|
|
networks:
|
|
- matrix
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=false"
|