Spreed представляет собой бесплатный сервер WebRTC для аудио — и видеозвонков, а также для проведения конференций, созданный с акцентом на конфиденциальность. WebRTC — это открытая и бесплатная технология, позволяющая браузерам устанавливать прямое одноранговое соединение. Сервер Spreed WebRTC применяет сквозное шифрование, обеспечивая защиту личной информации и безопасность пользователей.
Spreed WebRTC предоставляет возможность выполнения ряда задач.
- Чат с безопасным обменом аудио, видео и текстовыми сообщениями.
- Веб-конференции
- Индивидуальные видеозвонки
Данный учебник научит вас, как установить сервер Spreed WebRTC на виртуальном частном сервере или выделенной машине с операционной системой Ubuntu 16.04.
Содержание статьи
Установка сервера Spreed WebRTC на Ubuntu 16.04 с использованием официального PPA.
Установка сервера Spreed WebRTC на Ubuntu 16.04 из официального PPA осуществляется с легкостью.
sudo apt-add-repository ppa:strukturag/spreed-webrtc sudo apt update sudo apt install spreed-webrtc
По завершении установки сервер spreed-webrtc автоматически активируется, и его встроенный веб-сервер начнет прослушивание на 127.0.0.1:8080. Вы можете проверить его состояние с помощью:
systemctl status spreed-webrtc
●spreed-webrtc.service - Служба сервера Spreed WebRTC Загружено: успешно загружено (/lib/systemd/system/spreed-webrtc.service;включеноАктивный статус: включен (предустановленный параметр).действует активно

Apache
Если вы работаете с Apache, выполните следующие шаги.
Настройте веб-сервер Apache.
sudo apt install apache2
После этого необходимо создать файл виртуального хоста для Spreed.
sudo nano /etc/apache2/sites-available/spreed-webrtc.conf
Сохраните следующий текст в файл. Замените spreed. your-domain.com на доменное имя, которое вы выбрали, и обязательно настройте A запись.
Сохраните изменения и закройте документ. После этого необходимо активировать модуль proxy_http.
sudo a2enmod proxy_http
После этого активируйте данный виртуальный хост.
sudo a2ensite spreed-webrtc.conf
Проверьте настройки и перезапустите Apache.
sudo apachectl configtest sudo systemctl reload apache2
Теперь вы должны иметь возможность использовать Spreed WebRTC, зайдя на доменное имя через веб-браузер.

Активирование HTTPS
Теперь давайте получим бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующие команды, чтобы установить клиент Let’s Encrypt (certbot) из официального PPA.
sudo apt install certbot
Если вы работаете с веб-сервером Apache, обязательно установите плагин Certbot для Apache.
sudo apt install python3-certbot-apache
После этого введите следующую команду для получения бесплатного сертификата TLS/SSL.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] - d spreed. example.com
Если вы применяете веб-сервер Nginx, то необходимо установить плагин Certbot, предназначенный для работы с Nginx.
sudo apt install python3-certbot-nginx
Затем примените плагин Nginx для получения и установки сертификата, выполнив следующую команду.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] - d spreed. example.com
На экране появится следующий текст, подтверждающий успешное получение TLS сертификата.

Настройка сервера TURN/STUN
WebRTC не сможет функционировать, если пользователи находятся за различными NAT-устройствами, так как в этом случае связь будет заблокирована. Чтобы преодолеть ограничения NAT, необходимо настроить сервер TURN/STUN, который будет действовать в качестве посредника между веб-браузерами. TURN расшифровывается как Traversal Using Relays around NAT. Coturn — это бесплатный и открытый сервер TURN и STUN, предназначенный для VoIP и WebRTC.
Coturn можно установить из репозитория Ubuntu, используя следующую команду:
sudo apt install coturn
После установки программа запустится автоматически. Чтобы узнать о её статусе, используйте:
systemctl status coturn
Если он не активирован, запустите его самостоятельно с помощью:
sudo systemctl start coturn
Также активируйте автоматический запуск при старте системы.
sudo systemctl enable coturn
Конфигурация Coturn для Spreed WebRTC
Внесите изменения в главный файл настроек.
sudo nano /etc/turnserver.conf
Все строки в данном файле изначально закомментированы. Приведен пример конфигурации, который можно скопировать и вставить в ваш файл.
- Замените your-domain.com на название вашего домена для NextCloud или Spreed WebRTC.
- Поменяйте 12.34.56.78 на внешний IP-адрес вашего сервера.
- Создайте длинный и надежный пароль для аутентификации. (Для генерации случайной строки можно воспользоваться командой openssl rand - base64 20.)
# Работать только как TURN сервер, все запросы STUN будут игнорироваться. no-stun # Укажите порт прослушивания. Измените на 80 или 443, чтобы обойти некоторые строгие NAT. listening-port=8443 tls-listening-port=5349 # Укажите IP-адрес для прослушивания, если не установлен, то Coturn слушает на всех системных IP. listening-ip=12.34.56.78 relay-ip=12.34.56.78Эти строки содержат поддержку отпечатков механизма lt-cred-mech в рамках WebRTC.your-domain.comМетод проверки подлинности use-auth-secret static-auth-secret=your-auth-secret total-quota=100 # Общая пропускная способность в байтах в секунду, которую TURN сервер может выделить # для сессий, комбинированных (входные и выходные сетевые потоки обрабатываются отдельно). bps-capacity=0 # Эта строка обеспечивает дополнительную безопасность. stale-nonce log-file=/var/log/turnserver/turn.log no-loopback-peers no-multicast-peers
Сохраните файл и закройте его. После этого перезапустите сервер coturn, используя следующую команду:
sudo systemctl restart coturn
Coturn функционирует в роли пользователя turnserver. Запустите следующую команду, и вы должны заметить, что он прослушивает порт 8443.
sudo ss - lnpt | grep turnserver
Теперь приступим к редактированию файла конфигурации Spreed WebRTC.
sudo nano /etc/spreed/server.conf
Включите следующие две строки в раздел [app]. Замените текст, выделенный красным, на соответствующий.
turnURIs = turn:coturn-server-ip8443?transport=udp turnSecret =your-auth-secrect
Сохраните изменения и закройте файл. После этого перезапустите сервер Spreed WebRTC.
sudo systemctl restart spreed-webrtc
Необходимо разрешить доступ к TCP и UDP порту 8843 в файрволе для корректной работы Coturn. Если у вас установлен файрвол UFW, используйте следующие команды.
sudo ufw allow 8443/tcp sudo ufw allow 8443/udp
После запуска Coturn и повторного запуска Spreed WebRTC пользователи, находящиеся за NAT, должны успешно подключаться к аудио - и видеозвонкам.
Следующий этап
Я надеюсь, что данный учебник оказался полезным для вас при установке сервера Spreed WebRTC на Ubuntu с помощью Docker-образа. Также у вас есть возможность интегрировать Spreed. Me с NextCloud.
- Интеграция Spreed Me WebRTC с NextCloud: пошаговое руководство.
Надеюсь, этот гид оказался полезным для вас при установке сервера Spreed WebRTC на Ubuntu 16.04. Как обычно, если вы считаете этот материал ценным, не забудьте подписаться на нашу бесплатную рассылку.

