# 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.

Цю стаття чи розділ ще не перекладено. Дивіться також Команда перекладу ArchWiki українською.

Причина: Ще не повністю перекладено з російської. (Обговорення в Talk:Jitsi-meet (Українська)#)

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.
Примечание: руководство по ручной установке уже не зависит от ОС, единственное изменение, которое вам нужно сделать, это доверительный сертификат, который вы можете сделать так:

    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

Затем restart службы `prosody` (или start / enable 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
    ===

Затем start/enable службу `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}"
    ===

Затем start / enable службу `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;
        }
    }
    ===

Затем restart службу `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:Translateme (Українська)