oneoffadmins.ansible_role_jitsi_meet
jitsi-meet
This sets up and configures Jitsi Meet, a software for video conferencing.
Requirements
You need to have a domain name pointing to your server and SSL certificates ready. If you don't have SSL certificates, you can use the thefinn93.letsencrypt Ansible role to get free SSL certificates from LetsEncrypt.
Make sure to open the TCP port 443 and UDP port 10000 on your server for Jitsi Meet to function correctly. By default, this role will use ufw
to open these ports. If you're using another firewall, like iptables, set jitsi_meet_configure_firewall: false
. On AWS or similar services, open these ports in your Security Group.
Role Variables
Here are some important configuration options:
jitsi_meet_ssl_cert_path: '' # Leave blank for the default certificates.
jitsi_meet_ssl_key_path: '' # Leave blank for the default key.
# The server name. Defaults to "localhost" unless SSL is set.
jitsi_meet_server_name: "{{ ansible_fqdn if (jitsi_meet_ssl_cert_path or not jitsi_meet_configure_nginx) else 'localhost' }}"
# Only anonymous authentication is allowed.
jitsi_meet_authentication: anonymous
# Secrets generated by the installation.
# If you want to use your own, set these variables.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
# Default user and port settings.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
jitsi_meet_videobridge_port: 5347
# Settings if Jitsi is behind a NAT.
jitsi_meet_videobridge_nat:
local_ip: ''
public_ip: ''
# Disables third-party requests for privacy.
jitsi_meet_disable_third_party_requests: true
# Screen sharing setup for Chrome.
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
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'
# Answers to prompts during the 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
# Automatically configures the firewall.
jitsi_meet_configure_firewall: true
# Automatically installs nginx and sets it up for Jitsi.
jitsi_meet_configure_nginx: true
Screen Sharing
Jitsi Meet allows users to share their screen using browser extensions. Only the person who wants to share their screen needs to install the extension; others in the meeting can see the shared screen without any extra installations. You'll need to create a browser extension for Chrome and/or Firefox. Check the Jidesha documentation for further instructions.
For Chrome, as the browser restricts extensions from unauthorized sites, download the .crx
file directly, go to chrome://extensions
, and drag the file there to install it. If another participant wants to share their screen, send them the URL for the extension through the chat in Jitsi Meet.
Dependencies
While it's not strictly a dependency, consider looking at thefinn93.letsencrypt for easy SSL certificate setup.
Example Playbook
Here's an example of how to use this role:
- name: Configure jitsi-meet server.
hosts: jitsi
vars:
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. To run the tests:
pip install molecule
gem install serverspec
molecule test
You can also run specific commands:
molecule idempotence
molecule verify
Refer to the Molecule documentation for more information.
License
MIT
Author Information
ansible-galaxy install oneoffadmins.ansible_role_jitsi_meet