freedomofpress.jitsi-meet

Jitsi Meet

==========

This tool sets up and configures the Jitsi Meet video conferencing software.

Requirements

You need to have DNS pointing to your server and SSL keys. If you don’t have SSL keys for your domain, you can use the thefinn93.letsencrypt Ansible role to get free SSL certificates from LetsEncrypt.

You also need to open ports 443 (TCP) and 10000 (UDP) for Jitsi Meet to function. By default, this role will use ufw to allow these ports. If you're using a different firewall like iptables, set jitsi_meet_configure_firewall: false. If you're on AWS or a similar platform, you will need to open those ports in the Security Group.

Role Variables

# Default certificate files are located at /var/lib/prosody/localhost.{crt,key}
# Not set here to prevent skipping custom Nginx configuration tasks with empty strings.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''

# Use "localhost" by default unless SSL information is provided. 
# If automatic Nginx configuration is off, use FQDN for vhost config.
jitsi_meet_server_name: "{{ ansible_fqdn if (jitsi_meet_ssl_cert_path or not jitsi_meet_configure_nginx) else 'localhost' }}"

# Only allows anonymous access, letting anyone use the server.
jitsi_meet_authentication: anonymous

# This role reads the config file to preserve secrets. 
# To use your own secrets, set the following variables.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''

# Default username and port for the Jicofo service.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347

# The port for Jitsi Videobridge can be specified here. Defaults to 5347.
jitsi_meet_videobridge_port: 5347

# This setting improves privacy by disabling third-party requests.
jitsi_meet_disable_third_party_requests: true

# For screen sharing with Chrome; requires building a specific extension.
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'

# Provide local extension filename for copying to the target host.
jitsi_meet_desktop_sharing_chrome_extension_filename: ''

# Screen sharing setup for Firefox; disabled by default.
jitsi_meet_desktop_sharing_firefox_ext_id: 'null'
jitsi_meet_desktop_sharing_firefox_disabled: true
jitsi_meet_desktop_sharing_firefox_max_version_ext_required: '-1'

# Configuration options for responding to prompts during Jitsi Meet installation.
jitsi_meet_debconf_settings:
  - name: jitsi-meet
    question: jitsi-meet/jvb-hostname
    value: "{{ jitsi_meet_server_name }}"
    vtype: string
  - name: jitsi-meet
    question: jitsi-meet/jvb-serve
    value: "false"
    vtype: boolean
  - name: jitsi-meet-prosody
    question: jitsi-meet-prosody/jvb-hostname
    value: "{{ jitsi_meet_server_name }}"
    vtype: string

# Configure ufw firewall rules for Jitsi Meet.
jitsi_meet_configure_firewall: true

# Automatically configure nginx for Jitsi Meet.
jitsi_meet_configure_nginx: true

Screen Sharing

Jitsi Meet allows screen sharing through browser extensions. Only the person sharing their screen needs the extension; others can view it without any installation. You’ll have to create your own browser extension for Chrome and/or Firefox. For more details, check the Jidesha documentation. This role works only with custom Chrome extensions.

Chrome requires that extensions be installed from approved sites. To install, download the .crx file, go to chrome://extensions, and drag-and-drop the file there. To share screen support with others, send them the extension's URL via the Jitsi Meet chat.

Dependencies

While not a requirement, you should look into thefinn93.letsencrypt for easily obtaining SSL certificates.

Example Playbook

Here is an example of how to use this role with variables:

- name: Configure Jitsi Meet server.
  hosts: jitsi
  vars:
    # Update this to match your host's DNS entry.
    jitsi_meet_server_name: meet.example.com
  roles:
    - role: thefinn93.letsencrypt
      become: yes
      letsencrypt_email: "webmaster@{{ jitsi_meet_server_name }}"
      letsencrypt_cert_domains:
        - "{{ jitsi_meet_server_name }}"
      tags: letsencrypt

    - role: ansible-role-jitsi-meet
      jitsi_meet_ssl_cert_path: "/etc/letsencrypt/live/{{ jitsi_meet_server_name }}/fullchain.pem"
      jitsi_meet_ssl_key_path: "/etc/letsencrypt/live/{{ jitsi_meet_server_name }}/privkey.pem"
      become: yes
      tags: jitsi

Running the Tests

This role uses Molecule and ServerSpec for testing. Install them with:

pip install molecule
gem install serverspec
molecule test

You can run specific tests with:

molecule idempotence
molecule verify

Refer to the Molecule documentation for more details.

License

MIT

Author Information

Freedom of the Press Foundation

Informazioni sul progetto

Installs Jitsi Meet videoconferencing software

Installa
ansible-galaxy install freedomofpress.jitsi-meet
Licenza
Unknown
Download
155
Proprietario
Defending and supporting cutting-edge transparency journalism in the face of adversity.