compose.yaml
Rama main · réplica de lectura del repositorio original.
# coturn and the rendezvous service on this machine, for development and tests (ROADMAP M08-004).
# TURN_SECRET comes from .env, which is never committed; CONTRIBUTING.md says how to make one.
name: convia
services:
coturn:
image: coturn/coturn:4.7.0@sha256:a00afb5b4890de4df22bbe70379c6b316685dffee297d53cac1271dcb91fab93
command:
- -c
- /etc/coturn/turnserver.conf
- --static-auth-secret=${TURN_SECRET:?set TURN_SECRET in .env}
- --realm=localhost
- --min-port=49160
- --max-port=49199
- --relay-ip=172.30.0.10
- --external-ip=127.0.0.1/172.30.0.10
# Peers on this machine reach the relay through Docker's own network, which production denies.
- --allow-loopback-peers
- --allowed-peer-ip=172.30.0.0-172.30.0.255
- --allowed-peer-ip=127.0.0.1
volumes:
- ./deploy/coturn/turnserver.conf:/etc/coturn/turnserver.conf:ro
ports:
- 127.0.0.1:3478:3478/udp
- 127.0.0.1:3478:3478/tcp
- 127.0.0.1:49160-49199:49160-49199/udp
networks:
convia:
ipv4_address: 172.30.0.10
rendezvous:
build:
context: .
dockerfile: deploy/rendezvous/Dockerfile
command:
- -listen=:8443
- -address=ws://127.0.0.1:8443
- -stun=stun:127.0.0.1:3478
- -turn=turn:127.0.0.1:3478?transport=udp,turn:127.0.0.1:3478?transport=tcp
- -logs=/logs
environment:
TURN_SECRET: ${TURN_SECRET:?set TURN_SECRET in .env}
tmpfs:
- /logs:mode=1777
ports:
- 127.0.0.1:8443:8443
networks:
- convia
# The third layer of ADR 0025: Chromium beside a coturn of its own, both on Docker's network, as in CI.
# docker compose --profile e2e run --rm e2e
coturn-e2e:
profiles: [e2e]
image: coturn/coturn:4.7.0@sha256:a00afb5b4890de4df22bbe70379c6b316685dffee297d53cac1271dcb91fab93
command:
- -c
- /etc/coturn/turnserver.conf
- --static-auth-secret=${TURN_SECRET:?set TURN_SECRET in .env}
- --realm=localhost
- --relay-ip=172.30.0.11
- --allowed-peer-ip=172.30.0.0-172.30.0.255
volumes:
- ./deploy/coturn/turnserver.conf:/etc/coturn/turnserver.conf:ro
networks:
convia:
ipv4_address: 172.30.0.11
e2e:
profiles: [e2e]
image: mcr.microsoft.com/playwright:v1.63.0-noble@sha256:eff16c30e6f3f4af0a03fa4b706120d5e9b0891c344a27d64559aff5900a4a27
depends_on: [coturn-e2e]
working_dir: /work
entrypoint: [sh, -c, "npm ci --no-audit --no-fund && npx playwright test \"$$@\"", e2e]
environment:
CI: "1"
TURN_SECRET: ${TURN_SECRET:?set TURN_SECRET in .env}
CONVIA_TURN_URL: turn:172.30.0.11:3478?transport=udp
volumes:
- ./frontend:/work
# Linux's own packages, never the ones installed on the machine running Docker.
- /work/node_modules
networks:
- convia
networks:
convia:
ipam:
config:
- subnet: 172.30.0.0/24