Обзор развертывания 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:
-
Запуск контейнера:
-
Остановка контейнера:
-
Перезапуск контейнера: