Перейти к содержанию

Обзор развертывания 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-сертификатами.

  1. Обновление кэша пакетов и установка утилиты unzip:

    apt update
    apt install unzip
    

  2. Установка Owncast с использованием официального скрипта:

    curl -s https://owncast.online/install.sh | bash
    

  3. Создание файла сервиса systemd для автоматического запуска приложения. Файл размещается по пути /etc/systemd/system/owncast.service со следующим содержимым:

    [Unit]
    Description=Owncast Service
    After=network.target
    
    [Service]
    Type=simple
    WorkingDirectory=/root/owncast
    ExecStart=/root/owncast/owncast
    Restart=always
    User=root
    
    [Install]
    WantedBy=multi-user.target
    

  4. Перезагрузка демона systemd для применения изменений:

    systemctl daemon-reload
    

  5. Включение и запуск сервиса:

    systemctl enable owncast
    systemctl start owncast
    

Контейнеры 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 внутри контейнера.

Запуск контейнера выполняется командой:

docker compose up -d
Команда должна быть выполнена из директории /root/nginx.

Прокси серверы

Веб-сервер Nginx работает в режиме прокси-сервера, перенаправляя входящие запросы на локальный экземпляр Owncast.

Настройка проксирования осуществляется через модификацию конфигурационного файла в директории /data/nginx/user_conf.d. В блоке location / добавляется директива:

proxy_pass http://127.0.0.1:8080;
Эта настройка перенаправляет весь трафик, поступающий на веб-сервер, на порт 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:

  • Запуск сервиса:
    systemctl start owncast
    
  • Остановка сервиса:
    systemctl stop owncast
    
  • Перезапуск сервиса:
    systemctl restart owncast
    
  • Проверка статуса сервиса:
    systemctl status owncast
    

Управление контейнером Nginx осуществляется через docker compose из директории /root/nginx:

  • Запуск контейнера:
    docker compose up -d
    
  • Остановка контейнера:
    docker compose down
    
  • Перезапуск контейнера:
    docker compose restart
    
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×