PeerTube: специфический веб-инструмент

Содержание статьи

Хроника развития видеохостинга

PeerTube — установка и настройка

Настройка Let’s Encrypt

Установка PeerTube

Настройка PeerTube

Запуск PeerTube

Заключение

Используемые источники

Прежде чем говорить о PeerTube, я бы хотел остановиться на вопросе о том, откуда возник этот проект, ответом на какой вызов он является? За последнее десятилетие, точнее говоря, за последнее неполное десятилетие, произошли существенные изменения в технологическом понимании видеохостинга. Изменения настолько существенные, что они поставили под сомнение саму возможность видеохостинга как модели инновационного процесса.

Хроника развития видеохостинга

Видеохостинг в том виде, в котором он сложился в 2005 году, развивался в следующем десятилетии, всегда доводил свой взгляд до создания огромной платформы, которая централизует видео со всего мира на одной ферме серверов (что ужасно дорого). Хранение видео получало завершение в создании одной фермы серверов. Кульминацией и наиболее цельным выражением такого фермо-центрированного понимания видиохостинга явился YouTube. И он же стал концом классического европейского видеохостинга. После него — фактически уже с Vimeo – начался процесс разрушения классического образа видеохостинга и центрального места одной фермы серверов в его структуре.

Хочу обратить внимание на такие два параллельных ряда фактов, которые характерны для ИТ-атмосферы этого десятилетия. С одной стороны, мы имеем децентрализованные социальные сети, которые или по факту, или в качестве сознательной установки избегают больших веб-серверов. Это верно не только по отношению к таким, я бы сказал, тяжелым веб-инструментам, как PeerTube. Но даже в тех федеративных сетях, где не содержится плееров, видео, плейлистов, – таких, как, скажем, Mastodon.

В это же время, с другой стороны, в ИТ были созданы хорошо продуманные, аргументированные, разработанные, получившие довольно широкую известность социальные сети, в которых один хостинг-провайдер является основным, если не единственным. Таковы, например, X Илона Маска или Facebook и Instagram (принадлежат Meta, признана экстремистской, запрещена в РФ) Марка Цукерберга. Однако последние остались маргинальными по отношению к основной линии ИТ-развития в России. Они вообще не получили не то что адекватного, а вообще какого-либо статуса в рамках технологических систематизаций в России.

Конечно, децентрализация социальных сетей не была всеохватывающей и сплошной, но она составляла типичную и характерную тенденцию, которая обозначила новый, постклассический этап их истории. Она выразилась прежде всего в Fediverse.

На данный момент Fediverse состоит из 12 федеративных сетей и может похвастаться разнообразием языков программирования[3]. Тем не менее, здесь речь пойдет про PeerTube и про то, чем примечателен этот уголок интернета.

Не буду рассказывать о преимуществах федеративных (децентрализованных) сетей, об этом можно почитать здесь[7] или здесь[8]. А о недостатках писал, например, Мокси Марлинспайк в блоге Signal[9]. Раз вы читаете эту статью, надеюсь, вы согласны, что достоинств у таких систем больше.

Концепция PeerTube заключается в создании сети из нескольких небольших взаимосвязанных видеохостингов. Платформы PeerTube традиционно рассматривали себя в качестве альтернативных цифровых инструментов. Они видели свою задачу в том, чтобы не заменить YouTube, а предложить что-то другое, параллельно тому, что уже существует. Вместе с тем они видели свою задачу в том, чтобы любой желающий мог загрузить и установить PeerTube для размещения видео на определенном доменном имени. Framasoft, французская некоммерческая образовательная организация по вопросам цифровой сферы, главный разработчик PeerTube, не контролирует тех, кто скачивает, устанавливает и использует PeerTube.

PeerTube - установка и настройка

Руководства по зависимостям и установке PeerTube ставят вопрос, что я должен делать, чтобы установить и настроить PeerTube.

Они рекомендуют выполнить установку PeerTube в Debian / Ubuntu, Arch Linux, CentOS 7, Сentos 8, Rocky Linux 8.4, Fedora, Red Hat Enterprise Linux 8, FreeBSD, macOS, Gentoo, OpenBSD и других дистрибутивах, настроив его согласно инструкции. Здесь речь пойдет про antiX 23.1, который основан на Debian 12 (Bookworm).

Из руководства по зависимостям РeerTube вы узнаете, что необходимо установить и настроить отдельно Let's Encrypt, Node.js 22.x, PNPM, Python, PostgreSQL и помимо этого некоторое вспомогательное программное обеспечение. Запустите Redis и PostgreSQL. Об этом можно почитать здесь[5] или здесь[6].

Настройка Let's Encrypt

Получите сертификат домена example.org согласно руководству:

Выполните регистрацию Let's Encrypt ACME (автоматизированная среда управления сертификатами) аккаунта, указав почтовый адрес, на который в будущем будут приходить важные сообщения:

antix@antix-PC:~$ sudo certbot register --agree-tos -m myemail@example.org

Выполните следующую команду для получения сертификата для домена example.org. Данная схема подходит, если на указанной машине нет веб-сервера. Для получения сертификата необходимо, чтобы машина была доступна из интернета по порту 80 и указанному доменному имени. Здесь и далее по тексту вместо example.org подставьте свой домен. Сертификат и закрытые ключи будут находиться в каталоге /etc/letsencrypt/live/example.org/.

antix@antix-PC:~$ sudo certbot certonly --preferred-challenges http --standalone -d example.org

Установка PeerTube

Настройте PostgreSQL согласно руководству[4].

Из руководства по установке PeerTube вы узнаете, что необходимо создать пользователя peertube в системе и задать ему пароль:

antix@antix-PC:~ $ sudo mkdir -p /var/www antix@antix-PC:~ $ sudo useradd -m -d /var/www/peertube -s /bin/bash -p peertube peertube antix@antix-PC:~ $ sudo passwd peertube

Перейдите в директорию пользователя:

antix@antix-PC:~ $ su - peertube peertube@antix-PC:~ $

Создайте необходимые пути, загрузите и распакуйте последнюю версию PeerTube:

peertube@antix-PC:~ $ mkdir config storage versions peertube@antix-PC:~ $ chmod 750 config/ peertube@antix-PC:~ $ VERSION=$(curl -s https://api.github.com/repos/chocobozzz/peertube/releases/latest | grep tag_name | cut -d '"' -f 4) && echo "Latest Peertube version is $VERSION" peertube@antix-PC:~ $ cd versions peertube@antix-PC:~ $ wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip" peertube@antix-PC:~ $ unzip -q peertube-${VERSION}.zip

Установите PeerTube:

peertube@antix-PC:~ $ cd /var/www/peertube peertube@antix-PC:~ $ ln -s versions/peertube-${VERSION} ./peertube-latest peertube@antix-PC:~ $ cd ./peertube-latest peertube@antix-PC:~ $ npm run install-node-dependencies -- --production

Настройка PeerTube

Скопируйте файл конфигурации по умолчанию. Вы не должны изменять этот файл.

peertube@antix-PC:~ $ cd /var/www/peertube peertube@antix-PC:~ $ cp peertube-latest/config/default.yaml config/default.yaml peertube@antix-PC:~ $ cp peertube-latest/config/production.yaml.example config/production.yaml peertube@antix-PC:~ $ cd config peertube@antix-PC:~ $ nano production.yaml

Затем отредактируйте файл config/production.yaml в соответствии с конфигурацией вашего веб-сервера и базы данных. В частности, указав:

  • webserver: общедоступную информацию об обратном прокси-сервере
  • secrets: секретные строки, которые вы должны сгенерировать вручную (версия PeerTube >= 5.0)
  • database: настройки PostgreSQL
  • redis: Настройки Redis
  • smtp: Если вы хотите использовать электронную почту
  • admin.email: Чтобы правильно заполнить адрес электронной почты пользователя root

Ключи, определенные в config/production.yaml, будут переопределять ключи, определенные в config/default.yaml.

Настройте веб-сервер Nginx согласно руководству[4].

Запуск PeerTube

Запустите PeerTube:

peertube@antix-PC:~ $ cd /var/www/peertube/peertube-latest peertube@antix-PC:~ $ NODE_CONFIG_DIR=/var/www/peertube/config peertube@antix-PC:~ $ export NODE_CONFIG_DIR peertube@antix-PC:~ $ NODE_ENV=production peertube@antix-PC:~ $ export NODE_ENV peertube@antix-PC:~ $ /usr/bin/node dist/server

Установка пароля администратора PeerTube

Имя администратора “root”, а пароль генерируется автоматически, и вы можете найти его в логах. Чтобы установить новый пароль, выполните:

peertube@antix-PC:~$ npm run reset-password -- -u root

Откройте сайт http://localhost:9000/ в браузере:

PeerTube в браузере
PeerTube в браузере

Заключение

Было бы здорово увидеть в федеративной вселенной новые лица. Не тех, кто зарегистрируется и пропадет после первого тестового поста, но тех, кто останется и станет частью сообщества. И, возможно, поднимет новые серверы и будет их администрировать, умножая Fediverse, делая ее еще более жизнеспособной децентрализованной системой.

Используемые источники

  1. Часто задаваемые вопросы https://joinpeertube.org/faq
  2. Курс Академии инноваторов – Лекция 1.1. Введение в технологическое предпринимательство https://rutube.ru/video/c4eebb32a980c645d0e196b743b4c8bf/
  3. Не ходи в Fediverse, там тебя ждут неприятности. — Ну как же туда не ходить? Они же ждут https://habr.com/ru/articles/345402/
  4. Production Guide https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md
  5. Dependencies Guide https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/dependencies.md
  6. PeerTube – установка и настройка https://wiki.calculate-linux.org/ru/peertube
  7. https://techcrunch.com/2016/10/09/a-decentralized-web-would-give-power-back-to-the-people-online
  8. https://medium.com/@bbc4468/centralized-vs-decentralized-vs-distributed-41d92d463868
  9. https://signal.org/blog/the-ecosystem-is-moving
11