Обзор развертывания Owncast на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu. Требуется наличие прав суперпользователя (root) для выполнения команд установки и настройки системных сервисов.
Необходимы следующие сетевые условия: - Открытый доступ к порту 80 и 443 для работы веб-сервера и получения SSL-сертификатов. - Открытый доступ к порту 8080 для внутреннего проксирования запросов к приложению. - Наличие доменного имени, настроенного на IP-адрес сервера.
Структура файлов и каталогов¶
Приложение и его компоненты размещаются в следующих директориях:
/root/owncast— рабочая директория приложения Owncast, содержащая исполняемый файл и конфигурацию./root/nginx— директория для конфигурации контейнера Nginx и файлаcompose.yml./data/nginx/user_conf.d— каталог с пользовательскими конфигурационными файлами Nginx./data/nginx/nginx-certbot.env— файл переменных окружения для контейнера Nginx./etc/systemd/system/owncast.service— файл сервиса для управления приложением черезsystemd./etc/letsencrypt— точка монтирования для хранения SSL-сертификатов (внутри контейнера).
Процесс установки приложения¶
Установка приложения выполняется в два этапа: установка самого ПО и настройка веб-сервера с SSL-сертификатами.
-
Обновление кэша пакетов и установка утилиты
unzip: -
Установка Owncast с использованием официального скрипта:
-
Создание файла сервиса
systemdдля автоматического запуска приложения. Файл размещается по пути/etc/systemd/system/owncast.serviceсо следующим содержимым: -
Перезагрузка демона
systemdдля применения изменений: -
Включение и запуск сервиса:
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-сервера и получения SSL-сертификатов используется контейнер Nginx с Certbot.
Конфигурация контейнера описана в файле /root/nginx/compose.yml. Основные параметры развертывания:
- Образ контейнера:
jonasal/nginx-certbot:latest. - Режим сети:
host. - Переменная окружения
CERTBOT_EMAILустановлена в значениеhkadm@hostkey.com. - Файл переменных окружения:
/data/nginx/nginx-certbot.env. - Монтирование тома
nginx_secretsв/etc/letsencryptдля хранения сертификатов. - Монтирование директории конфигураций
/data/nginx/user_conf.dв/etc/nginx/user_conf.dвнутри контейнера.
Запуск контейнера выполняется командой:
Команда должна быть выполнена из директории/root/nginx. Прокси серверы¶
Веб-сервер Nginx работает в режиме прокси-сервера, перенаправляя входящие запросы на локальный экземпляр Owncast.
Настройка проксирования осуществляется через модификацию конфигурационного файла в директории /data/nginx/user_conf.d. В блоке location / добавляется директива:
8080, где работает приложение Owncast. Сертификаты SSL генерируются и обновляются автоматически с помощью Certbot, встроенного в контейнер Nginx.
Настройки прав¶
Права доступа к файлам и директориям настроены следующим образом:
- Директория
/root/nginxимеет права0755и принадлежит пользователюroot. - Файл
/root/nginx/compose.ymlимеет права0644и принадлежит пользователюroot. - Файл сервиса
/etc/systemd/system/owncast.serviceимеет права0644. - Приложение Owncast запускается от имени пользователя
root.
Запуск, остановка и обновление¶
Управление приложением Owncast осуществляется через стандартные команды systemctl:
- Запуск сервиса:
- Остановка сервиса:
- Перезапуск сервиса:
- Проверка статуса сервиса:
Управление контейнером Nginx осуществляется через docker compose из директории /root/nginx:
- Запуск контейнера:
- Остановка контейнера:
- Перезапуск контейнера: