[EZRA BURN-MODE] Docker Compose for Conduit + Element deployment

This commit is contained in:
2026-04-05 08:54:14 +00:00
parent b15913303b
commit 082d645a74

60
matrix/docker-compose.yml Normal file
View File

@@ -0,0 +1,60 @@
version: '3.8'
# Matrix Conduit deployment for Timmy Fleet
# Parent: timmy-config#166
# Generated: 2026-04-05
services:
conduit:
image: matrixconduit/matrix-conduit:v0.7.0
container_name: conduit-homeserver
restart: unless-stopped
volumes:
- ./matrix-data:/data
- ./media:/media
- ./conduit-config.toml:/etc/conduit/config.toml:ro
environment:
- CONDUIT_CONFIG=/etc/conduit/config.toml
networks:
- matrix
- traefik-public
labels:
# Client API (HTTPS)
- "traefik.enable=true"
- "traefik.http.routers.matrix-client.rule=Host(`matrix.tactical.local`)"
- "traefik.http.routers.matrix-client.tls=true"
- "traefik.http.routers.matrix-client.tls.certresolver=letsencrypt"
- "traefik.http.routers.matrix-client.entrypoints=websecure"
- "traefik.http.services.matrix-client.loadbalancer.server.port=6167"
# Federation (TCP 8448) - direct or via Traefik TCP entrypoint
# Option A: Direct host port mapping
# Option B: Traefik TCP router (requires Traefik federation entrypoint)
- "traefik.tcp.routers.matrix-federation.rule=HostSNI(`*`)"
- "traefik.tcp.routers.matrix-federation.entrypoints=federation"
- "traefik.tcp.services.matrix-federation.loadbalancer.server.port=8448"
# Port mappings (only needed if NOT using Traefik for federation)
# ports:
# - "8448:8448"
# Element web client (optional - can use app.element.io instead)
element:
image: vectorim/element-web:latest
container_name: element-web
restart: unless-stopped
volumes:
- ./element-config.json:/app/config.json:ro
networks:
- traefik-public
labels:
- "traefik.enable=true"
- "traefik.http.routers.element.rule=Host(`chat.tactical.local`)"
- "traefik.http.routers.element.tls=true"
- "traefik.http.routers.element.tls.certresolver=letsencrypt"
- "traefik.http.routers.element.entrypoints=websecure"
- "traefik.http.services.element.loadbalancer.server.port=80"
networks:
matrix:
internal: true
traefik-public:
external: true # Connects to timmy-home Traefik