Jitsi Meet production configuration spans web, Prosody, Jicofo/JVB services.
Focus on secure room access, stable media transport, and clear recording policy.
| Attribute | Details |
|---|---|
| License | Apache-2.0 |
| Technical Stack | Lua, JavaScript, Java |
| Config Location (Docker) | ~/.jitsi-meet-cfg/ |
| Config Location (Native) | /etc/jitsi/ |
Primary file: ~/.jitsi-meet-cfg/web/config.js
Primary file: /etc/jitsi/meet/<fqdn>-config.js
Example settings:
var config = {
hosts: {
domain: 'meet.example.com',
muc: 'conference.meet.example.com'
},
enableLobbyChat: true,
enableNoisyMicDetection: true,
prejoinPageEnabled: true,
requireDisplayName: true,
// Optional: Restrict room creation to authenticated users
// enableUserRolesBasedOnToken: true,
// Optional: Set default language
// defaultLanguage: 'en',
// Optional: Enable/disable features
// enableWelcomePage: true,
// enableClosePage: false,
};
Edit .env in your Docker deployment directory:
# Required: Public URL
PUBLIC_URL=https://meet.example.com
# Required: Timezone
TZ=UTC
# Optional: Let's Encrypt
# ENABLE_LETSENCRYPT=1
# LETSENCRYPT_DOMAIN=meet.example.com
# LETSENCRYPT_EMAIL=admin@example.com
# Optional: LAN/NAT environments
# JVB_ADVERTISE_IPS=192.168.1.100
# Optional: Additional services
# ENABLE_JIGASI=1
# ENABLE_JIBRI=1
# ENABLE_ETHERPAD=1
Configure in ~/.jitsi-meet-cfg/prosody/config/prosody.cfg.lua:
authentication = "internal_hashed"
For integration with external portals:
room, aud, and iss validationFor Docker, edit .env:
# Advertise correct IP for NAT environments
JVB_ADVERTISE_IPS=192.168.1.100
# Custom external port
# JVB_ADVERTISE_IPS=192.168.1.100#12345
Add TURN fallback for restricted client networks in config.js:
config.p2pStunServers = [
{ urls: 'stun:stun.l.google.com:19302' }
];
// Custom TURN server
// config.externalStorage = {
// urls: 'turn:turn.example.com:3478',
// username: 'user',
// credential: 'password'
// };
docker compose logs jvbIf using Jibri for recording:
/var/lib/jibri/recordingsExample Docker volume mount:
volumes:
- /path/to/recordings:/config/recordings
Any questions?
Feel free to contact us. Find all contact information on our contact page.