Jitsi-meet (Русский)

From ArchWiki
Jump to navigation Jump to search

Tango-preferences-desktop-locale-modified.pngПеревод этой статьи или раздела не отражает оригинальное содержание.Tango-preferences-desktop-locale-modified.png

Причина: Данная статья содержит пунктуационные и стилистические ошибки (см. Help:Style), а также не переведена до конца, см. оригинал (англ.). (Discuss)

Jitsi - это набор проектов с открытым исходным кодом, который позволяет легко создавать и развертывать безопасные решения для видеоконференций. В основе Jitsi находятся Jitsi Videobridge и Jitsi Meet, которые позволяют проводить конференции в Интернете, в то время как другие проекты сообщества предоставляют другие функции, такие как аудио, набор номера, запись и одновременная трансляция.

Установка

Установите jitsi-meet-binAUR, jitsi-videobridge-binAUR и jicofo-binAUR.

Также можно установить jitsi-meet-gitAUR, jitsi-videobridgeAUR и jicofo-gitAUR.

Примечание: Пути и службы конфигурации в пакетах jitsi-meet-gitAUR, jitsi-videobridgeAUR и jicofo-gitAUR отличаются от путей и служб, используемых в пакетах jitsi-meet-binAUR, jitsi-videobridge-binAUR и jicofo-binAUR.
Примечание: руководство по ручной установке[устаревшая ссылка 2020-08-02] уже не зависит от ОС, единственное изменение, которое вам нужно сделать, это доверительный сертификат, который вы можете сделать так:
trust anchor /var/lib/prosody/auth.meet.example.com.crt

Конфигурация

Конфигурация для пакетов из git

Если имя вашего сервера example.com, то типичным выбором для вашего jitsi будет meet.example.com. Вам нужно будет обновить запись DNS вашего сервера с записью meet. Остальная часть предполагает, что вы это сделали.

Также у вас должны быть сертификаты SSL/TLS для вашего домена meet.example.com, например, см. certbot.

Остальные инструкции в bash поясняют, что нужно заменить. Выполнение команд в оболочке bash с правами суперпользователя должны выполнить установку.

Замените доменное имя на свое собственное:

export JITSIFQDN=meet.example.com

Укажите правильный путь к сгенерированным сертификатам:

export JITSIFQDN_CRT=/etc/letsencrypt/live/meet.example.com/fullchain.pem
export JITSIFQDN_KEY=/etc/letsencrypt/live/meet.example.com/privkey.pem

Пароли нужны. Мы настроили некоторые переменные оболочки, чтобы хранить их для дальнейшего использования. Если хотите Вы можете заменить $(mktemp XXXXXXX) собственными паролями, но сгенерированные значения mktemp, вполне должны подойти.

export SECRET1=$(mktemp -u XXXXXXXX)
export SECRET2=$(mktemp -u XXXXXXXX)
export SECRET3=$(mktemp -u XXXXXXXX)

Настроить prosody

prosody является обязательным условием, и вам нужно будет добавить в него конфигурацию для ваших служб Jitsi. Если у вас еще не настроен сервер prosody, установите prosody и lua52-sec прямо сейчас. Остальная часть конфигурации prosody предполагает, что у вас установлен prosody локально.

Сначала убедитесь, что есть подкаталог для хранения пользовательских конфигураций и что просодия загружает его:

mkdir -p /etc/prosody/conf.d
cat >> /etc/prosody/prosody.cfg.lua <<===
  Include "conf.d/*.cfg.lua"
===

Создайте конфигурационный файл prosody для вашего домена:

cat > /etc/prosody/conf.d/$JITSIFQDN.cfg.lua <<===
VirtualHost "${JITSIFQDN}"
    authentication = "anonymous"
    ssl = {
        key = "/var/lib/prosody/${JITSIFQDN}.key";
        certificate = "/var/lib/prosody/${JITSIFQDN}.crt";
    }
    modules_enabled = {
        "bosh";
        "pubsub";
    }
    c2s_require_encryption = false

VirtualHost "auth.${JITSIFQDN}"
    ssl = {
        key = "/var/lib/prosody/auth.${JITSIFQDN}.key";
        certificate = "/var/lib/prosody/auth.${JITSIFQDN}.crt";
    }
    authentication = "internal_plain"
    admins = { "focus@auth.${JITSIFQDN}" }

Component "conference.${JITSIFQDN}" "muc"

Component "jitsi-videobridge.${JITSIFQDN}"
    component_secret = "${SECRET1}"

Component "focus.${JITSIFQDN}"
    component_secret = "${SECRET2}"
===

Создайте сертификаты, которые нужны prosody. Это интерактивно:

prosodyctl cert generate $JITSIFQDN
prosodyctl cert generate auth.$JITSIFQDN

Зарегистрировать пользователя focus:

prosodyctl register focus auth.$JITSIFQDN $SECRET3

Доверительный сертификат:

trust anchor /var/lib/prosody/auth.$JITSIFQDN.crt

Затем перезапустите службы prosody (или запустите/включите prosody, если она только что была установлена).

Настроить jitsi-videobridge

Конфигурация для jitsi-videobridge

cat > /etc/jitsi-videobridge/jitsi-videobridge.conf <<===
flags="--host=localhost --domain=${JITSIFQDN} --port=5347 --secret=${SECRET1}"
===

Если вы хотите, чтобы настройки логирования и sip-коммуникатора находились в одной папке, вы можете сделать следующее

cat >> /etc/jitsi-videobridge/jitsi-videobridge.conf <<===
VIDEOBRIDGE_DEBUG_OPTIONS="-Djava.util.logging.config.file=/etc/jitsi-videobridge/logging.properties -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=jitsi-videobridge -Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc 
===
cp /opt/jitsi-videobridge/lib/logging.properties /etc/jitsi-videobridge/logging.properties

cat > /etc/jitsi-videobridge/sip-communicator.properties <<===
org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.${JITSIFQDN}/.*
org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443
===

Затем запустите/включите службу jitsi-videobridge.

Настроить jicofo

cat > /etc/jicofo/jicofo.conf <<===
flags="--host=localhost --domain=${JITSIFQDN} --secret=${SECRET2} --user_domain=auth.${JITSIFQDN} --user_name=focus --user_password=${SECRET3}"
===

Затем запустите/включите службу jicofo.

Настроить jitsi-meet

cp /opt/jitsi-meet/config.js /opt/jitsi-meet/config.js.orig
cat > /opt/jitsi-meet/config.js <<===
var domainroot = "${JITSIFQDN}" 
var config = { 
       hosts: { 
               domain: domainroot, 
               muc: 'conference.'+domainroot, 
               bridge: 'jitsi-videobridge.'+domainroot,
               focus: 'focus.'+domainroot
       },
       useNicks: false,
       bosh: '//'+domainroot+'/http-bind',
}
===

Настроить nginx

Вот минимальная рекомендуемая конфигурация nginx HTTPS из https://ssl-config.mozilla.org/#server=nginx&version=1.16.1&config=intermediate&openssl=1.1.1f&guideline=5.4 и минимальная конфигурация рекомендуемая в документации Jitsi-Meet. Хотя эта конфигурация будет работать нормально, вы возможно захотите адаптировать ее к своему собственному серверу.

sed -i "/^http.*{/a include /etc/nginx/${JITSIFQDN}.conf;" /etc/nginx/nginx.conf
#WARNING - The config file text uses bash escapes. If copying for hand editing, each '\$' needs to be replaced with '$'
#                  and each '${VARIABLE}' needs to be replaced.
cat > /etc/nginx/${JITSIFQDN}.conf <<===
# Redirect http to https 
server { 
    listen 80; 
    listen [::]:80; 
    server_name call.mechadept.nz; 
 
    return 301 https://\$host\$request_uri; 
} 
 
# Mozilla intermediate config 
server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
 
    #ssl_certificate /path/to/signed_cert_plus_intermediates; 
    #ssl_certificate_key /path/to/private_key; 
    ssl_session_timeout 1d; 
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions 
    ssl_session_tickets off; 
 
    # curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam 
#    ssl_dhparam /path/to/dhparam; 
 
    # intermediate configuration 
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    # HSTS (ngx_http_headers_module is required) (63072000 seconds)
    add_header Strict-Transport-Security "max-age=63072000" always;
#} #Merge mozilla config with jitsi recommended one

    ssl_certificate /etc/letsencrypt/live/${JITSIFQDN}/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/${JITSIFQDN}/privkey.pem;

    error_page 404 /static/404.html;

# Jitsi recommended settings below

#server {
#    listen 80;

    server_name ${JITSIFQDN};
    # set the root
    root /opt/jitsi-meet;
    index index.html;

    location ~ ^/([a-zA-Z0-9=\?]+)\$ {
        rewrite ^/(.*)\$ / break;
        }

    location / {
        ssi on;
    }

    # BOSH
    location /http-bind {
        proxy_pass      http://localhost:5280/http-bind;
        proxy_set_header X-Forwarded-For \$remote_addr;
        proxy_set_header Host \$http_host;
    }

    # xmpp websockets
    location /xmpp-websocket {
        proxy_pass http://localhost:5280/xmpp-websocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade \$http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host \$host;
        tcp_nodelay on;
    }
}
=== 

Затем перезапустите службу nginx.

Советы и хитрости

Запуск за NAT

Следующие порты должны быть перенаправлены на ваш сервер:

HTTPS:

  • TCP/443

Jitsi Videobridge:

  • TCP/4443
  • UDP/10000

Смотрите также