Compare commits

...

3 commits

9 changed files with 47 additions and 10 deletions

View file

@ -19,6 +19,7 @@ Role Variables
| jitsi_install_user | The user who is going to manage/run the Docker Compose services | {{ ansible_user }} | | jitsi_install_user | The user who is going to manage/run the Docker Compose services | {{ ansible_user }} |
| jitsi_install_path | The location where the service should be deployed | /home/{{ jitsi_install_user }} | | jitsi_install_path | The location where the service should be deployed | /home/{{ jitsi_install_user }} |
| jitsi_multitenant_label | A label (unique accross all instances on this host) identifying the tenant | | | jitsi_multitenant_label | A label (unique accross all instances on this host) identifying the tenant | |
| jitsi_docker_image_tag | Tag that should be used for the jitsi-docker images. If `jitsi_docker_upstream_repo_url` is set, this shall be left at `latest`. | latest |
| jitsi_build_latest_image_from_source | Will fetch the master of `jitsi_docker_upstream_repo_url` and build the docker image as sometimes the latest available images in the Docker Hub are too old | yes | | jitsi_build_latest_image_from_source | Will fetch the master of `jitsi_docker_upstream_repo_url` and build the docker image as sometimes the latest available images in the Docker Hub are too old | yes |
| jitsi_docker_upstream_repo_url | Git repo of docker-jitsi-meet required by `jitsi_build_latest_image_from_source` | https://github.com/jitsi/docker-jitsi-meet.git | | jitsi_docker_upstream_repo_url | Git repo of docker-jitsi-meet required by `jitsi_build_latest_image_from_source` | https://github.com/jitsi/docker-jitsi-meet.git |
| *jitsi_letsencrypt_email* | E-Mail adress used for requesting certificates | Not set | | *jitsi_letsencrypt_email* | E-Mail adress used for requesting certificates | Not set |
@ -45,6 +46,7 @@ Role Variables
| jitsi_public_url | The public URL under which Jitsi Meet can be accessed | http://localhost | | jitsi_public_url | The public URL under which Jitsi Meet can be accessed | http://localhost |
| jitsi_timezone | | Europe/Amsterdam | | jitsi_timezone | | Europe/Amsterdam |
| jitsi_virtual_host | The virtual host that is e.g. used by Traefik, usually part of the public url | localhost | | jitsi_virtual_host | The virtual host that is e.g. used by Traefik, usually part of the public url | localhost |
| jitsi_expose_metrics | Determine whether an additional expoerter for the Jitsi metrics shall be run | False |
\* It is important to provide a dedicated secure password for each service. Generate passwords with e.g. `openssl rand -hex 16` \* It is important to provide a dedicated secure password for each service. Generate passwords with e.g. `openssl rand -hex 16`

View file

@ -3,6 +3,9 @@
jitsi_install_user: '{{ ansible_user }}' # This user must be present on the host jitsi_install_user: '{{ ansible_user }}' # This user must be present on the host
jitsi_install_path: '/home/{{ jitsi_install_user }}' jitsi_install_path: '/home/{{ jitsi_install_user }}'
jitsi_multitenant_label: jitsi_multitenant_label:
jitsi_docker_image_tag: 'latest'
jitsi_build_latest_image_from_source: yes
jitsi_docker_upstream_repo_url: https://github.com/jitsi/docker-jitsi-meet.git
#jitsi_letsencrypt_email:alice@host.tld #jitsi_letsencrypt_email:alice@host.tld
jitsi_enable_letsencrypt: no jitsi_enable_letsencrypt: no
jitsi_exposed_http_port: 8000 jitsi_exposed_http_port: 8000
@ -14,8 +17,7 @@ jitsi_public_url: http://{{ jitsi_virtual_host }}
jitsi_timezone: Europe/Amsterdam jitsi_timezone: Europe/Amsterdam
jitsi_jvb_stun_servers: meet-jit-si-turnrelay.jitsi.net:443 jitsi_jvb_stun_servers: meet-jit-si-turnrelay.jitsi.net:443
jitsi_web_channel_last_n: 3 jitsi_web_channel_last_n: 3
jitsi_build_latest_image_from_source: yes
jitsi_docker_upstream_repo_url: https://github.com/jitsi/docker-jitsi-meet.git
jitsi_enable_third_party_requests: no jitsi_enable_third_party_requests: no
jitsi_expose_metrics: False
# Internal variables # Internal variables
jitsi_multitenant_postfix: "{{ '_' + jitsi_multitenant_label if (jitsi_multitenant_label) else '' }}" jitsi_multitenant_postfix: "{{ '_' + jitsi_multitenant_label if (jitsi_multitenant_label) else '' }}"

2
src

@ -1 +1 @@
Subproject commit eae3f5ce2d7627afe4115f52a61cc7ae3e3e8a31 Subproject commit 9b686c6f4aa74cd33ddcd4dd35decc76a9470e1e

View file

@ -62,6 +62,16 @@
mode: '0640' mode: '0640'
tags: config tags: config
- name: Provide metric exporter environment
template:
src: templates/exporter.env.j2
dest: "{{ jitsi_install_path }}/jitsi/exporter.env"
owner: "{{ jitsi_install_user }}"
group: "{{ jitsi_install_user }}"
mode: '0640'
tags: config
when: jitsi_expose_metrics
- name: "docker-compose: Teardown existing Jitsi service" - name: "docker-compose: Teardown existing Jitsi service"
docker_compose: docker_compose:
project_src: "{{ jitsi_install_path }}/jitsi/" project_src: "{{ jitsi_install_path }}/jitsi/"

View file

@ -3,7 +3,7 @@ version: '3'
services: services:
# Frontend # Frontend
web: web:
image: jitsi/web image: jitsi/web:{{ jitsi_docker_image_tag }}
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- ${CONFIG}/web:/config - ${CONFIG}/web:/config
@ -60,7 +60,7 @@ services:
# XMPP server # XMPP server
prosody: prosody:
image: jitsi/prosody image: jitsi/prosody:{{ jitsi_docker_image_tag }}
restart: unless-stopped restart: unless-stopped
expose: expose:
- '5222' - '5222'
@ -87,6 +87,7 @@ services:
- LDAP_TLS_CACERT_FILE - LDAP_TLS_CACERT_FILE
- LDAP_TLS_CACERT_DIR - LDAP_TLS_CACERT_DIR
- LDAP_START_TLS - LDAP_START_TLS
- PUBLIC_URL
- XMPP_DOMAIN - XMPP_DOMAIN
- XMPP_AUTH_DOMAIN - XMPP_AUTH_DOMAIN
- XMPP_GUEST_DOMAIN - XMPP_GUEST_DOMAIN
@ -124,12 +125,13 @@ services:
# Focus component # Focus component
jicofo: jicofo:
image: jitsi/jicofo image: jitsi/jicofo:{{ jitsi_docker_image_tag }}
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- ${CONFIG}/jicofo:/config - ${CONFIG}/jicofo:/config
environment: environment:
- ENABLE_AUTH - ENABLE_AUTH
- PUBLIC_URL
- XMPP_DOMAIN - XMPP_DOMAIN
- XMPP_AUTH_DOMAIN - XMPP_AUTH_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN - XMPP_INTERNAL_MUC_DOMAIN
@ -150,7 +152,7 @@ services:
# Video bridge # Video bridge
jvb: jvb:
image: jitsi/jvb image: jitsi/jvb:{{ jitsi_docker_image_tag }}
restart: unless-stopped restart: unless-stopped
ports: ports:
- '${JVB_PORT}:${JVB_PORT}/udp' - '${JVB_PORT}:${JVB_PORT}/udp'
@ -159,6 +161,7 @@ services:
- ${CONFIG}/jvb:/config - ${CONFIG}/jvb:/config
environment: environment:
- DOCKER_HOST_ADDRESS - DOCKER_HOST_ADDRESS
- PUBLIC_URL
- XMPP_AUTH_DOMAIN - XMPP_AUTH_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN - XMPP_INTERNAL_MUC_DOMAIN
- XMPP_SERVER - XMPP_SERVER
@ -176,6 +179,20 @@ services:
networks: networks:
meet.jitsi: meet.jitsi:
{% if jitsi_expose_metrics %}
# Data exporter
exporter:
image: goberle/jitsi-prom-exporter
restart: unless-stopped
env_file: exporter.env
depends_on:
- jicofo
networks:
# Expose the data exporter to the public network managed by traefik
public:
meet.jitsi:
{% endif %}
# Custom network so all services can communicate using a FQDN # Custom network so all services can communicate using a FQDN
networks: networks:
meet.jitsi: meet.jitsi:

View file

@ -3,7 +3,7 @@ version: '3'
services: services:
# Etherpad: real-time collaborative document editing # Etherpad: real-time collaborative document editing
etherpad: etherpad:
image: jitsi/etherpad image: jitsi/etherpad:{{ jitsi_docker_image_tag }}
restart: unless-stopped restart: unless-stopped
networks: networks:
meet.jitsi: meet.jitsi:

View file

@ -0,0 +1,6 @@
XMPP_USER={{ jitsi_jicofo_auth_user }}
XMPP_PW={{ jitsi_jicofo_auth_password }}
XMPP_SERVER=xmpp.meet.jitsi
XMPP_PORT=5222
XMPP_AUTH_DOMAIN=auth.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi

View file

@ -2,7 +2,7 @@ version: '3'
services: services:
jibri: jibri:
image: jitsi/jibri image: jitsi/jibri:{{ jitsi_docker_image_tag }}
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- ${CONFIG}/jibri:/config - ${CONFIG}/jibri:/config

View file

@ -3,7 +3,7 @@ version: '3'
services: services:
# SIP gateway (audio) # SIP gateway (audio)
jigasi: jigasi:
image: jitsi/jigasi image: jitsi/jigasi:{{ jitsi_docker_image_tag }}
restart: unless-stopped restart: unless-stopped
ports: ports:
- '${JIGASI_PORT_MIN}-${JIGASI_PORT_MAX}:${JIGASI_PORT_MIN}-${JIGASI_PORT_MAX}/udp' - '${JIGASI_PORT_MIN}-${JIGASI_PORT_MAX}:${JIGASI_PORT_MIN}-${JIGASI_PORT_MAX}/udp'