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

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

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Перевод этой статьи или раздела не отражает оригинальное содержание.

Причина: Данная статья содержит пунктуационные и стилистические ошибки (см. 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

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

- Notes by C0rn3j
- Configurations used in the article

Categories:

- Telephony (Русский)
- Voice over IP (Русский)

Hidden category:

- Pages or sections flagged with Template:Bad translation (Русский)