User Tools

Site Tools


user:jan001:jitsi_docker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
user:jan001:jitsi_docker [2021/04/01 13:50] – created jan001user:jan001:jitsi_docker [2021/08/24 17:35] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Deploy Jitsi with Docker + High Quality ====== ====== Deploy Jitsi with Docker + High Quality ======
 +Every ''%%eolab.de%%'' has to be changed to your URL.
  
 ==== Prerequisits ==== ==== Prerequisits ====
 +  * Ubuntu Server 20.04
   * Docker and Docker-Compose are installed   * Docker and Docker-Compose are installed
   * Running NGINX Reverse Proxy   * Running NGINX Reverse Proxy
   * A SSL certificate for the desired url   * A SSL certificate for the desired url
  
-==== Downloading + Configuration Jitso ==== +==== Downloading Jitsi ==== 
-  - +  - <code>git clone https://github.com/jitsi/docker-jitsi-meet.git</code> 
 +  - <code>mv docker-jitsi-meet/ jitsi-meet/</code> 
 +  - <code>cd jitsi-meet/</code> 
 +  - <code>cp env.example .env</code> 
 +  - <code>./gen-passwords.sh</code> 
 +  - <code>mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb,jigasi,jibri}</code> 
 + 
 +==== Configuring Jitsi ==== 
 +  - <code>nano .env</code> 
 +  - make sure it uses an unused port <code>HTTP_PORT=8000</code> 
 +  - set timezone <code>TZ=Europe/Berlin</code> 
 +  - set the later used public URL <code>PUBLIC_URL=https://meet.eolab.de</code> 
 + 
 +==== Configuring NGINX ==== 
 +  - <code>sudo nano /etc/nginx/sites-available/eolab.de</code> 
 +  - make sure there is a redirect from HTTP to https (port 80 to 443) 
 +  - add this to the top <code> 
 +upstream jitsi { 
 +  server localhost:8000; 
 +
 +</code> change the port if needed 
 +  - add this to the bottom <code> 
 +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; 
 +        } 
 +
 +</code> make sure to change the ''%%server_name%%'', ''%%ssl_certificate%%'' and ''%%ssl_certificate_key%%'' 
 +  - Save and quit the file 
 +  - <code>sudo systemctl restart nginx</code> 
 + 
 +==== Start Jitsi ==== 
 +  - <code>docker-compose up -d</code> 
 + 
 +==== Configure Jitsi with internal authentication for creating rooms ==== 
 +  - make sure Jitsi was run at least once 
 +  - stop it if its running <code>docker-compose stop</code> 
 +  - <code>sudo rm -r ~/.jitsi-meet-cfg</code> 
 +  - <code>mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb,jigasi,jibri}</code> 
 +  - <code>nano .env</code> 
 +  - <code>ENABLE_AUTH=1</code> 
 +  - <code>ENABLE_GUESTS=1</code> 
 +  - <code>AUTH_TYPE=internal</code> 
 +  - Save and quit the file 
 +  - <code>docker-compose up -d</code> 
 +  - find the container id of the jitsi_prosody container and copy that <code>docker ps -a</code> 
 +  - <code>docker exec -it CONTAINER-ID-HERE /bin/bash</code> 
 +  - <code>su</code> 
 +  - change the ''%%username%%'' and ''%%password%%'' in this command: <code>prosodyctl --config /config/prosody.cfg.lua register username meet.jitsi password</code> These credentials are now needed to create a new room 
 +  - <code>exit</code> 
 +  - <code>exit</code> 
 + 
 +==== Configure Jitsi for high quality webcams and screenshares ==== 
 +  - make sure Jitsi was run at least once 
 +  - stop it if its running <code>docker-compose stop</code> 
 +  - <code>nano ~/.jitsi-meet-cfg/web/custom-config.js</code> 
 +  - <code>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}</code> 
 +  - Save and quit the file 
 +  - <code>docker-compose up -d</code> 
 + 
 +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: [[https://community.jitsi.org/t/solved-config-js-recreated-on-every-container-start-how-to-configure/82454/6|[Solved] Config.js recreated on every container start - how to configure?]] 
 + 
  
  
  
user/jan001/jitsi_docker.1617277842.txt.gz · Last modified: 2021/08/24 17:34 (external edit)