Skip to content

Repository Structure

meet/
├── src/
│   ├── backend/        # Django application (Python)
│   ├── frontend/       # React/TypeScript SPA (Vite)
│   ├── agents/         # LiveKit agents (metadata collector)
│   └── summary/        # FastAPI transcription/summary service
├── helm/               # Helm chart for Kubernetes deployment
├── docker/             # Docker configuration files
│   ├── auth/           # Keycloak realm config for development
│   └── livekit/        # LiveKit config + egress config for dev
├── docs/               # Documentation and installation guides
│   ├── assets/         # Images
│   ├── examples/       # Example compose files, nginx configs
│   └── installation/   # Installation guides (compose, kubernetes)
├── env.d/              # Environment variable files
│   ├── development/    # Development env templates
│   └── production.dist/# Production env templates (copy and edit)
├── deploy/             # PaaS deployment scripts (Scalingo)
├── bin/                # Utility scripts
├── crowdin/            # Translation config (Crowdin sync)
├── compose.yml         # Full development Docker Compose stack
├── Dockerfile          # Multi-stage Docker build
├── Makefile            # Development workflow commands
├── Procfile            # Process definitions (PaaS)
├── CHANGELOG.md        # Version history
├── CONTRIBUTING.md     # Contribution guidelines
├── UPGRADE.md          # Upgrade instructions between versions
└── SECURITY.md         # Security policy and contact

Backend (src/backend/)

src/backend/
├── meet/
│   ├── settings.py     # Django settings (uses django-configurations)
│   ├── urls.py         # Root URL configuration
│   ├── celery_app.py   # Celery application config
│   └── wsgi.py         # WSGI entrypoint
├── core/
│   ├── models.py       # Room, Recording, User, Application models
│   ├── admin.py        # Django admin configuration
│   ├── api/
│   │   ├── viewsets.py # DRF ViewSets (rooms, recordings, users, files)
│   │   ├── serializers.py
│   │   └── urls.py
│   ├── external_api/   # External JWT / application API
│   ├── addons/         # Microsoft add-in support (alpha)
│   ├── factories.py    # Factory Boy factories for tests
│   └── tests/          # Backend tests
├── pyproject.toml      # Python dependencies (managed with uv)
└── manage.py

Key models: - Room — virtual meeting space with slug, access level, configuration - Recording — recording metadata, state, and download URL - User — created from OIDC tokens; no local password - Application — external app integration for token exchange - ResourceAccess — room membership and role assignments

Frontend (src/frontend/)

src/frontend/
├── src/
│   ├── api/            # Typed fetch wrappers for backend endpoints
│   ├── components/     # Shared React components
│   ├── features/
│   │   ├── conference/ # In-meeting UI (controls, layout, chat, reactions)
│   │   ├── home/       # Home page, room creation
│   │   ├── rooms/      # Room management
│   │   └── settings/   # Settings panels
│   ├── hooks/          # Custom React hooks
│   ├── stores/         # Zustand state stores
│   ├── i18n/           # Translation JSON files (fr, en, de, nl, …)
│   └── App.tsx         # Root component and routing
├── package.json
└── vite.config.ts

Tech stack: React 18, TypeScript, Vite, LiveKit React SDK, React Aria (Adobe), Zustand, i18next.

Agents (src/agents/)

The metadata collector connects to LiveKit rooms as a silent agent and records participant activity (VAD events, connection events, chat) to Garage for use by the summary service.

Summary service (src/summary/)

FastAPI service with two Celery queues: - transcribe-queue — runs Whisper STT on recording files - summarize-queue — calls an LLM API to generate meeting summaries

Helm chart (helm/meet/)

helm/meet/
├── templates/          # Kubernetes resource templates
│   ├── deployment.yaml
│   ├── ingress.yaml
│   └── ...
├── values.yaml         # Default chart values
└── Chart.yaml          # Chart metadata

Environment files (env.d/)

env.d/
├── development/
│   ├── common          # Backend env vars (dev)
│   ├── postgresql      # PostgreSQL connection (dev)
│   └── summary         # Summary service env vars (dev)
└── production.dist/
    ├── common          # Backend env vars (production template)
    ├── hosts           # Hostname variables
    └── postgresql      # PostgreSQL connection (production template)

Files ending in .dist are templates — copy and edit them, never commit the filled-in versions.