user:jan001:jitsi_docker
Table of Contents
Deploy Jitsi with Docker + High Quality
Every eolab.de
has to be changed to your URL.
Prerequisits
- Ubuntu Server 20.04
- Docker and Docker-Compose are installed
- Running NGINX Reverse Proxy
- A SSL certificate for the desired url
Downloading Jitsi
git clone https://github.com/jitsi/docker-jitsi-meet.git
mv docker-jitsi-meet/ jitsi-meet/
cd jitsi-meet/
cp env.example .env
./gen-passwords.sh
mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb,jigasi,jibri}
Configuring Jitsi
nano .env
- make sure it uses an unused port
HTTP_PORT=8000
- set timezone
TZ=Europe/Berlin
- set the later used public URL
PUBLIC_URL=https://meet.eolab.de
Configuring NGINX
sudo nano /etc/nginx/sites-available/eolab.de
- make sure there is a redirect from HTTP to https (port 80 to 443)
- add this to the top
upstream jitsi { server localhost:8000; }
change the port if needed
- add this to the bottom
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name meet.eolab.de; ssl_certificate /etc/letsencrypt/live/meet.eolab.de/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/meet.eolab.de/privkey.pem; include snippets/ssl-params.conf; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"; add_header X-Xss-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; add_header Referrer-Policy same-origin; proxy_cookie_path / "/; HTTPOnly; Secure"; add_header Expect-CT "enforce, max-age=21600"; add_header Feature-Policy "payment none"; keepalive_timeout 70; sendfile on; client_max_body_size 0; gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; location / { log_not_found off; proxy_cache_valid 200 120m; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; proxy_pass http://jitsi/; } location ~ ^/colibri-ws/([a-zA-Z0-9-\.]+)/(.*) { tcp_nodelay on; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://jitsi/colibri-ws/$1/$2$is_args$args; } location /xmpp-websocket { tcp_nodelay on; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_pass http://jitsi/xmpp-websocket; } }
make sure to change the
server_name
,ssl_certificate
andssl_certificate_key
- Save and quit the file
sudo systemctl restart nginx
Start Jitsi
docker-compose up -d
Configure Jitsi with internal authentication for creating rooms
- make sure Jitsi was run at least once
- stop it if its running
docker-compose stop
sudo rm -r ~/.jitsi-meet-cfg
mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb,jigasi,jibri}
nano .env
ENABLE_AUTH=1
ENABLE_GUESTS=1
AUTH_TYPE=internal
- Save and quit the file
docker-compose up -d
- find the container id of the jitsi_prosody container and copy that
docker ps -a
docker exec -it CONTAINER-ID-HERE /bin/bash
su
- change the
username
andpassword
in this command:prosodyctl --config /config/prosody.cfg.lua register username meet.jitsi password
These credentials are now needed to create a new room
exit
exit
Configure Jitsi for high quality webcams and screenshares
- make sure Jitsi was run at least once
- stop it if its running
docker-compose stop
nano ~/.jitsi-meet-cfg/web/custom-config.js
config.startAudioMuted = 1; config.resolution = 1080; config.constraints.video.height = {ideal: 1080, max: 1440, min:480}; config.startVideoMuted = 1; config.enableNoisyMicDetection = 1; config.desktopSharingFrameRate = {min: 5, max: 24}; config.videoQuality.maxBitratesVideo = {low: 1500000, standard: 5000000, high: 10000000}
- Save and quit the file
docker-compose up -d
I´ve done this differently before by editing the config.js
directly (see older revisions) but it seemed to me that the settings weren't saved correctly. This post helped me: [Solved] Config.js recreated on every container start - how to configure?
user/jan001/jitsi_docker.txt · Last modified: 2023/01/05 14:38 by 127.0.0.1