Установка PeerTube на Ubuntu 22.04 LTS как аналог Youtube
В данном посте будет рассмотрена установка децентрализованного видеохостинга PeerTube на сервер с операционной системой Ubuntu 22.04 LTS
В результате вы получите собственный видеохостинг на котором можно:
1. Размещать ваши видео.
2. Сделать бекап вашего Youtube канала в пару кликов.
3. Создавать онлайн трансляции и сохранять их.
4. Делать импорт видео из torrent файлов.
5. Выполнять импорт видео из многих популярных сервисов по http ссылке.
Пример работающего инстанса можно посмотреть по ссылке video.vpsville.ru
Приступим к пошаговой настройке сервера:
1. Подготовка системы и установка всего необходимого.
Обновления кеша и пакетов в самой системе до последних актуальных версий:
Установка Nginx, Python, PostgreSQL, Certbot, Redis и другого необходимого.
Запуск основных служб и добавление их в автоматический запуск при старте системы:
Установка Nodejs
Подготовка
Обновление пакетов и установка Nodejs
Установка Yarn используя менеджер пакетов npm
2. Настройка пользователя и базы данных PeerTube
Создаем пользователя peertube с корневой директорией /var/www/peertube
Установка пароля для пользователя peertube
Обновление прав к домашнему каталогу
Переход в созданную директорию
Создание пользователя peertube для сервера баз данных PostgreSQL. (После выполнения команды введите два раза пароль.)
Создание базы данных с именем peertube
Включение расширений необходимых для работы PeerTube
3. Создание каталогов и установка PeerTube
Создание необходимых каталогов
Изменение прав доступа
Скачивание последней версии PeerTube
Распаковка архива PeerTube и его удаление
Извлечение всех зависимостей и установка PeerTube
Дождитесь завершения установки PeerTube
4. Настройка PeerTube
Переходим в корневой каталог PeerTube
Копируем файл конфигурации в каталог config. Не рекомендуется ничего редактировать или менять в файле default.yaml
Также копируем файл production.yaml в каталог config.
Перед обновлением файла production.yaml создайте секретный ключ с помощью OpenSSL и запишите его.
Откройте файл production.yaml для редактирования с помощью vim
Отредактируйте следующие части на данный момент. Некоторые из них можно обновить через пользовательский интерфейс PeerTube после входа в систему как администратор. Я добавил номера строк, где вы можете найти эти параметры. По желанию вы также можете обновить данные SMTP.
DOMAIN.COM — Ваш домен, в нашем случае это video.vpsville.ru
SECRET_KEY — секретный ключ был создан на предыдущем этапе.
username и password для доступа к базе данных PostgreSQL
5. Настройка веб сервера Nginx
Копируем готовый конфигурационный файл для Nginx в sites-available
Обновляем WEBSERVER_HOST и PEERTUBE_HOST с помощью следующих команд. Измените DOMAIN.COM на ваш фактический домен перед их запуском.
Создаем символическую ссылку для подготовленного конфигурационного файла
6. Настройка SSL
Устанавливаем snapd и после certbot для создания SSL сертификата Let's Encrypt
если snapd не устанавливается то выполняем команды:
Останавливаем Nginx, получаем сертификат и запускаем Webserver
Если у вас нет домена то можно настроить самоподписанный SSL сертификат и открывать PeerTube прямо с IP сервера.
Для этого внесите изменения в конфигурационный файл nginx /etc/nginx/sites-enabled/peertube в server_name укажите не домен а IP адрес сервера, создайте самоподписанный сертификат командами:
Выполнение второй команды займет некоторое время (до 30 минут).
в конфигурационный файл nginx /etc/nginx/sites-enabled/peertube поставьте верные ссылки к сертификату
и перезапустите nginx
7. Завершающий этап и проверка
Настройка параметров TCP для PeerTube в соответствии с рекомендациями.
Активация демона в systemctl и запуск PeerTube
Установка пароля пользователя root для входа в административную панель PeerTube
На этом этапе установка PeerTube завершена, можно открывать главную страницу нашего видеохостинга и заходить в административную панель PeerTube.
В результате вы получите собственный видеохостинг на котором можно:
1. Размещать ваши видео.
2. Сделать бекап вашего Youtube канала в пару кликов.
3. Создавать онлайн трансляции и сохранять их.
4. Делать импорт видео из torrent файлов.
5. Выполнять импорт видео из многих популярных сервисов по http ссылке.
Пример работающего инстанса можно посмотреть по ссылке video.vpsville.ru
Приступим к пошаговой настройке сервера:
1. Подготовка системы и установка всего необходимого.
Обновления кеша и пакетов в самой системе до последних актуальных версий:
apt update && apt upgrade
Установка Nginx, Python, PostgreSQL, Certbot, Redis и другого необходимого.
apt install python3 python3-dev python-is-python3 curl sudo unzip vim ca-certificates gnupg nginx certbot ffmpeg postgresql postgresql-contrib openssl g++ make redis-server git cron wget -y
Запуск основных служб и добавление их в автоматический запуск при старте системы:
systemctl start nginx
systemctl start redis-server
systemctl start postgresql
systemctl enable nginx
systemctl enable redis-server
systemctl enable postgresql
Установка Nodejs
Подготовка
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=18
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
Обновление пакетов и установка Nodejs
apt update
apt install nodejs
Установка Yarn используя менеджер пакетов npm
npm install --global yarn
2. Настройка пользователя и базы данных PeerTube
Создаем пользователя peertube с корневой директорией /var/www/peertube
useradd -m -d /var/www/peertube -s /bin/bash -p peertube peertube
Установка пароля для пользователя peertube
passwd peertube
Обновление прав к домашнему каталогу
chmod 755 /var/www/peertube
Переход в созданную директорию
cd /var/www/peertube
Создание пользователя peertube для сервера баз данных PostgreSQL. (После выполнения команды введите два раза пароль.)
sudo -u postgres createuser -P peertube
Создание базы данных с именем peertube
sudo -u postgres createdb -O peertube -E UTF8 -T template0 peertube_prod
Включение расширений необходимых для работы PeerTube
sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_prod
sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_prod
3. Создание каталогов и установка PeerTube
Создание необходимых каталогов
sudo -u peertube mkdir /var/www/peertube/config /var/www/peertube/storage /var/www/peertube/versions
Изменение прав доступа
sudo -u peertube chmod 750 /var/www/peertube/config
Скачивание последней версии PeerTube
cd /var/www/peertube/versions
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"
sudo -u peertube wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip"
Распаковка архива PeerTube и его удаление
sudo -u peertube unzip -q peertube-${VERSION}.zip
sudo -u peertube rm peertube-${VERSION}.zip
Извлечение всех зависимостей и установка PeerTube
cd ..
sudo -u peertube ln -s versions/peertube-${VERSION} ./peertube-latest
cd ./peertube-latest && sudo -H -u peertube yarn install --production --pure-lockfile
Дождитесь завершения установки PeerTube
4. Настройка PeerTube
Переходим в корневой каталог PeerTube
cd /var/www/peertube
Копируем файл конфигурации в каталог config. Не рекомендуется ничего редактировать или менять в файле default.yaml
sudo -u peertube cp peertube-latest/config/default.yaml config/default.yaml
Также копируем файл production.yaml в каталог config.
sudo -u peertube cp peertube-latest/config/production.yaml.example config/production.yaml
Перед обновлением файла production.yaml создайте секретный ключ с помощью OpenSSL и запишите его.
openssl rand -hex 32
Откройте файл production.yaml для редактирования с помощью vim
sudo -u peertube vim config/production.yaml
Отредактируйте следующие части на данный момент. Некоторые из них можно обновить через пользовательский интерфейс PeerTube после входа в систему как администратор. Я добавил номера строк, где вы можете найти эти параметры. По желанию вы также можете обновить данные SMTP.
webserver:
hostname: 'DOMAIN.COM' (line 8)
secrets:
peertube: 'SECRET_KEY' (line 14)
database:
username: 'peertube' (line 75)
password: 'PASSWORD' (line 76)
admin:
email: 'EMAIL' (line 451)
DOMAIN.COM — Ваш домен, в нашем случае это video.vpsville.ru
SECRET_KEY — секретный ключ был создан на предыдущем этапе.
username и password для доступа к базе данных PostgreSQL
5. Настройка веб сервера Nginx
Копируем готовый конфигурационный файл для Nginx в sites-available
cp /var/www/peertube/peertube-latest/support/nginx/peertube /etc/nginx/sites-available/peertube
Обновляем WEBSERVER_HOST и PEERTUBE_HOST с помощью следующих команд. Измените DOMAIN.COM на ваш фактический домен перед их запуском.
sed -i 's/${WEBSERVER_HOST}/DOAMIN.COM/g' /etc/nginx/sites-available/peertube
sed -i 's/${PEERTUBE_HOST}/127.0.0.1:9000/g' /etc/nginx/sites-available/peertube
Создаем символическую ссылку для подготовленного конфигурационного файла
ln -s /etc/nginx/sites-available/peertube /etc/nginx/sites-enabled/peertube
6. Настройка SSL
Устанавливаем snapd и после certbot для создания SSL сертификата Let's Encrypt
apt install snapd
snap install --classic certbot
если snapd не устанавливается то выполняем команды:
mv /etc/apt/preferences.d/ignored-packages /etc/apt/preferences.d/ignored-packages.disable
apt update
Останавливаем Nginx, получаем сертификат и запускаем Webserver
systemctl stop nginx
certbot certonly --standalone --post-hook "systemctl restart nginx"
systemctl reload nginx
Если у вас нет домена то можно настроить самоподписанный SSL сертификат и открывать PeerTube прямо с IP сервера.
Для этого внесите изменения в конфигурационный файл nginx /etc/nginx/sites-enabled/peertube в server_name укажите не домен а IP адрес сервера, создайте самоподписанный сертификат командами:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096
Выполнение второй команды займет некоторое время (до 30 минут).
в конфигурационный файл nginx /etc/nginx/sites-enabled/peertube поставьте верные ссылки к сертификату
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
и перезапустите nginx
systemctl restart nginx
7. Завершающий этап и проверка
Настройка параметров TCP для PeerTube в соответствии с рекомендациями.
cp /var/www/peertube/peertube-latest/support/sysctl.d/30-peertube-tcp.conf /etc/sysctl.d/
sysctl -p /etc/sysctl.d/30-peertube-tcp.conf
Активация демона в systemctl и запуск PeerTube
cp /var/www/peertube/peertube-latest/support/systemd/peertube.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable peertube
systemctl start peertube
Установка пароля пользователя root для входа в административную панель PeerTube
cd /var/www/peertube/peertube-latest && NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u root
На этом этапе установка PeerTube завершена, можно открывать главную страницу нашего видеохостинга и заходить в административную панель PeerTube.
- 0
- 16 августа 2024, 12:08
- GreatAlex
Комментарии (0)
RSS свернуть / развернуть