This commit is contained in:
kcoupal 2022-04-06 20:40:10 +02:00
parent 51b34b9d74
commit 7e881167f7

View file

@ -4,22 +4,22 @@ toc: no
title: How to install peertube
...
Package install
Installation de paquets
~~~
$ sudo apt install install nginx ffmpeg wget redis postgresql
~~~
PeerTube user
Utilisateur PeerTube
Create a peertube user with /var/www/peertube home:
Créer un utilisateur peertube avec /var/www/peertube home:
~~~
$ sudo useradd -m -d /var/www/peertube -s /bin/bash -p peertube peertube
~~~
Set its PASSWORD:
Définissez son MOT DE PASSE:
~~~
$ sudo passwd peertube
@ -28,35 +28,35 @@ $ sudo passwd peertube
Database
Create the production database and a peertube user inside PostgreSQL:
Créez la base de données de production et un utilisateur peertube à l'intérieur PostgreSQL:
~~~
$ cd /var/www/peertube
$ sudo -u postgres createuser -P peertube
~~~
Here you should enter a password for PostgreSQL peertube user, that should be copied in production.yaml file. Don't just hit enter else it will be empty.
Ici, vous devez entrer un mot de passe pour l'utilisateur peertube PostgreSQL, qui doit être copié dans le fichier production.yaml. Ne vous contentez pas d'appuyer sur Entrée sinon il sera vide.
~~~
$ sudo -u postgres createdb -O peertube -E UTF8 -T template0 peertube_prod
~~~
Then enable extensions PeerTube needs:
Activez ensuite les extensions dont PeerTube a besoin:
~~~
$ sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_prod
$ sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_prod
~~~
Prepare PeerTube directory
Préparer le répertoire PeerTube
Fetch the latest tagged version of Peertube:
Récupérer la dernière version taguée de Peertube:
~~~
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"
~~~
Open the peertube directory, create a few required directories:
Ouvrez le répertoire peertube, créez quelques répertoires requis:
~~~
$ cd /var/www/peertube
@ -64,7 +64,7 @@ $ sudo -u peertube mkdir config storage versions
$ sudo -u peertube chmod 750 config/
~~~
Download the latest version of the Peertube client, unzip it and remove the zip:
Téléchargez la dernière version du client Peertube, décompressez-la et supprimez le zip:
~~~
$ cd /var/www/peertube/versions
@ -73,7 +73,7 @@ $ sudo -u peertube wget -q "https://github.com/Chocobozzz/PeerTube/releases/down
$ sudo -u peertube unzip -q peertube-${VERSION}.zip && sudo -u peertube rm peertube-${VERSION}.zip
~~~
Install Peertube:
Installer Peertube:
~~~
@ -82,58 +82,58 @@ $ sudo -u peertube ln -s versions/peertube-${VERSION} ./peertube-latest
$ cd ./peertube-latest && sudo -H -u peertube yarn install --production --pure-lockfile
~~~
PeerTube configuration
Paramétrage de PeerTube
Copy the default configuration file that contains the default configuration provided by PeerTube. You must not update this file.
Copiez le fichier de configuration par défaut qui contient la configuration par défaut fournie par PeerTube. Vous ne devez pas mettre à jour ce fichier.
~~~
$ cd /var/www/peertube
$ sudo -u peertube cp peertube-latest/config/default.yaml config/default.yaml
~~~
Now copy the production example configuration:
Copiez maintenant l'exemple de configuration de production:
~~~
$ cd /var/www/peertube
$ sudo -u peertube cp peertube-latest/config/production.yaml.example config/production.yaml
~~~
Then edit the config/production.yaml file according to your webserver and database configuration (webserver, database, redis, smtp and admin.email sections in particular). Keys defined in config/production.yaml will override keys defined in config/default.yaml.
puis éditez le fichier config/production.yaml en fonction de la configuration de votre serveur web et de votre base de données (sections webserver, database, redis, smtp et admin.email notamment). Les clés définies dans config/production.yaml remplaceront les clés définies dans config/default.yaml.
PeerTube does not support webserver host change. Even though PeerTube CLI can help you to switch hostname there's no official support for that since it is a risky operation that might result in unforeseen errors.
PeerTube ne prend pas en charge le changement d'hôte de serveur Web. Même si PeerTube CLI peut vous aider à changer de nom d'hôte, il n'y a pas de support officiel pour cela car il s'agit d'une opération risquée qui peut entraîner des erreurs imprévues.
Webserver
We only provide official configuration files for Nginx.
Nous ne fournissons que des fichiers de configuration officiels pour Nginx.
Copy the nginx configuration template:
Copiez le modèle de configuration nginx:
~~~
$ sudo cp /var/www/peertube/peertube-latest/support/nginx/peertube /etc/nginx/sites-available/peertube
~~~
Then set the domain for the webserver configuration file. Replace [peertube-domain] with the domain for the peertube server.
Définissez ensuite le domaine pour le fichier de configuration du serveur Web. Remplacez [peertube-domain] par le domaine du serveur peertube.
~~~
$ sudo sed -i 's/${WEBSERVER_HOST}/[peertube-domain]/g' /etc/nginx/sites-available/peertube
$ sudo sed -i 's/${PEERTUBE_HOST}/127.0.0.1:9000/g' /etc/nginx/sites-available/peertube
~~~
Then modify the webserver configuration file. Please pay attention to the alias keys of the static locations. It should correspond to the paths of your storage directories (set in the configuration file inside the storage key).
Modifiez ensuite le fichier de configuration du serveur Web. Veuillez prêter attention aux clés d'alias des emplacements statiques. Il doit correspondre aux chemins de vos répertoires de stockage (définis dans le fichier de configuration à l'intérieur de la clé de stockage).
~~~
$ sudo vim /etc/nginx/sites-available/peertube
~~~
Activate the configuration file:
Activez le fichier de configuration:
~~~
$ sudo ln -s /etc/nginx/sites-available/peertube /etc/nginx/sites-enabled/peertube
~~~
To generate the certificate for your domain as required to make https work you can use Let's Encrypt:
Pour générer le certificat pour votre domaine comme requis pour faire fonctionner https, vous pouvez utiliser Let's Encrypt:
~~~
$ sudo systemctl stop nginx
@ -141,13 +141,13 @@ $ sudo certbot certonly --standalone --post-hook "systemctl restart nginx"
$ sudo systemctl reload nginx
~~~
Now you have the certificates you can reload nginx:
Maintenant que vous avez les certificats, vous pouvez recharger nginx :
~~~
$ sudo systemctl reload nginx
~~~
Certbot should have installed a cron to automatically renew your certificate. Since our nginx template supports webroot renewal, we suggest you to update the renewal config file to use the webroot authenticator:
Certbot doit avoir installé un cron pour renouveler automatiquement votre certificat. Étant donné que notre modèle nginx prend en charge le renouvellement Webroot, nous vous suggérons de mettre à jour le fichier de configuration de renouvellement pour utiliser l'authentificateur Webroot.:
~~~
$ # Replace authenticator = standalone by authenticator = webroot
@ -164,7 +164,7 @@ $ sudo cp /var/www/peertube/peertube-latest/support/sysctl.d/30-peertube-tcp.con
$ sudo sysctl -p /etc/sysctl.d/30-peertube-tcp.conf
~~~
Your distro may enable this by default, but at least Debian 9 does not, and the default FIFO scheduler is quite prone to "Buffer Bloat" and extreme latency when dealing with slower client links as we often encounter in a video server.
Votre distribution peut l'activer par défaut, mais au moins Debian 9 ne le fait pas, et le planificateur FIFO par défaut est assez sujet au "Buffer Bloat" et à une latence extrême lorsqu'il s'agit de liens client plus lents, comme nous le rencontrons souvent dans un serveur vidéo.
systemd
@ -177,11 +177,11 @@ Check the service file (PeerTube paths and security directives):
~~~
$ sudo vim /etc/systemd/system/peertube.service
~~~
Tell systemd to reload its config:
Dites à systemd de recharger sa configuration:
~~~
$ sudo systemctl daemon-reload
~~~
If you want to start PeerTube on boot:
Si vous souhaitez démarrer PeerTube au démarrage:
~~~
$ sudo systemctl enable peertube
~~~
@ -197,9 +197,9 @@ $ sudo service peertube start
~~~
Administrator
Administrateur
The administrator username is root and the password is automatically generated. It can be found in PeerTube logs (path defined in production.yaml). You can also set another password with:
Le nom d'utilisateur de l'administrateur est root et le mot de passe est généré automatiquement. Il se trouve dans les logs de PeerTube (chemin défini dans production.yaml). Vous pouvez également définir un autre mot de passe avec:
~~~
$ cd /var/www/peertube/peertube-latest && NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u root
~~~
@ -207,22 +207,23 @@ Alternatively you can set the environment variable PT_INITIAL_ROOT_PASSWORD, to
Upgrade
PeerTube instance
Mise a jour
Instance PeerTube
Check the changelog (in particular BREAKING CHANGES!): https://github.com/Chocobozzz/PeerTube/blob/develop/CHANGELOG.md
Auto
The password it asks is PeerTube's database user password.
Le mot de passe demandé est le mot de passe de l'utilisateur de la base de données de PeerTube.
~~~
$ cd /var/www/peertube/peertube-latest/scripts && sudo -H -u peertube ./upgrade.sh
$ sudo systemctl restart peertube # Or use your OS command to restart PeerTube if you don't use systemd
~~~
Manually
Manuellement
Make a SQL backup
Faire une sauvegarde SQL
~~~
$ SQL_BACKUP_PATH="backup/sql-peertube_prod-$(date -Im).bak" && \
@ -230,13 +231,13 @@ $ SQL_BACKUP_PATH="backup/sql-peertube_prod-$(date -Im).bak" && \
sudo -u postgres pg_dump -F c peertube_prod | sudo -u peertube tee "$SQL_BACKUP_PATH" >/dev/null
~~~
Fetch the latest tagged version of Peertube:
Récupérez la dernière version taguée de Peertube :
~~~
$ 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"
~~~
Download the new version and unzip it:
Téléchargez la nouvelle version et décompressez-la :
~~~
$ cd /var/www/peertube/versions && \
@ -252,14 +253,14 @@ $ cd /var/www/peertube/versions/peertube-${VERSION} && \
sudo -H -u peertube yarn install --production --pure-lockfile
~~~
Copy new configuration defaults values and update your configuration file:
Copiez les nouvelles valeurs de configuration par défaut et mettez à jour votre fichier de configuration :
~~~
$ sudo -u peertube cp /var/www/peertube/versions/peertube-${VERSION}/config/default.yaml /var/www/peertube/config/default.yaml
$ diff /var/www/peertube/versions/peertube-${VERSION}/config/production.yaml.example /var/www/peertube/config/production.yaml
~~~
Change the link to point to the latest version:
Modifiez le lien pour qu'il pointe vers la dernière version :
~~~
$ cd /var/www/peertube && \
@ -277,7 +278,7 @@ sudo systemctl enable --now postgresql
nginx
Check changes in nginx configuration:
Vérifiez les modifications apportées à la configuration nginx :
~~~
$ cd /var/www/peertube/versions
@ -286,44 +287,44 @@ $ diff "$(ls --sort=t | head -2 | tail -1)/support/nginx/peertube" "$(ls --sort=
systemd
Check changes in systemd configuration:
Vérifiez les changements dans la configuration de systemd :
~~~
$ cd /var/www/peertube/versions
$ diff "$(ls --sort=t | head -2 | tail -1)/support/systemd/peertube.service" "$(ls --sort=t | head -1)/support/systemd/peertube.service"
~~~
Restart PeerTube
Redémarrer PeerTube
If you changed your nginx configuration:
Si vous avez modifié votre configuration nginx :
~~~
$ sudo systemctl reload nginx
~~~
If you changed your systemd configuration:
Si vous avez modifié votre configuration systemd:
~~~
$ sudo systemctl daemon-reload
~~~
Restart PeerTube and check the logs:
Redémarrez PeerTube et vérifiez les journaux:
~~~
$ sudo systemctl restart peertube && sudo journalctl -fu peertube
~~~
To reset a user password from CLI
Pour réinitialiser un mot de passe utilisateur à partir de CLI
~~~
$ cd /var/www/peertube/peertube-latest
$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u target_username
~~~
Things went wrong?
Les choses ont mal tourné ?
Change peertube-latest destination to the previous version and restore your SQL backup:
Remplacez peertube-latest destination par la version précédente et restaurez votre sauvegarde SQL:
~~~
$ OLD_VERSION="v0.42.42" && SQL_BACKUP_PATH="backup/sql-peertube_prod-2018-01-19T10:18+01:00.bak" && \