150 lines
4.0 KiB
YAML
150 lines
4.0 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
container_name: postgres
|
|
restart: always
|
|
environment:
|
|
POSTGRES_USER: ${PSQL_NAME}
|
|
POSTGRES_PASSWORD: ${PSQL_PASS}
|
|
POSTGRES_DB: ${PSQL_DB_NAME}
|
|
POSTGRES_INITDB_ARGS: --encoding=UTF8 --lc-collate=C --lc-ctype=C
|
|
PGUSER: ${PSQL_NAME}
|
|
PGDATABASE: ${PSQL_DB_NAME}
|
|
volumes:
|
|
- synapse-pg-data:/var/lib/postgresql/data
|
|
networks:
|
|
- synapse-net
|
|
- postgre-general
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB || exit 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 10s
|
|
|
|
synapse-foxgirls:
|
|
image: matrixdotorg/synapse:latest
|
|
container_name: synapse-foxgirls
|
|
restart: unless-stopped
|
|
environment:
|
|
SYNAPSE_SERVER_NAME: foxgirls.date
|
|
SYNAPSE_REPORT_STATS: "yes"
|
|
SYNAPSE_DATABASE: "postgres://${PSQL_NAME}:${PSQL_PASS}@postgres/${PSQL_DB_NAME}"
|
|
volumes:
|
|
- ~/synapse-data2:/data # Host folder with config, media, logs
|
|
depends_on:
|
|
- postgres
|
|
networks:
|
|
- synapse-net
|
|
- reverse_proxy_default
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
|
|
synapse-livekit:
|
|
container_name: synapse-livekit
|
|
image: livekit/livekit-server
|
|
command: --config /etc/livekit.yaml
|
|
restart: unless-stopped
|
|
ports:
|
|
- "7881:7881" # TCP Signaling
|
|
- "7882:7882/udp" # Initial UDP
|
|
- "50000-50200:50000-50200/udp" # Media range
|
|
#forward in reverse proxy
|
|
#expose:
|
|
#- 7880
|
|
volumes:
|
|
- ./livekit/livekit.yaml:/etc/livekit.yaml
|
|
- ./livekit/turnsecret:/etc/turnsecret
|
|
environment:
|
|
- VIRTUAL_HOST=livekit.foxgirls.date
|
|
- LETSENCRYPT_HOST=livekit.foxgirls.date
|
|
- VIRTUAL_PORT=7880
|
|
- "LIVEKIT_KEYS=api: ${LIVEKIT_SECRET}"
|
|
- LIVEKIT_REDIS_ADDRESS=synapse-redis:6379
|
|
depends_on:
|
|
- synapse-redis
|
|
networks:
|
|
- synapse-net
|
|
- reverse_proxy_default
|
|
|
|
synapse-coturn:
|
|
container_name: synapse-coturn
|
|
image: coturn/coturn
|
|
network_mode: host
|
|
volumes:
|
|
- ./turn/certs:/etc/coturn/certs:ro
|
|
command:
|
|
- turnserver
|
|
- --listening-port=3478
|
|
- --tls-listening-port=5349
|
|
- --min-port=49152
|
|
- --max-port=50000
|
|
- --external-ip=51.68.130.237
|
|
- --realm=turn.foxgirls.date
|
|
- --lt-cred-mech
|
|
- --fingerprint
|
|
- --use-auth-secret
|
|
- --static-auth-secret=${TURN_SECRET}
|
|
- --no-multicast-peers
|
|
- --no-cli
|
|
|
|
lk-jwt-service:
|
|
container_name: synapse-lkjwt
|
|
image: ghcr.io/element-hq/lk-jwt-service:latest
|
|
environment:
|
|
- LIVEKIT_URL=wss://livekit.foxgirls.date
|
|
- LIVEKIT_KEY=api
|
|
- LIVEKIT_SECRET=${LIVEKIT_SECRET}
|
|
- VIRTUAL_HOST=lk-jwt.foxgirls.date
|
|
- LETSENCRYPT_HOST=lk-jwt.foxgirls.date
|
|
- VIRTUAL_PORT=8080
|
|
- LIVEKIT_FULL_ACCESS_HOMESERVERS=foxgirls.date
|
|
- LIVEKIT_REDIS_URL=redis://synapse-redis:6379/0
|
|
# CRITICAL: Allow the container to loop back to the public domain via the proxy
|
|
#extra_hosts:
|
|
# - "livekit.foxgirls.date:host-gateway"
|
|
networks:
|
|
- synapse-net
|
|
- reverse_proxy_default
|
|
|
|
element-call:
|
|
container_name: synapse-element-call
|
|
image: ghcr.io/element-hq/element-call:latest
|
|
environment:
|
|
- VIRTUAL_HOST=elementcall.foxgirls.date
|
|
- LETSENCRYPT_HOST=elementcall.foxgirls.date
|
|
- VIRTUAL_PORT=8080
|
|
volumes:
|
|
- ./element-call/config.json:/app/config.json
|
|
networks:
|
|
- synapse-net
|
|
- reverse_proxy_default
|
|
|
|
synapse-redis:
|
|
container_name: synapse-redis
|
|
image: redis:alpine
|
|
command: redis-server --save 60 1 --loglevel warning
|
|
volumes:
|
|
- ./redis_data:/data
|
|
networks:
|
|
- synapse-net
|
|
|
|
|
|
volumes:
|
|
synapse-pg-data:
|
|
|
|
networks:
|
|
synapse-net:
|
|
driver: bridge
|
|
reverse_proxy_default:
|
|
external: true
|
|
postgre-general:
|
|
external: true |