Установка 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