Self-Host Your Own Video Conferencing in 5 Minutes
Deploy LaSuiteMeet on your own server using Docker Compose. Own your data, run it on your infrastructure, zero third-party calls.
Before you begin
Prerequisites
01
Docker Engine
Docker Engine with Docker Compose v2 included. Use docker compose (not docker-compose).
02
Server & Domain
A server with a public IP address and a domain name (or subdomain) pointing to it.
03
Open Ports
80/tcp · 443/tcp · 443/udp · 7881/tcp · 7882/udp must be reachable from the internet.
04
OIDC Provider
An OpenID Connect provider for authentication — Keycloak works great and ships with the compose stack.
05
SMTP Server
An outbound email server for meeting invitations and admin notifications.
Setup guide
Step-by-step installation
Create workspace & fetch config
Create the working directory and download all required configuration files from the upstream repository.
mkdir -p meet/env.d && cd meet
curl -o compose.yaml \
https://raw.githubusercontent.com/suitenumerique/meet/refs/heads/main/docs/examples/compose/compose.yaml
curl -o .env \
https://raw.githubusercontent.com/suitenumerique/meet/refs/heads/main/env.d/production.dist/hosts
curl -o env.d/common \
https://raw.githubusercontent.com/suitenumerique/meet/refs/heads/main/env.d/production.dist/common
curl -o env.d/postgresql \
https://raw.githubusercontent.com/suitenumerique/meet/refs/heads/main/env.d/production.dist/postgresql
curl -o livekit-server.yaml \
https://raw.githubusercontent.com/suitenumerique/meet/refs/heads/main/docs/examples/livekit/server.yaml
curl -o default.conf.template \
https://raw.githubusercontent.com/suitenumerique/meet/refs/heads/main/docker/files/production/default.conf.templateConfigure environment
Edit the downloaded config files with your values before starting.
# env.d/common — critical keys to set:
LIVEKIT_API_SECRET=<generate with: openssl rand -hex 32>
DJANGO_SECRET_KEY=<generate with: openssl rand -hex 50>
OIDC_RP_CLIENT_ID=meet
OIDC_RP_CLIENT_SECRET=<your OIDC client secret>
DJANGO_EMAIL_HOST=smtp.yourdomain.tld
DJANGO_EMAIL_HOST_USER=no-reply@yourdomain.tld
DJANGO_EMAIL_HOST_PASSWORD=<your SMTP password>
# env.d/postgresql — set a strong password:
DB_PASSWORD=<generate with: openssl rand -hex 16>
# .env — set your domain:
REALM_NAME=meetOpen firewall ports
Allow the required ports through ufw (or your cloud provider's security group).
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 443/udp
ufw allow 7881/tcp
ufw allow 7882/udp
ufw enableStart the application
Bring up all services in detached mode. Docker will pull images on first run.
docker compose up -dRun migrations & create admin
Apply database schema and create your first admin user.
docker compose run --rm backend python manage.py migrate
docker compose run --rm backend python manage.py createsuperuser \
--email admin@yourdomain.tld \
--password <your-admin-password>Batteries included
What's in the stack
PostgreSQL
Primary relational database
Redis
Caching & inter-service messaging
LiveKit
WebRTC selective forwarding unit
Nginx
Reverse proxy & TLS termination
Django
REST API backend
React
Browser-based conference frontend
Heads up
The Docker Compose path is marked experimental in the upstream repository. For production workloads at scale, the upstream team recommends Kubernetes + Helm. Recording and transcription features require additional service configuration beyond this quickstart.
Go deeper
Ready to contribute?
LaSuiteMeet is MIT-licensed and maintained by the French government's La Suite Numérique program. Stars, issues, and PRs are always welcome.