После создания сервера PeerTube разворачивается сам: Docker Compose поднимает три контейнера (PeerTube, PostgreSQL, Redis), Caddy отдельным контейнером выпускает Let's Encrypt и открывает доступ по HTTPS на magic-DNS домене. Администратора заводит установка сама - паролем этого сервера, регистрация для посторонних закрыта. Первый старт занимает около полутора минут.
Что внутри
- PeerTube (Node.js) - само приложение: загрузка видео, транскодирование, плеер, федерация, живые эфиры.
- PostgreSQL - каталог видео, пользователи, плейлисты, комментарии, статистика просмотров.
- Redis - очередь фоновых задач: транскодирование, импорт видео, рассылка писем.
- Caddy - reverse-proxy и авто-TLS (Let's Encrypt), отдельный контейнер. PeerTube слушает только
localhost.
Приватность и курсы
У каждого видео свой уровень доступа: общедоступное, по ссылке, под паролем или внутреннее - такое видят только вошедшие пользователи вашего сервера, и наружу, в федеративную сеть, оно не уходит вовсе. Ролики собираются в плейлисты - так оформляется структура курса. Видео с YouTube переносится импортом по ссылке, старый канал закрывать не нужно.
Живые эфиры
Порт 1935 (RTMP) открыт на этом сервере напрямую - настройте OBS или другой энкодер на rtmp://ваш-адрес:1935/live/<ключ>, ключ трансляции выдает сама админка при создании прямого эфира. Не нужны трансляции - отключите прием заранее, задав LIVE_ENABLED=false в /etc/peertube-mp/params.env.
Как войти
- Адрес формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. - Администратор уже заведен: логин
root, пароль - пароль этого сервера, тот же, что для SSH (он в личном кабинете). - Смените пароль сразу: "Моя учетная запись" -> "Настройки". Регистрация для посторонних закрыта - новых пользователей заводит только администратор.
Свой домен
Домен нужно задать ДО первого входа на сервер. PeerTube привязывает адрес к внутренним идентификаторам видео и учетных записей уже при первом запуске и не умеет их переносить - это ограничение самого продукта, не рецепта. Если хотите свой домен - впишите DOMAIN=ваш.домен в /etc/peertube-mp/params.env и выполните bash /opt/peertube-mp/install.sh, пока сервер еще не открывался ни разу. После того как вы вошли и начали публиковать видео, домен зафиксирован - install.sh откажется сменить его, чтобы не сломать рабочий сервер; для другого домена понадобится новый сервер.
Требования
Стек в простое занимает около 260 МБ памяти, образы приложений - около 3.7 ГБ. Основной расход - не память, а диск: PeerTube хранит видео в нескольких разрешениях, и час видео 1080p в нашей конфигурации занимает около 3.7 ГБ. На этом тарифе помещается около 24 часов видео. Транскодирование занимает все ядра тарифа целиком - оно и определяет выбор конфигурации, а не память.
Тариф CPU4-RAM8-DISK100.
Библиотека растет: если видео будет больше, чем помещается на диске, PeerTube умеет выносить его в объектное S3-совместимое хранилище прямо из админки - отдельно исходники, отдельно готовые файлы для показа. Объем добирается позже, без переустановки сервера.
Подробный разбор с замерами: сколько реально весит час видео и куда уходит диск