Owncast
Свой сервис live-стриминга: видео-эфир и чат на своем сервере, без платформы-посредника. Вещаете из OBS, зрители смотрят на вашей странице. Развернули актуальную версию, замерили и проверили вживую: страница трансляции, прием RTMP и вход в админку работают.
Вердикт
- нужен свой видео-эфир и чат без Twitch/YouTube - без рекламы, банов и чужих правил
- хотите держать аудиторию и записи трансляций у себя
- уже вещаете из OBS и нужен только приемник потока со своей страницей
- нужна медиатека готовых файлов (кино/музыка) - это к Jellyfin, не Owncast
- не готовы вещать из внешнего энкодера (OBS) - сам поток Owncast не создает
- нужен многоканальный вещательный сервис с монетизацией уровня Twitch
Что это и какую задачу решает
Owncast - open-source сервер живого видео-стриминга: по сути свой Twitch на вашем сервере. Вы вещаете через OBS (или любой RTMP-энкодер) на свой Owncast, а зрители смотрят поток и общаются в чате прямо на вашей странице - без платформы-посредника, рекламы, чужих правил и риска бана. Видео, чат и аудитория остаются у вас.
Это не медиасервер готовых файлов (для этого есть Jellyfin), а именно живой эфир в реальном времени: концерт, стрим игры, вебинар, трансляция события - на своем домене и под своим контролем.
Чем отличается от Twitch и от Jellyfin
Сравнение по тому, что влияет на выбор для своего эфира.
| Параметр | Owncast (self-hosted) | Twitch / облако |
|---|---|---|
| Где данные и аудитория | на вашем сервере | у платформы |
| Реклама и баны | нет, ваши правила | реклама, модерация платформы |
| Своя страница и домен | да, полный контроль | страница на платформе |
| Стоимость | свой сервер, без комиссий | бесплатно, но с рекламой/правилами |
| Масштаб на тысячи зрителей | ограничен вашим каналом/CDN | глобальный CDN |
Отдельно: Owncast - это НЕ Jellyfin. Jellyfin раздает вашу медиатеку (готовые файлы кино и музыки), Owncast - живой эфир в реальном времени. Ниши разные.
Тех-стек и архитектура
Owncast - один Go-бинарь со встроенным ffmpeg: минимум движущихся частей. Порт 8080 - страница трансляции с HLS-плеером, живой чат и админка `/admin`; порт 1935 - прием RTMP-потока от энкодера. Настройки, чат и статистика - в SQLite в томе, отдельная БД не нужна.
Веб-часть (8080) закрываем TLS через Caddy, а RTMP-порт 1935 публикуем напрямую - это отдельный TCP-порт, он не проходит через HTTP-прокси. Именно на 1935 вещает OBS.
Минимальная конфигурация
Реальные требования против официального минимума.
| Минимум для теста | CPU2-RAM4-DISK50 |
| Реально в простое (весь стек) | ~0.13 GB RAM (owncast 111 + caddy 13 MiB) |
| Образы на диске | ~0.37 GB (owncast 285 + caddy 89 MB) |
| Рекомендуем тариф | CPU2-RAM4-DISK50 |
Важно: в простое Owncast почти ничего не ест - это один из самых легких продуктов. Но при активной трансляции ffmpeg транскодирует видео и грузит CPU: чем больше выходных качеств и битрейт, тем больше ядер нужно. Под реальный эфир берите CPU2-RAM4 и выше.
В маркетплейсе Fatmetal
Не хотите ставить руками?
Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочую страницу трансляции, валидный TLS, открытый RTMP-порт и вход в админку паролем сервера.
Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес
Развертывание на Fatmetal
Базовый путь - Cloud Server + Ubuntu 24.04 + Docker за Caddy.
Создать VM
Ubuntu 24.04 с Docker. Открыть порты 80/443 (веб) и 1935 (RTMP).
Поднять контейнер
docker run -d --name owncast \ -p 127.0.0.1:8080:8080 -p 1935:1935 \ -v owncast_data:/app/data \ owncast/owncast:0.2.5 -adminpassword ВАШ_ПАРОЛЬФлаг
-adminpasswordзадает пароль админки (env-переменная в 0.2.5 не работает).Закрыть TLS
Caddy обратным прокси на :8080 - автоматический сертификат Let's Encrypt на ваш домен. RTMP (1935) идет мимо прокси, напрямую.
Начать вещание
В OBS: сервер
rtmp://ваш-домен:1935/live, stream key изAdmin -> Streaming Keys.
Что измерили после запуска
Цифры со свежей установки, весь стек без активной трансляции.
| Контейнеров | 2 (owncast + Caddy) |
| RAM в простое (весь стек) | ~0.13 GB (owncast ~111 MiB) |
| Образы на диске | ~0.37 GB |
| Health-check | /api/status -> 200 (version 0.2.5, online:false) |
| Внешний отклик | https 200, /admin 401 (basic-auth), валидный Let's Encrypt |
Вход проверили предметно: задали пароль админки флагом -adminpassword, затем запросили /api/admin/status с логином admin и этим паролем - сервер отдал 200, а старый дефолт abc123 получил 401. То есть вход администратора паролем сервера действительно работает. Порт 1935 (RTMP) слушает - прием потока готов.
Проверено на версии 0.2.5, август 2026. На новых версиях результаты могут отличаться.
Где может сломаться
Реальные грабли Owncast за прокси и с вещанием.
Причина. Порт 1935 закрыт или заведен через HTTP-прокси. RTMP - отдельный TCP-порт, он не проходит через Caddy.
Решение. Откройте 1935 наружу и публикуйте его напрямую (в карте маркетплейса он уже открыт). В OBS: rtmp://домен:1935/live.
Пароль админки - флагом, не env. В 0.2.5 переменная окружения для пароля не читается, только флаг -adminpassword. Дефолт (abc123) обязательно смените.
Нужен внешний энкодер. Owncast принимает и раздает поток, но сам его не создает - вещаете из OBS или аналога. Задержка HLS в несколько секунд - норма протокола.
Безопасность и обновления
Сразу смените пароль админки (в карте он равен паролю сервера) и задайте свой stream key в `Admin -> Streaming Keys` - старый ключ по умолчанию открыт. Веб-порт 8080 наружу не публикуйте, только через прокси с TLS. Порт 1935 держите открытым только пока вещаете, если эфир редкий.
Обновление - смена тега образа:
docker pull owncast/owncast:latest && docker rm -f owncast && docker run ...
Бэкап - том с данными:
docker run --rm -v owncast_data:/d -v $PWD:/b alpine tar czf /b/owncast.tgz /d
Перед продом закройте: смену пароля админки, свой stream key, TLS на прокси, бэкап тома данных.
Связь с другими стеками
- OBS Studio - энкодер на вашей машине, вещает на Owncast по RTMP.
- Обратный прокси - Caddy или Nginx Proxy Manager для TLS веб-части.
- Jellyfin - рядом, если нужна еще и медиатека готовых файлов (Owncast - только живой эфир).
- Мониторинг - Prometheus и Grafana по метрикам контейнера, особенно CPU при трансляции.
Когда это НЕ ваш выбор
Нужна медиатека, а не эфир
Если задача - смотреть свою коллекцию кино и музыки, это Jellyfin. Owncast - только живые трансляции.
Не вещаете из энкодера
Owncast не создает поток сам. Без OBS или аналога вещать нечем.
Нужен глобальный масштаб
Тысячи одновременных зрителей упрутся в канал вашего сервера. Для этого нужен CDN, а не одиночный Owncast.
Частые вопросы
Как вещать?
Из OBS: сервер rtmp://ваш-домен:1935/live, stream key из Admin -> Streaming Keys. Owncast примет поток и покажет зрителям.
Почему OBS не подключается?
Порт 1935 закрыт или заведен через HTTP-прокси. Откройте его напрямую - в карте маркетплейса уже открыт.
Как войти в админку?
Логин admin, пароль задается флагом -adminpassword (в карте = пароль сервера). Env-переменная в 0.2.5 не работает.
Сколько ест?
В простое почти ничего - ~0.13 GB. Но при активной трансляции ffmpeg грузит CPU: чем больше качеств, тем больше ядер.
Чем отличается от Jellyfin?
Jellyfin раздает готовые файлы медиатеки, Owncast - живой эфир в реальном времени. Разные задачи.
Можно в продакшен?
Да. Мы разворачиваем с TLS и паролем админки = паролем сервера. Останется задать свой stream key и настроить бэкап.
Какие ограничения лицензии?
Лицензия MIT - свободное использование, в том числе коммерческое.
Итог
Owncast - простой и легкий способ вести свой видео-эфир без Twitch: живая трансляция и чат на своей странице, вещание из OBS по RTMP, все под вашим контролем и под лицензией MIT. Один Go-контейнер ест в простое около 0.13 GB, вход в админку проверили вживую. Плата - нужен внешний энкодер (OBS) и открытый порт 1935, а транскодинг во время эфира нагружает CPU.
Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe
Не хотите устанавливать вручную?
Запустите Owncast на этой конфигурации автоматически - от 450 ₽/мес.
Этот стек у нас запущен на тарифе CPU2-RAM4. Нашли баг в гайде - напишите, поправим в течение дня.