Моя инструкция Docker
Еще не написана
С офф сайта , Установка в Docker
Стыбрено тут
Это руководство требует докер и Docker-Compose V2 .
docker compose version # Must be > 2.x.x
Установить
PeerTube не поддерживает смену хоста веб-сервера . Помните, что ваше доменное имя становится окончательным после первого запуска PeerTube.
Перейдите в свой рабочий каталог
ИНФОРМАЦИЯ
В следующем руководстве предполагается, что рабочий каталог пуст, но вы также можете клонировать репозиторий, использовать ветку master и cd support/docker/production.
cd /your/peertube/directory
Получите последнюю версию файла Compose
curl https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/docker/production/docker-compose.yml > docker-compose.yml
Просмотрите источник файла, который вы собираетесь загрузить: docker-compose.yml
Получите последнюю версию env_file
curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/master/support/docker/production/.env > .env
Просмотрите источник файла, который вы собираетесь загрузить: .env
Настройте docker-compose.ymlфайл там в соответствии с вашими потребностями
sudo nano docker-compose.yml
Затем настройте .envфайл для изменения настроек переменных среды
sudo nano .env
В скачанном примере .env , необходимо заменить:
<MY POSTGRES USERNAME><MY POSTGRES PASSWORD><MY DOMAIN>без https://<MY EMAIL ADDRESS><MY PEERTUBE SECRET>
Другие переменные среды используются в /support/docker/production/config/custom-environment-variables.yaml и может быть интуитивно понятен при использовании.
Веб-сервер
ИНФОРМАЦИЯ
Файл компоновки docker включает настроенный веб-сервер. Вы можете пропустить эту часть и прокомментировать соответствующий раздел в Docker Compose, если вы используете другой веб-сервер/прокси.
Установите шаблон, который будет использовать контейнер nginx. Контейнер сгенерирует конфигурацию, заменив ${WEBSERVER_HOST}и ${PEERTUBE_HOST}используя ваш докер, создайте env-файл.
mkdir -p docker-volume/nginx docker-volume/nginx-logs
curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/master/support/nginx/peertube > docker-volume/nginx/peertube
Вам необходимо вручную сгенерировать первый сертификат SSL/TLS с помощью Let’s Encrypt:
mkdir -p docker-volume/certbot
docker run -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" certbot/certbot certonly --standalone
Выделенный контейнер в docker-compose автоматически обновит этот сертификат и перезагрузит nginx.
Проверьте свою настройку
примечание : новые версии Compose вызываются с помощью docker composeвместо docker-compose, поэтому удалите дефис на всех шагах, использующих эту команду, если вы получаете ошибки.
Запустите свои контейнеры:
docker compose up
Получение автоматически сгенерированных учетных данных администратора
Вы можете изменить автоматически созданный пароль для пользователя root, выполнив эту команду из корневого каталога peertube:
docker compose exec -u peertube peertube npm run reset-password -- -u root
Вы также можете просмотреть журналы контейнера Peertube по умолчанию. rootпароль. Тебе захочется бежать docker-compose logs peertube | grep -A1 rootдля поиска в выводе журнала учетных данных администратора вашего нового экземпляра PeerTube, которые будут выглядеть примерно так.
docker compose logs peertube | grep -A1 root
peertube_1 | [example.com:443] 2019-11-16 04:26:06.082 info: Username: root
peertube_1 | [example.com:443] 2019-11-16 04:26:06.083 info: User password: abcdefghijklmnop
Получение автоматически сгенерированной записи TXT DNS DKIM
ДКИМ отправка подписи и генерация ключей RSA включены в образе Postfix по умолчанию. mwader/postfix-relayс ОпенДКИМ .
Бегать cat ./docker-volume/opendkim/keys/*/*.txtчтобы отобразить запись DKIM DNS TXT, содержащую открытый ключ для настройки вашего домена:
cat ./docker-volume/opendkim/keys/*/*.txt
peertube._domainkey.mydomain.tld. IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Dx7wLGPFVaxVQ4TGym/eF89aQ8oMxS9v5BCc26Hij91t2Ci8Fl12DHNVqZoIPGm+9tTIoDVDFEFrlPhMOZl8i4jU9pcFjjaIISaV2+qTa8uV1j3MyByogG8pu4o5Ill7zaySYFsYB++cHJ9pjbFSC42dddCYMfuVgrBsLNrvEi3dLDMjJF5l92Uu8YeswFe26PuHX3Avr261n"
"j5joTnYwat4387VEUyGUnZ0aZxCERi+ndXv2/wMJ0tizq+a9+EgqIb+7lkUc2XciQPNuTujM25GhrQBEKznvHyPA6fHsFheymOuB763QpkmnQQLCxyLygAY9mE/5RY+5Q6J9oDOQIDAQAB" ) ; ----- DKIM key peertube for mydomain.tld
Пароль администратора
Посмотреть руководство по производству Раздел «Администратор»
Что теперь?
Посмотреть руководство по производству Раздел «Что теперь» .
Обновление
ПРЕДУПРЕЖДЕНИЕ
Проверьте журнал изменений (в частности, ВАЖНЫЕ ПРИМЕЧАНИЯ раздел): https://github.com/Chocobozzz/PeerTube/blob/develop/CHANGELOG.md
Загрузите последние изображения:
cd /your/peertube/directory
docker compose pull
Остановитесь, удалите контейнеры и внутренние тома (чтобы сделать недействительными статические клиентские файлы, совместно используемые peertubeи webserverконтейнеры):
docker compose down -v
Обновите конфигурацию nginx:
mv docker-volume/nginx/peertube docker-volume/nginx/peertube.bak
curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/master/support/nginx/peertube > docker-volume/nginx/peertube
Перезапустите PeerTube:
docker compose up -d
Обновить контейнер PostgreSQL
Если вы хотите обновить версию контейнера PostgreSQL (например, потому, что ваша текущая версия больше не будет поддерживаться), вам необходимо запланировать время простоя (чтобы экспортировать текущий кластер и повторно импортировать данные в новый).
Когда вы будете готовы, зайдите в каталог создания докера PeerTube:
cd /docker-compose/directory
Подготовьте каталог резервных копий и остановите все контейнеры, кроме базы данных:
mkdir -p backups
docker compose stop peertube webserver certbot
Зайдите внутрь контейнера базы данных:
docker compose exec -it postgres /bin/bash
И экспортируйте базу данных (заменять не нужно $POSTGRES_*переменные, они автоматически устанавливаются вашим env-файлом из docker compose):
export PGUSER="$POSTGRES_USER"
export PGDATABASE="$POSTGRES_DB"
export PGPASSWORD="$POSTGRES_PASSWORD"
pg_dumpall > "/tmp/pg.dump"
Выходим из контейнера:
exit
Скопируйте дамп из контейнера:
docker compose cp postgres:/tmp/pg.dump backups/pg.dump
Остановите контейнер базы данных и подготовьте данные для нового кластера:
docker compose stop postgres
mv ./docker-volume/db ./docker-volume/db.bak
mkdir ./docker-volume/db && chmod 700 ./docker-volume/db
Обновите версию контейнера PostgreSQL (например, замените postgres:13-alpineк postgres:17-alpine):
vim docker-compose.yml
Извлеките новый образ PostgreSQL Docker:
docker compose pull
Перезапустите контейнер только PostgreSQL и подождите, пока не увидите: database system is ready to accept connections
docker compose up -d postgres
docker compose logs -f postgres
Скопируйте дамп базы данных внутрь контейнера:
docker compose cp "backups/pg.dump" postgres:/tmp/pg.dump
Зайти внутрь контейнера
docker compose exec -it postgres /bin/bash
Проверьте версию PostgreSQL и повторно импортируйте данные базы данных. Затем сбросьте пароль пользователя базы данных PeerTube, чтобы устранить потенциальную проблему аутентификации, если старый алгоритм хэширования пароля устарел.
export PGUSER="$POSTGRES_USER"
export PGDATABASE="$POSTGRES_DB"
export PGPASSWORD="$POSTGRES_PASSWORD"
psql -U "$POSTGRES_USER" -c "SELECT version();"
psql -U "$POSTGRES_USER" -f /tmp/pg.dump
psql -U "$POSTGRES_USER" -c "ALTER USER $POSTGRES_USER WITH PASSWORD '$POSTGRES_PASSWORD'"
Выходим из контейнера:
exit
Перезапустите другие службы и проверьте, все ли в порядке:
docker compose up -d peertube webserver certbot
docker compose logs -f peertube
Если вас устраивают результаты, вы можете удалить каталог резервных копий и старые каталоги данных:
rm -rf ./docker-volume/db.bak backups
Строить
Производство
git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
cd /tmp/peertube
docker build . -f ./support/docker/production/Dockerfile
Разработка
У нас нет образа Docker для разработки. Видеть руководство по содействию для получения дополнительной информации о том, как взломать PeerTube!
С офф сайта, Установка на Linux
Стыбрено тут
Руководство по производству
Установка
Пожалуйста, не устанавливайте PeerTube для производства на устройствах с низкой пропускной способностью (пример: ваш канал ADSL). Если вам нужна информация о соответствующем оборудовании для запуска PeerTube, см. Часто задаваемые вопросы .
🔨 Зависимости
Следуйте инструкциям руководство по зависимостям .
👷 Пользователь PeerTube
Создайте peertube пользователь с /var/www/peertube дом:
Установите его пароль:
Убедитесь, что корневой каталог Peertube доступен для nginx:
Во FreeBSD
или используйте adduser чтобы создать его в интерактивном режиме.
🗃️База данных
Создайте рабочую базу данных и пользователя Peertube внутри PostgreSQL:
Здесь следует ввести пароль для PostgreSQL peertube пользователя, который следует скопировать в production.yaml файл. Не нажимайте Enter, иначе оно будет пустым.
Затем включите расширения, необходимые PeerTube:
📄 Подготовьте каталог PeerTube.
Загрузите последнюю версию Peertube с тегами:
Откройте каталог peertube, создайте несколько необходимых каталогов:
Загрузите последнюю версию клиента Peertube, разархивируйте и удалите zip:
Установите Пертуб:
🔧 Конфигурация PeerTube
Скопируйте файл конфигурации по умолчанию, содержащий конфигурацию по умолчанию, предоставленную PeerTube. Ты не должен обновите этот файл.
Теперь скопируйте конфигурацию производственного примера:
Затем отредактируйте config/production.yaml файл в соответствии с конфигурацией вашего веб-сервера и базы данных. В частности:
webserver: общедоступная информация об обратном проксиsecrets: секретные строки, которые необходимо создать вручную (версия PeerTube >= 5.0).database: Настройки PostgreSQLredis: настройки Redissmtp: Если вы хотите использовать электронную почтуadmin.email: Чтобы правильно заполнитьrootадрес электронной почты пользователя
Ключи, определенные в config/production.yaml переопределит ключи, определенные в config/default.yaml.
PeerTube не поддерживает смену хоста веб-сервера . Несмотря на то PeerTube CLI может помочь вам сменить имя хоста Официальной поддержки для этого нет, поскольку это рискованная операция, которая может привести к непредвиденным ошибкам.
🚚 Веб-сервер
Мы предоставляем только официальные файлы конфигурации для Nginx.
Скопируйте шаблон конфигурации nginx:
Установите домен для файла конфигурации веб-сервера, заменив [peertube-domain] с доменом для сервера Peertube:
Затем измените файл конфигурации веб-сервера. Пожалуйста, обратите внимание на:
- тот
alias,rootиrewriteПути директив, пути должны соответствовать местоположению вашей файловой системы PeerTube - тот
proxy_limit_rateиlimit_rateдирективы, если вы планируете транслировать видео с высоким битрейтом (например, 4K со скоростью 60 кадров в секунду)
Активируйте файл конфигурации:
Чтобы сгенерировать сертификат для вашего домена, необходимый для работы https, вы можете использовать Давайте зашифруем :
Certbot должен был установить cron для автоматического продления вашего сертификата. Поскольку наш шаблон nginx поддерживает обновление веб-корня, мы предлагаем вам обновить файл конфигурации обновления, чтобы использовать webroot аутентификатор:
Если вы планируете иметь много одновременных зрителей на своем экземпляре PeerTube, рассмотрите возможность увеличения worker_connections ценить: https://nginx.org/en/docs/ngx_core_module.html#worker_connections .
Если вы используете FreeBSD
Во FreeBSD вы можете использовать Обезвоженный security/dehydrated для Давайте зашифруем
⚗️ Настройка TCP/IP для Linux
Ваш дистрибутив может включать это по умолчанию, но, по крайней мере, Debian 9 этого не делает, а планировщик FIFO по умолчанию весьма склонен к «раздуванию буфера» и экстремальным задержкам при работе с более медленными клиентскими соединениями, с которыми мы часто сталкиваемся на видеосервере.
🧱система
Если ваша ОС использует systemd, скопируйте шаблон конфигурации:
Проверьте служебный файл (пути PeerTube и директивы безопасности):
Сообщите systemd перезагрузить конфигурацию:
Если вы хотите запустить PeerTube при загрузке:
Бегать:
Если вы используете FreeBSD
В FreeBSD скопируйте сценарий запуска и обновите rc.conf:
Бегать:
Если вы используете OpenRC
Если ваша ОС использует OpenRC, скопируйте служебный скрипт:
Если вы хотите запустить PeerTube при загрузке:
Запустите и распечатайте последние журналы:
🧑💻Администратор
Имя пользователя администратора root и пароль генерируется автоматически. Его можно найти в журналах PeerTube (путь указан в production.yaml). Вы также можете установить другой пароль с помощью:
Альтернативно вы можете установить переменную среды PT_INITIAL_ROOT_PASSWORD, к вашему собственному паролю администратора, хотя он должен состоять из 6 или более символов.
🎉Что теперь?
Теперь ваш экземпляр запущен, и вы можете:
- Добавьте свой экземпляр в общедоступный индекс экземпляров PeerTube, если вы хотите: https://instances.joinpeertube.org/
- Проверять доступные инструменты CLI
Обновление
Экземпляр PeerTube
Проверьте журнал изменений (в частности, ВАЖНЫЕ ПРИМЕЧАНИЯ раздел): https://github.com/Chocobozzz/PeerTube/blob/develop/CHANGELOG.md
Запустите сценарий обновления (пароль, который он запрашивает, — это пароль пользователя базы данных PeerTube):
Возможно, вы захотите бежать sudo -u peertube pnpm store prune после нескольких обновлений, чтобы освободить место на диске.
Предпочитаете обновление вручную?
Сделать резервную копию SQL
Загрузите последнюю версию Peertube с тегами:
Загрузите новую версию и разархивируйте ее:
Установите зависимости узла:
Скопируйте новые значения конфигурации по умолчанию и обновите файл конфигурации:
Измените ссылку, чтобы она указывала на последнюю версию:
Обновить конфигурацию PeerTube
Если в вашей системе есть git установлен, сценарий автоматического обновления должен был создать config/production.yaml.new файл, который объединяет ваш текущий файл конфигурации с новыми ключами конфигурации, представленными в новой версии PeerTube.
Просмотрите файл, проверьте и исправьте возможные конфликты:
Затем замените текущий файл конфигурации новым:
Обновить конфигурацию nginx
Проверьте изменения в конфигурации nginx:
Обновить службу systemd
Проверьте изменения в конфигурации systemd:
Если вы используете OpenRC
Перезапустите PeerTube
Если вы изменили конфигурацию nginx:
Если вы изменили конфигурацию systemd:
Перезапустите PeerTube и проверьте логи:
Что-то пошло не так?
Изменять peertube-latest пункт назначения к предыдущей версии и восстановите резервную копию SQL: