Гид по технологиям

Установка Streama на CentOS 7

• 6 min read • Инфраструктура • Обновлено 21 Nov 2025
Установка Streama на CentOS 7
Установка Streama на CentOS 7

Важно: перед началом убедитесь, что у вас есть резервные копии и доступ root. Эта инструкция предполагает домен, указывающий на IP сервера (например, streama.example.com).

Обзор

Streama — бесплатное open-source приложение для стриминга медиа, альтернатива Netflix в self-hosted окружении. Поддерживает управление библиотекой через drag & drop, мультипользовательский доступ, субтитры и продолжение просмотра.

В этой инструкции мы подробно пройдём установку Streama на CentOS 7, настроим systemd-сервис, организуем обратный прокси через Apache и защитим трафик с помощью бесплатных SSL-сертификатов от Let’s Encrypt.

Предварительные требования

  • Минимальная инсталляция CentOS 7
  • root-привилегии или sudo
  • Доменное имя (например, streama.example.com), указывающее на IP сервера
  • Открытые порты 80 и 443 (для получения SSL от Let’s Encrypt)

Что будет сделано (коротко)

  1. Обновим систему и установим Java (Oracle JDK в примере).
  2. Загрузим и разместим streama.war в /opt/streama.
  3. Создадим systemd-сервис для фонового запуска.
  4. Настроим Apache как reverse proxy и включим SSL через Certbot.
  5. Настроим файрвол и SELinux (варианты).
  6. Завершим начальную конфигурацию в веб-интерфейсе Streama.

Шаг 1 — Обновление системы

Перед установкой пакетов рекомендуется обновить систему:

yum -y update

Это гарантирует, что репозитории и пакеты актуальны.

Шаг 2 — Установка Java

Streama может работать на OpenJDK или Oracle Java. В примере устанавливаем Oracle JDK 8 (совет: можно использовать OpenJDK 8 из репозиториев для упрощения лицензирования).

Скачивание Oracle JDK (пример команды — в зависимости от версии ссылка может устареть, проверьте официальный сайт Java):

wget --no-cookies --no-check-certificate --header 'Cookie:oraclelicense=accept-securebackup-cookie' 'http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm'

Если wget не установлен:

yum -y install wget

Установка скачанного RPM:

yum -y localinstall jdk-8u131-linux-x64.rpm

Проверка установки Java:

java -version

Пример вывода (формат может отличаться):

[root@server ~]# java -version
java version '1.8.0_131'
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Примечание: OpenJDK можно установить командой yum -y install java-1.8.0-openjdk.

Шаг 3 — Загрузка и подготовка Streama

Скачайте WAR-пакет Streama (проверьте страницу релизов на GitHub для актуальной версии):

wget https://github.com/dularion/streama/releases/download/v1.1/streama-1.1.war

Создайте каталог и переместите WAR:

mkdir -p /opt/streama
mv streama-1.1.war /opt/streama/streama.war

Запустить приложение вручную для первой проверки можно так:

java -jar /opt/streama/streama.war

Остановите выполнение Ctrl+C.

Создайте каталог для медиа-файлов и дайте корректные права:

mkdir -p /opt/streama/media
chmod 664 /opt/streama/media

Примечание: права 664 означают, что владелец и группа могут читать и записывать, остальные — читать. При необходимости настройте владельца (chown) под пользователя, от которого будет запускаться сервис.

Шаг 4 — Создание systemd-сервиса

Чтобы Streama работал в фоне и автоматически запускался при ребуте, создайте unit-файл systemd:

nano /etc/systemd/system/streama.service

Вставьте:

[Unit]
Description=Streama Server
After=syslog.target
After=network.target

[Service]
User=root
Type=simple
ExecStart=/bin/java -jar /opt/streama/streama.war
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Streama

[Install]
WantedBy=multi-user.target

Сохраните файл и выполните:

systemctl daemon-reload
systemctl start streama
systemctl enable streama
systemctl status streama

Вы увидите статус сервиса и логи. При ошибке — смотрите journalctl -u streama -l.

Важно: запуск от root не обязателен и не рекомендуется в production. Лучше создать неприоритетного пользователя (например, streama) и дать ему права на /opt/streama и медиа-каталог:

useradd -r -s /sbin/nologin streama
chown -R streama:streama /opt/streama

И заменить User=root на User=streama в unit-файле, затем перезапустить сервис.

Шаг 5 — Настройка Apache как reverse proxy и установка SSL

По умолчанию Streama слушает порт 8080. Мы настроим Apache, чтобы он слушал 80/443 и проксировал трафик на localhost:8080.

Установка Apache и mod_ssl:

yum -y install httpd mod_ssl
systemctl start httpd
systemctl enable httpd

Установка Certbot (Let’s Encrypt): необходимо EPEL:

yum -y install epel-release
yum -y update
yum -y install python-certbot-apache

Получение сертификатов (замените на ваш домен):

certbot certonly --apache -d streama.yourdomain.com

Certbot проверит владение доменом и сохранит сертификаты в /etc/letsencrypt/live/streama.yourdomain.com/.

Добавьте cron-задачу для автоматического продления (пример — еженедельная проверка):

crontab -e

Вставьте:

30 1 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log

Теперь создайте виртуальный хост Apache:

nano /etc/httpd/conf.d/streama.yourdomain.com.conf

Пример конфигурации:


    ServerName streama.yourdomain.com
    Redirect permanent / https://streama.yourdomain.com/
    TransferLog /var/log/httpd/streama.yourdomain.com_access.log
    ErrorLog /var/log/httpd/streama.yourdomain.com_error.log



    ServerName streama.yourdomain.com
    ServerAdmin [email protected]
    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/streama.yourdomain.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/streama.yourdomain.com/privkey.pem
    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    TransferLog /var/log/httpd/streama.yourdomain.com_ssl_access.log
    ErrorLog /var/log/httpd/streama.yourdomain.com_ssl_error.log

Перезапустите Apache:

systemctl restart httpd

Если Apache не стартует — проверьте apachectl configtest и логи в /var/log/httpd/.

Шаг 6 — SELinux и файрвол

Временное отключение SELinux без перезагрузки:

setenforce 0

Чтобы полностью отключить SELinux, отредактируйте /etc/selinux/config и смените SELINUX=enforcing на SELINUX=disabled, затем перезагрузите сервер.

Примечание: лучше настраивать SELinux корректно, чем отключать его окончательно. Для продуктивных сред настройте контексты (chcon) и boolean-параметры.

Откройте порты в firewalld:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Шаг 7 — Первый вход и базовая настройка Streama

Откройте в браузере:

https://streama.yourdomain.com

По умолчанию логин: admin / пароль: admin.

При первом входе откроется страница настроек. Необходимые поля:

  • Путь к каталогу загрузки: /opt/streama/media (или ваш путь)
  • Base URL: https://streama.yourdomain.com
  • Название приложения, логотипы при необходимости

Сохраните настройки и перейдите в Dashboard.

Вход в Streama

Настройки Streama

Указание каталога загрузки

Управление контентом

  • Добавление сериалов и фильмов: «Manage Content» → «Add TV Show / Movie».
  • Загрузка файлов: «File Manager» в разделе управления контентом.

Добавление сериала

Файловый менеджер Streama

Рекомендации по режиму эксплуатации

  • Регулярно проверяйте логи: journalctl -u streama -f и логи Apache.
  • Планируйте резервные копии каталога /opt/streama и базы данных (Streama использует встроенную DB по умолчанию; в бою лучше подключать внешнюю БД).
  • Настройте мониторинг сервиса (systemd, uptime, диск, нагрузка CPU/IO).

Отказоустойчивость и масштабирование (альтернативы)

  • Если ожидается высокая нагрузка, запускайте Streama за nginx/Apache, используйте отдельный файловый сервер (NFS/S3) для медиа и внешнюю базу данных (PostgreSQL).
  • Для HA можно использовать контейнеризацию (Docker) и оркестрацию (Kubernetes) с распределённым хранилищем.

Критерии приёмки

  • Сервис Streama запущен и активен: systemctl status streama → active (running).
  • Домен streama.yourdomain.com открывается по HTTPS, сертификат валиден.
  • Веб-интерфейс позволяет зайти под admin/admin и задать каталог загрузки.
  • Медиа-файлы можно загрузить и воспроизвести.

Рекомендации по безопасности

  • Не оставляйте учётную запись admin с дефолтным паролем; смените его сразу.
  • Не запускайте сервис от root в production.
  • Отключите ненужные сетевые службы и ограничьте доступ по IP, если требуется.
  • Подумайте о двухфакторной авторизации (внешние прокси/идентификация).

Диагностика и часто встречаемые проблемы

  • Apache не стартует после правок: проверьте apachectl configtest и логи /var/log/httpd/error_log.
  • Certbot не может верифицировать домен: убедитесь, что A-запись указывает на сервер, и порты 80/443 доступны извне.
  • Проблемы с правами доступа к медиа: проверьте владельца/группу и SELinux-контексты.
  • Высокая нагрузка I/O при одновременных стримах: используйте оптимизированное хранилище или CDN.

Чек-листы по ролям

Администратор:

  • Обновил систему
  • [ ] Установил Java и проверил java -version
  • Разместил streama.war в /opt/streama
  • Создал systemd unit и запустил сервис
  • Настроил Apache и SSL
  • Создал резервное копирование и мониторинг

Разработчик/DevOps:

  • Подготовил автоматизированный деплой (скрипт/Ansible)
  • Перенёс конфигурации в репозиторий
  • Тесты интеграции для загрузки и воспроизведения медиа

Мини-методология обновлений

  1. Тестируйте новую версию Streama в staging на копии данных.
  2. Создайте бэкап: /opt/streama и база данных.
  3. Остановите сервис: systemctl stop streama.
  4. Замените WAR и проверьте права владельца.
  5. Запустите сервис и проверяйте лог на ошибки.
  6. При проблемах — откат к бэкапу.

Короткая таблица совместимости и замечания

  • CentOS 7 — подходит для примера; при новых версиях ОС применяйте актуальные пакеты Java и Certbot.
  • Java 8 — официально поддерживается Streama 1.x; для новых релизов проверьте требования.

1-строчный глоссарий

  • WAR — web archive, архив веб-приложения; содержит все ресурсы для запуска Java-приложения.
  • Reverse proxy — обратный прокси, принимает внешние запросы и передаёт их внутреннему приложению.
  • Certbot — клиент для получения сертификатов от Let’s Encrypt.

Заключение

После выполнения шагов вы получите работающий приватный стриминговый сервер Streama с HTTPS и автоматическим запуском через systemd. Для продакшена рекомендуется мигрировать на внешнюю БД, настраивать резервное копирование и ограничивать привилегии выполнения сервиса.

Итог: Streama на CentOS 7 — быстрый путь к self-hosted медиасерверу с защитой и базовыми операционными практиками.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро