fix(meeting-intelligence): fix Jibri XMPP connection and transcriber build

- Add wget to builder stage for model download
- Add curl and build-essential to production stage for health check and webrtcvad
- Remove unused whisper_models volume (model baked into image)
- Fix WHISPER_MODEL env var to use full path
- Update Jibri to use Docker internal DNS names (meet.jitsi)
- Connect Jibri to jeffsi-meet_meet.jitsi network for Prosody access

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-02-05 20:34:17 +00:00
parent 4cb219db0f
commit 9f9bb309bb
2 changed files with 21 additions and 12 deletions

View File

@ -61,13 +61,12 @@ services:
environment:
REDIS_URL: redis://redis:6379
POSTGRES_URL: postgresql://meeting_intelligence:${POSTGRES_PASSWORD:-changeme}@postgres:5432/meeting_intelligence
WHISPER_MODEL: small
WHISPER_MODEL: /models/ggml-small.bin
WHISPER_THREADS: 8
NUM_WORKERS: 4
volumes:
- recordings:/recordings:ro
- audio_processed:/audio
- whisper_models:/models
depends_on:
postgres:
condition: service_healthy
@ -122,13 +121,14 @@ services:
restart: unless-stopped
privileged: true
environment:
# XMPP Connection
XMPP_SERVER: ${XMPP_SERVER:-meet.jeffemmett.com}
XMPP_DOMAIN: ${XMPP_DOMAIN:-meet.jeffemmett.com}
XMPP_AUTH_DOMAIN: auth.${XMPP_DOMAIN:-meet.jeffemmett.com}
XMPP_INTERNAL_MUC_DOMAIN: internal.auth.${XMPP_DOMAIN:-meet.jeffemmett.com}
XMPP_RECORDER_DOMAIN: recorder.${XMPP_DOMAIN:-meet.jeffemmett.com}
XMPP_MUC_DOMAIN: muc.${XMPP_DOMAIN:-meet.jeffemmett.com}
# XMPP Connection - uses internal Docker DNS names
XMPP_SERVER: jeffsi-meet-prosody-1
XMPP_DOMAIN: meet.jitsi
XMPP_AUTH_DOMAIN: auth.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi
XMPP_RECORDER_DOMAIN: hidden.meet.jitsi
XMPP_MUC_DOMAIN: muc.meet.jitsi
XMPP_TRUST_ALL_CERTS: "true"
# Jibri Settings
JIBRI_BREWERY_MUC: JibriBrewery
@ -145,7 +145,7 @@ services:
CHROMIUM_FLAGS: --use-fake-ui-for-media-stream,--start-maximized,--kiosk,--enabled,--disable-infobars,--autoplay-policy=no-user-gesture-required
# Public URL
PUBLIC_URL: https://${XMPP_DOMAIN:-meet.jeffemmett.com}
PUBLIC_URL: https://meet.jeffemmett.com
# Timezone
TZ: UTC
@ -161,6 +161,7 @@ services:
shm_size: 2gb
networks:
- meeting-intelligence
- jeffsi-meet
volumes:
postgres_data:
@ -177,10 +178,12 @@ volumes:
type: none
o: bind
device: /opt/meetings/audio
whisper_models:
networks:
meeting-intelligence:
driver: bridge
traefik-public:
external: true
jeffsi-meet:
external: true
name: jeffsi-meet_meet.jitsi

View File

@ -10,6 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
cmake \
git \
ffmpeg \
wget \
&& rm -rf /var/lib/apt/lists/*
# Build whisper.cpp
@ -30,10 +31,12 @@ RUN cd /build/whisper.cpp && \
# Production image
FROM python:3.11-slim
# Install runtime dependencies
# Install runtime dependencies and build tools (for compiling Python packages)
RUN apt-get update && apt-get install -y --no-install-recommends \
ffmpeg \
libsndfile1 \
curl \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Copy whisper binary and models
@ -47,6 +50,9 @@ WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Remove build tools to reduce image size
RUN apt-get purge -y build-essential && apt-get autoremove -y
# Copy application code
COPY app/ ./app/