После создания сервера 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.

Как войти

  1. Адрес формируется из IP сервера: замените точки на дефисы и добавьте .fatmetal.net.
  2. Администратор уже заведен: логин root, пароль - пароль этого сервера, тот же, что для SSH (он в личном кабинете).
  3. Смените пароль сразу: "Моя учетная запись" -> "Настройки". Регистрация для посторонних закрыта - новых пользователей заводит только администратор.

Свой домен

Домен нужно задать ДО первого входа на сервер. 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-совместимое хранилище прямо из админки - отдельно исходники, отдельно готовые файлы для показа. Объем добирается позже, без переустановки сервера.

Подробный разбор с замерами: сколько реально весит час видео и куда уходит диск