Skip to main content

Установка PeerTube в Docker

Руководство по докеру

Для этого руководства требуются docker и docker-compose V2 .


оболочка
docker compose version # Must be > 2.x.x

Установить

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

Перейдите в свой рабочий каталог

ИНФОРМАЦИЯ

В следующем руководстве предполагается, что рабочий каталог пустой, но вы также можете клонировать репозиторий, использовать главную ветку и 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 compose включает настроенный веб-сервер. Вы можете пропустить эту часть и прокомментировать соответствующий раздел в docker compose, если вы используете другой веб-сервер/прокси.

Установите шаблон, который будет использовать контейнер nginx. Контейнер сгенерирует конфигурацию, заменив ${WEBSERVER_HOST}и ${PEERTUBE_HOST}используя ваш файл docker compose env.


оболочка
mkdir -p docker-volume/nginx
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

Вы также можете выполнить grep журналов вашего контейнера 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

Получение автоматически сгенерированной записи DKIM DNS TXT

Отправка подписи DKIM и генерация ключей RSA включены в образ Postfix по умолчанию mwader/postfix-relayс OpenDKIM .

Запустите cat ./docker-volume/opendkim/keys/*/*.txt, чтобы отобразить вашу TXT-запись DKIM DNS, содержащую открытый ключ для настройки вашего домена:


Баш
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