Jitsi in a container for quick deploy
Go to file
Knut Ahlers 9fdb699359
Fix crashing video bridge
refs jitsi/jitsi-videobridge#1352

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2020-07-28 19:43:33 +02:00
config Allow cameras with more than 720p 2020-05-06 18:16:16 +02:00
services Fix crashing video bridge 2020-07-28 19:43:33 +02:00
build.sh Allow UI modifications through mount 2020-04-04 20:44:51 +02:00
Dockerfile Allow UI modifications through mount 2020-04-04 20:44:51 +02:00
LICENSE Add META 2020-03-19 22:34:13 +01:00
README.md Document file patching 2020-04-04 21:13:59 +02:00
setup.sh Fix: Prevent breaking on container restart 2020-05-27 09:38:22 +02:00

Luzifer / jitsi

This container contains an S6 overlay, a Prosody XMPP server, a nginx web-server and the Jitsi components to create a browser based video-chat from it.

The installation is based on the Jitsi/stable Debian installation with deactivated post-install scripts. To configure the container it needs to be started with some requirements which then are used to configure the container which internal certificates and configuration files.

After its start the container listens on the specified address to be proxied with a SSL / TLS terminating proxy.

Start requirements:

  • Provide a JITSI_DOMAIN ENV var which will be used to configure the container
  • Provide a JITSI_ADDR to have the container listen on
  • Start the container with --net=host in order to have the components work properly

Setup

# docker run -d -e JITSI_DOMAIN=jitsi.example.com -e JITSI_ADDR=127.0.0.1:1240 --net=host luzifer/jitsi
# cat /etc/nginx/conf.d/jitsi.conf
server {
  listen        443 ssl http2;
  listen        [::]:443 ssl http2;
  server_name   jitsi.example.com;

  ssl_certificate     /data/ssl/nginxle/example.com.pem;
  ssl_certificate_key /data/ssl/nginxle/example.com.key;

  location / {
    proxy_pass        http://127.0.0.1:1240;
    proxy_set_header  Upgrade $http_upgrade;
    proxy_set_header  Connection "Upgrade";
    proxy_set_header  Host $host;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Proto $scheme;
  }
}

Apply UI modifications

This container has a mechanism included to patch the installation inside the container on startup. There are two ways to modify those files: Patch them or overwrite them. Those modifications are needed to be mounted to the /ui mount-point of the container on startup.

This is my folder structure:

/ui
  +- files
      +- custom.head.html
      +- logo.png
  +- patches
      +- 01_index_html.patch
      +- 02_interface_config_js.patch
  • The content of the /ui/files folder is copied over the /usr/share/jitsi-meet folder with rsync command so will replace the whole file being present there
  • The patches in /ui/patches are executed inside the /usr/share/jitsi-meet folder using patch command so will modify the contents of the files