mirror of
https://github.com/suitenumerique/meet.git
synced 2026-09-03 14:17:59 +00:00
65905d3b86
The compose stack referenced livekit/livekit-server without a tag,
which resolved to :latest. Docker doesn't re-resolve a mutable tag it
already holds locally, so images earlier than v1.12.0 crashed
on startup:
could not parse config: yaml: unmarshal errors:
line 20: field allow_restricted_peer_cidrs not found in
type config.TURNConfig
LiveKit parses its config in strict mode, and allow_restricted_peer_cidrs
only exists since v1.12.0. The TURN block added in bd81c994 therefore
carried an minimum version which was not reflected.
The Tilt/Helm stack builds its own image from docker/livekit/Dockerfile
to inject the mkcert root CA, and that was still based on v1.9.4. Bump
it to the same version so both dev stacks run the same server.
329 lines
7.4 KiB
YAML
329 lines
7.4 KiB
YAML
|
|
services:
|
|
postgresql:
|
|
image: postgres:16
|
|
env_file:
|
|
- env.d/development/postgresql
|
|
ports:
|
|
- "15432:5432"
|
|
|
|
redis:
|
|
image: redis:5
|
|
|
|
mailcatcher:
|
|
image: sj26/mailcatcher:latest
|
|
ports:
|
|
- "1081:1080"
|
|
|
|
minio:
|
|
user: ${DOCKER_USER:-1000}
|
|
image: minio/minio
|
|
environment:
|
|
- MINIO_ROOT_USER=meet
|
|
- MINIO_ROOT_PASSWORD=password
|
|
ports:
|
|
- '9000:9000'
|
|
- '9001:9001'
|
|
healthcheck:
|
|
test: [ "CMD", "mc", "ready", "local" ]
|
|
interval: 1s
|
|
timeout: 20s
|
|
retries: 300
|
|
entrypoint: ""
|
|
command: minio server --console-address :9001 /data
|
|
volumes:
|
|
- ./data/media:/data
|
|
|
|
createbuckets:
|
|
image: minio/mc
|
|
depends_on:
|
|
minio:
|
|
condition: service_healthy
|
|
restart: true
|
|
entrypoint: >
|
|
sh -c "
|
|
/usr/bin/mc alias set meet http://minio:9000 meet password && \
|
|
/usr/bin/mc mb meet/meet-media-storage && \
|
|
exit 0;"
|
|
|
|
app-dev:
|
|
build:
|
|
context: .
|
|
target: backend-development
|
|
args:
|
|
DOCKER_USER: ${DOCKER_USER:-1000}
|
|
user: ${DOCKER_USER:-1000}
|
|
image: meet:backend-development
|
|
environment:
|
|
- PYLINTHOME=/app/.pylint.d
|
|
- DJANGO_CONFIGURATION=Development
|
|
env_file:
|
|
- env.d/development/common
|
|
- env.d/development/postgresql
|
|
ports:
|
|
- "8071:8000"
|
|
volumes:
|
|
- ./src/backend:/app
|
|
- ./data/static:/data/static
|
|
- /app/.venv
|
|
depends_on:
|
|
- postgresql
|
|
- mailcatcher
|
|
- redis
|
|
- createbuckets
|
|
extra_hosts:
|
|
- "127.0.0.1.nip.io:host-gateway"
|
|
networks:
|
|
- resource-server
|
|
- default
|
|
|
|
celery-dev:
|
|
user: ${DOCKER_USER:-1000}
|
|
image: meet:backend-development
|
|
command: ["celery", "-A", "meet.celery_app", "worker", "-l", "DEBUG", "--pool=solo"]
|
|
environment:
|
|
- DJANGO_CONFIGURATION=Development
|
|
env_file:
|
|
- env.d/development/common
|
|
- env.d/development/postgresql
|
|
volumes:
|
|
- ./src/backend:/app
|
|
- ./data/static:/data/static
|
|
- /app/.venv
|
|
depends_on:
|
|
- app-dev
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
target: backend-production
|
|
args:
|
|
DOCKER_USER: ${DOCKER_USER:-1000}
|
|
user: ${DOCKER_USER:-1000}
|
|
image: meet:backend-production
|
|
environment:
|
|
- DJANGO_CONFIGURATION=Demo
|
|
env_file:
|
|
- env.d/development/common
|
|
- env.d/development/postgresql
|
|
depends_on:
|
|
- postgresql
|
|
- redis
|
|
- livekit
|
|
- minio
|
|
|
|
celery:
|
|
user: ${DOCKER_USER:-1000}
|
|
image: meet:backend-production
|
|
command: ["celery", "-A", "meet.celery_app", "worker", "-l", "INFO", "--pool=solo"]
|
|
environment:
|
|
- DJANGO_CONFIGURATION=Demo
|
|
env_file:
|
|
- env.d/development/common
|
|
- env.d/development/postgresql
|
|
depends_on:
|
|
- app
|
|
|
|
nginx:
|
|
image: nginx:1.25
|
|
ports:
|
|
- "8083:8083"
|
|
volumes:
|
|
- ./docker/files/etc/nginx/conf.d:/etc/nginx/conf.d:ro
|
|
depends_on:
|
|
- keycloak
|
|
- app-dev
|
|
networks:
|
|
- resource-server
|
|
- default
|
|
|
|
frontend:
|
|
user: "${DOCKER_USER:-1000}"
|
|
build:
|
|
context: .
|
|
dockerfile: ./src/frontend/Dockerfile
|
|
target: frontend-production
|
|
args:
|
|
VITE_API_BASE_URL: "http://localhost:8071"
|
|
VITE_APP_TITLE: "LaSuite Meet"
|
|
image: meet:frontend-development
|
|
ports:
|
|
- "3000:8080"
|
|
|
|
dockerize:
|
|
image: jwilder/dockerize
|
|
platform: linux/x86_64
|
|
|
|
crowdin:
|
|
image: crowdin/cli:4.0.0
|
|
volumes:
|
|
- ".:/app"
|
|
env_file:
|
|
- env.d/development/crowdin
|
|
user: "${DOCKER_USER:-1000}"
|
|
working_dir: /app
|
|
|
|
node:
|
|
image: node:22
|
|
user: "${DOCKER_USER:-1000}"
|
|
environment:
|
|
HOME: /tmp
|
|
volumes:
|
|
- ".:/app"
|
|
|
|
kc_postgresql:
|
|
image: postgres:14.3
|
|
ports:
|
|
- "5433:5432"
|
|
env_file:
|
|
- env.d/development/kc_postgresql
|
|
|
|
keycloak:
|
|
image: quay.io/keycloak/keycloak:20.0.1
|
|
volumes:
|
|
- ./docker/auth/realm.json:/opt/keycloak/data/import/realm.json
|
|
command:
|
|
- start-dev
|
|
- --features=preview
|
|
- --import-realm
|
|
- --proxy=edge
|
|
- --hostname-url=http://localhost:8083
|
|
- --hostname-admin-url=http://localhost:8083/
|
|
- --hostname-strict=false
|
|
- --hostname-strict-https=false
|
|
environment:
|
|
KEYCLOAK_ADMIN: admin
|
|
KEYCLOAK_ADMIN_PASSWORD: admin
|
|
KC_DB: postgres
|
|
KC_DB_URL_HOST: kc_postgresql
|
|
KC_DB_URL_DATABASE: keycloak
|
|
KC_DB_PASSWORD: pass
|
|
KC_DB_USERNAME: meet
|
|
KC_DB_SCHEMA: public
|
|
PROXY_ADDRESS_FORWARDING: 'true'
|
|
ports:
|
|
- "8080:8080"
|
|
depends_on:
|
|
- kc_postgresql
|
|
|
|
livekit:
|
|
image: livekit/livekit-server:v1.13.6
|
|
entrypoint: /livekit-server --dev --bind 0.0.0.0 --config ./config.yaml
|
|
ports:
|
|
- "7880:7880"
|
|
- "7881:7881"
|
|
- "7882:7882/udp"
|
|
- "3478:3478/udp"
|
|
- "30000-30100:30000-30100/udp"
|
|
volumes:
|
|
- ./docker/livekit/config/livekit-server.yaml:/config.yaml
|
|
depends_on:
|
|
- redis
|
|
- livekit-egress
|
|
|
|
livekit-egress:
|
|
image: livekit/egress:v1.11.0
|
|
environment:
|
|
EGRESS_CONFIG_FILE: ./livekit-egress.yaml
|
|
volumes:
|
|
- ./docker/livekit/config/livekit-egress.yaml:/livekit-egress.yaml
|
|
- ./docker/livekit/out:/out
|
|
depends_on:
|
|
- redis
|
|
|
|
metadata-collector-dev:
|
|
build:
|
|
context: ./src/agents
|
|
target: development
|
|
user: ${DOCKER_USER:-1000}
|
|
command: ["python", "metadata_collector.py", "dev"]
|
|
env_file:
|
|
- env.d/development/metadata_collector
|
|
volumes:
|
|
- ./src/agents:/app
|
|
- /app/.venv
|
|
depends_on:
|
|
- livekit
|
|
- minio
|
|
develop:
|
|
watch:
|
|
- action: rebuild
|
|
path: ./src/agents
|
|
|
|
multi-user-transcriber-dev:
|
|
build:
|
|
context: ./src/agents
|
|
target: development
|
|
user: ${DOCKER_USER:-1000}
|
|
command: ["python", "multi_user_transcriber.py", "dev"]
|
|
env_file:
|
|
- env.d/development/multi_user_transcriber
|
|
volumes:
|
|
- ./src/agents:/app
|
|
- /app/.venv
|
|
|
|
redis-summary:
|
|
image: redis
|
|
ports:
|
|
- "6379:6379"
|
|
|
|
app-summary-dev:
|
|
build:
|
|
context: src/summary
|
|
target: development
|
|
args:
|
|
DOCKER_USER: ${DOCKER_USER:-1000}
|
|
user: ${DOCKER_USER:-1000}
|
|
env_file:
|
|
- env.d/development/summary
|
|
ports:
|
|
- "8001:8000"
|
|
volumes:
|
|
- ./src/summary:/app
|
|
depends_on:
|
|
- redis-summary
|
|
|
|
celery-summary-transcribe:
|
|
container_name: celery-summary-transcribe
|
|
build:
|
|
context: ./src/summary
|
|
dockerfile: Dockerfile
|
|
target: production
|
|
command: celery -A summary.core.celery_worker worker --pool=solo --loglevel=debug -Q transcribe-queue-v2
|
|
env_file:
|
|
- env.d/development/summary
|
|
volumes:
|
|
- ./src/summary:/app
|
|
depends_on:
|
|
- redis-summary
|
|
- app-summary-dev
|
|
- minio
|
|
develop:
|
|
watch:
|
|
- action: rebuild
|
|
path: ./src/summary
|
|
|
|
celery-summary-summarize:
|
|
container_name: celery-summary-summarize
|
|
build:
|
|
context: ./src/summary
|
|
dockerfile: Dockerfile
|
|
target: production
|
|
command: celery -A summary.core.celery_worker worker --pool=solo --loglevel=debug -Q summarize-queue-v2
|
|
env_file:
|
|
- env.d/development/summary
|
|
volumes:
|
|
- ./src/summary:/app
|
|
depends_on:
|
|
- redis-summary
|
|
- app-summary-dev
|
|
- minio
|
|
develop:
|
|
watch:
|
|
- action: rebuild
|
|
path: ./src/summary
|
|
|
|
networks:
|
|
default:
|
|
resource-server:
|