Инструменты пользователя

Инструменты сайта


service:trueconf

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:trueconf [25.03.2022 10:04] – [TrueConf] viacheslavservice:trueconf [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== TrueConf ======
 +Системные требования: https://trueconf.ru/support/system-requirements.html
  
 +Ключ привязан к:
 +  * Доменному имени
 +  * Hard disk size
 +  * Serial number (SMART)
 +  * MAC address of the network card (MAC)
 +  * Physical memory (MEM) size
 +
 +Документация: https://docs.trueconf.com/server/en/\\
 +База знаний: https://trueconf.com/blog/knowledge-base
 +
 +===== Установка =====
 +==== Linux ====
 +https://trueconf.ru/downloads/linux.html#linux-distr\\
 +https://trueconf.ru/blog/baza-znaniy/kak-za-15-minut-razvernut-sistemu-videokonferenczij-na-baze-os-linux.html
 +
 +=== Debian 11 ===
 +<code bash>
 +apt install curl gnupg2 -y
 +echo "deb http://deb.trueconf.com/debian bullseye non-free" > /etc/apt/sources.list.d/trueconf.list
 +curl http://deb.trueconf.com/client/packages.trueconf.key | apt-key add -
 +apt update && apt install trueconf-server -y
 +</code>
 +
 +++++ Docker (неактуально) |
 +==== Docker ====
 +https://trueconf.ru/blog/baza-znaniy/kak-zapustit-trueconf-server-v-docker-kontejnere.html\\
 +https://hub.docker.com/r/trueconf/trueconf-server
 +
 +Примерный docker-compose.yaml
 +<file yaml docker-compose.yaml>
 +version: '3.7'
 +services:
 +  trueconf:
 +    image: trueconf/trueconf-server:stable
 +    container_name: trueconf
 +    restart: unless-stopped
 +    environment:
 +      ADMIN_USER: admin
 +      ADMIN_PASSWORD: password
 +      ServerID: XXXXXX
 +      Serial: XXXX-XXXX-XXXX
 +      ServerName: trueconf.domain.ru
 +    ports:
 +      - 80:80
 +      - 443:443
 +      - 4307:4307
 +      - 53000-55000:53000-55000/udp
 +    volumes:
 +      - /home/$USER/trueconf/server:/opt/trueconf/server/var/lib
 +      - /home/$USER/trueconf/ssl:/ssl
 +
 +</file>
 +
 +
 +При запуске ошибка:
 +<code bash>
 +ERROR: for trueconf  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=70)
 +ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
 +If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).
 +</code>
 +Решение: в каталоге с ''docker-compose.yml'' создать файл ''.env''. Содержимое:
 +<code>
 +#.env
 +COMPOSE_HTTP_TIMEOUT=200
 +</code>
 +
 +++++
 +
 +===== Настройка =====
 +==== Реверс-прокси ====
 +Из переписки с техподдержкой:
 +
 +Могу привести рабочий пример настройки Nginx: (в инструкции использован TCS в докер так как ранее клиентам предоставлял данную инструкцию конкретно для контейнера)
 +В случаи если Nginx и TCS сервер находятся на разных машинах менять стандартные порты 443 и 80 на кастомные нет смысла.
 +
 +1) Докер контейнер
 +
 +<code bash>
 +sudo docker run -d -p 8888:80 -p 4443:443 -p 4307:4307 -e ADMIN_USER=tc_admin -e ADMIN_PASSWORD=12345 -v /home/$USER/trueconf/server:/opt/trueconf/server/var/lib trueconf/trueconf-server:stable
 +</code>
 +
 +2) Прослушиваемые порты на хостовой машине с докер контейнером TCS
 +
 +<code bash>
 +netstat -nltp
 +
 +tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 6701/docker-proxy
 +tcp 0 0 0.0.0.0:4443 0.0.0.0:* LISTEN 6722/docker-proxy
 +</code>
 +
 +3) Порты настроенные в веб панели TCS, 80 и 443 (сертификат SSL в NGINX и в TCS используется одинаковый *.tcsupport.loc )
 +
 +4) Конфиг Nginx
 +
 +<code bash>
 +server {
 +listen 80 default_server;
 +listen [::]:80 default_server;
 +listen 443 ssl default_server;
 +listen [::]:443 ssl default_server;
 +
 +ssl_certificate /etc/cert/server.crt;
 +ssl_certificate_key /etc/cert/server.key;
 +root /var/www/html;
 +index index.html index.htm;
 +
 +server_name docker.tcsupport.loc;
 +location / {
 +proxy_pass https://127.0.0.1:4443;
 +proxy_ssl_verify off;
 +proxy_set_header Host $host;
 +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 +proxy_set_header X-Real-IP $remote_addr;
 +}
 +
 +location /websocket/ {
 +proxy_pass http://127.0.0.1:4307/websocket/;
 +proxy_http_version 1.1;
 +proxy_set_header Upgrade $http_upgrade;
 +proxy_set_header Connection "Upgrade";
 +proxy_set_header Host $host;
 +}
 +
 +}
 +</code>
 +
 +TCP соединение поднимается на 443 порт (то есть на Nginx). WebRTC работает, Rest запросы тоже.
 +
 +==== Нет соединения с сервером (через реверс-прокси) ====
 +Вопрос: при попытке подключиться к конференции браузером, выдаётся ошибка «Нет соединения с сервером». Почему?\\
 +{{:service:pasted:20220325-100058.png}}
 +
 +Ответ техподдержки: Скорее всего, не ходят веб-сокеты.
 +
 +++++ Соберите дамп из консоли браузера: |
 +{{:service:pasted:20220325-100132.png}}
 +
 +{{:service:pasted:20220325-100146.png}}
 +++++
 +
 +Пришлите полученный .har файл.
 +
 +===== SSL-сертификат =====
 +Пути
 +<code>
 +# сам сертификат
 +/opt/trueconf/server/etc/webmanager/ssl/server.cer
 +# ключ
 +/opt/trueconf/server/etc/webmanager/ssl/server.key
 +</code>
 +Если сертификат выбран уже свой через веб-конфигуратор, то сертификат будет называться ''custom.crt'', а ключ ''custom.key''.
 +
 +Конфиги: ''/opt/trueconf/server/etc/webmanager/opt''
 +
 +<file bash listen.conf>
 +Listen 80
 +Define ssl_port 443
 +</file>
 +
 +<file bash config.ssl>
 +<IfModule ssl_module>
 +    SSLEngine On
 +    SSLCertificateFile "/opt/trueconf/server/etc/webmanager/ssl/server.crt"
 +    SSLCertificateKeyFile "/opt/trueconf/server/etc/webmanager/ssl/server.key"
 +    SSLProtocol +TLSv1.2 +TLSv1.3
 +    SSLCipherSuite      "${ssl_cipher_suite}"
 +    SSLHonorCipherOrder on
 +    SSLCompression      off
 +    SSLSessionTickets   off
 +</IfModule>
 +</file>
 +
 +==== Выпуск SSL-сертификата ====
 +++++ Выпуск делается один раз, больше не надо |
 +<code bash>
 +# Остановить веб-сервис, чтобы не занимал 80-й порт
 +systemctl stop trueconf-web
 +# Выпустить сертификат
 +certbot certonly --standalone --keep --agree-tos --expand -m ssl@example.com -d tconf.example.com
 +
 +# Saving debug log to /var/log/letsencrypt/letsencrypt.log
 +# Plugins selected: Authenticator standalone, Installer None
 +# Requesting a certificate for tconf.example.com
 +# Performing the following challenges:
 +# http-01 challenge for tconf.example.com
 +# Waiting for verification...
 +# Cleaning up challenges
 +
 +# IMPORTANT NOTES:
 +#  - Congratulations! Your certificate and chain have been saved at:
 +#    /etc/letsencrypt/live/tconf.example.com/fullchain.pem
 +#    Your key file has been saved at:
 +#    /etc/letsencrypt/live/tconf.example.com/privkey.pem
 +#    Your certificate will expire on 2023-03-20. To obtain a new or
 +#    tweaked version of this certificate in the future, simply run
 +#    certbot again. To non-interactively renew *all* of your
 +#    certificates, run "certbot renew"
 +
 +# Скопировать сертификаты и дать права Труконфу
 +cp /etc/letsencrypt/live/tconf.example.com/cert.pem /opt/trueconf/server/etc/webmanager/ssl/custom.crt
 +cp /etc/letsencrypt/live/tconf.example.com/privkey.pem /opt/trueconf/server/etc/webmanager/ssl/custom.key
 +chown trueconf:trueconf /opt/trueconf/server/etc/webmanager/ssl/custom.*
 +# Запустить веб-сервис
 +systemctl start trueconf-web
 +</code>
 +[[https://trueconf.ru/blog/baza-znaniy/sozdanie-sertifikata-lets-encrypt-na-linux.html|Создание сертификата «Let’s Encrypt» на Linux]]
 +++++
 +
 +==== Обновление SSL-сертификата ====
 +Настройка автообновления в systemd.timer
 +<file bash /lib/systemd/system/certbot.timer>
 +[Unit]
 +Description=Run certbot weekly
 +
 +[Timer]
 +# В 8:30 по понедельникам
 +OnCalendar=Mon *-*-* 08:30:00
 +#RandomizedDelaySec=43200
 +Persistent=true
 +
 +[Install]
 +WantedBy=timers.target
 +</file>
 +
 +<file bash /lib/systemd/system/certbot.service>
 +[Unit]
 +Description=Certbot
 +Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
 +Documentation=https://certbot.eff.org/docs
 +[Service]
 +Type=oneshot
 +ExecStart=/usr/bin/certbot -q renew \
 +--pre-hook 'systemctl stop trueconf-web' \
 +--deploy-hook 'cp /etc/letsencrypt/live/tconf.example.com/cert.pem /opt/trueconf/server/etc/webmanager/ssl/custom.crt && cp /etc/letsencrypt/live/tconf.example.com/privkey.pem /opt/trueconf/server/etc/webmanager/ssl/custom.key && chown trueconf:trueconf /opt/trueconf/server/etc/webmanager/ssl/custom.*' \
 +--post-hook 'systemctl start trueconf-web'
 +PrivateTmp=true
 +</file>
 +[[https://habr.com/ru/post/535930/|Systemd для продолжающих. Part 1 — Запуск юнитов по временным событиям]]\\
 +https://eff-certbot.readthedocs.io/en/stable/using.html#certbot-command-line-options

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki