Skip to content

Instantly share code, notes, and snippets.

@rowdybeaver
Last active March 7, 2025 00:06
Show Gist options
  • Save rowdybeaver/265ae2fbbad03cc504407c89e67c3110 to your computer and use it in GitHub Desktop.
Save rowdybeaver/265ae2fbbad03cc504407c89e67c3110 to your computer and use it in GitHub Desktop.
Jitsi-docker configuration

Jitsi Web Conferencing

Install Jitsi for docker-compose.

Configuration goals

  • basic docker setup
  • want to require an admin to start a chat
  • guests don't to authenticate, but must pick a display name
  • don't autogenerate random room names: guests have a direct url
  • microphone and camera off by default (people can join to listen and watch)
  • notifications can dismiss automatically after a period

Make basic environment settings

Copy their sample to the destination filename with cp env.example .env and make changes to these settings:

# Change HTTP_PORT, HTTPS_PORT, TZ, PUBLIC_URL, LETSENCRYPT settings
ENABLE_AUTH=1
ENABLE_GUESTS=1
AUTH_TYPE=internal
#ENABLE_HTTP_REDIRECT=1  # Can't remember if this fixed some issues or what

Start the services

Start it with docker-compose up -d which will generate the per-app configs from the .env file. Later changes to the file will require clearing the configuration directory.

Add user authentication

Add user credentials by getting a command line in the prosody container:

docker-compose exec prosody /bin/bash
# Inside the container
prosodyctl --config /config/prosody.cfg.lua register <uname> meet.jitsi <upwd>
exit # the container

Stop the services so we can make more changes

At this time, the services can be stopped with docker-compose down

Editing configurations

To change configs, change to the directory ~/.jitsi-meet-cfg and type sudo su to become the root user.

Chat behavior changes

The web/interface_config.js file controls much of the behavior that we are interested in. Colors, images, titles, and other things can be changed. These are the most basic options:

JITSI_WATERMARK_LINK: 'https://my-main-website.com',
GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false,
AUTO_PIN_LATEST_SCREEN_SHARE: 'remote-only',
// NOTE: You must add a comma to the end of the AUTO_PIN entry!
ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT: 15000,

Other behavior is in the web/config.js file with these changes:

startWithAudioMuted: true,
startWithVideoMuted: true,
requireDisplayName: true,

These are the settings that need changed for the chat to work as expected.

Hope this makes for a great user experience!

@emrusz
Copy link

emrusz commented Mar 7, 2025

Just what I was looking for. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment