Установка 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)
Что будет сделано (коротко)
- Обновим систему и установим Java (Oracle JDK в примере).
- Загрузим и разместим streama.war в /opt/streama.
- Создадим systemd-сервис для фонового запуска.
- Настроим Apache как reverse proxy и включим SSL через Certbot.
- Настроим файрвол и SELinux (варианты).
- Завершим начальную конфигурацию в веб-интерфейсе 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.comCertbot проверит владение доменом и сохранит сертификаты в /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.



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


Рекомендации по режиму эксплуатации
- Регулярно проверяйте логи:
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)
- Перенёс конфигурации в репозиторий
- Тесты интеграции для загрузки и воспроизведения медиа
Мини-методология обновлений
- Тестируйте новую версию Streama в staging на копии данных.
- Создайте бэкап:
/opt/streamaи база данных. - Остановите сервис:
systemctl stop streama. - Замените WAR и проверьте права владельца.
- Запустите сервис и проверяйте лог на ошибки.
- При проблемах — откат к бэкапу.
Короткая таблица совместимости и замечания
- 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 медиасерверу с защитой и базовыми операционными практиками.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента