Outils pour utilisateurs

Outils du site


peertube_installation_et_configuration

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
peertube_installation_et_configuration [2021/04/25 21:53] – [Administration de l'instance] n1c0peertube_installation_et_configuration [2024/01/24 23:02] (Version actuelle) n1c0
Ligne 1: Ligne 1:
 ====== Peertube - Installation et configuration ====== ====== Peertube - Installation et configuration ======
  
-<WRAP center round info 60%> +<WRAP center round important 60%> 
-Article en cours d'écriture+Attention, ce tuto est plutôt obsolète. Mieux vaut voir [[https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md|la doc officielle]].
 </WRAP> </WRAP>
  
  
-**Peertube est un logiciel libre pour reprendre le contrôle de vos vidéos en ligne.**+**Peertube est un logiciel libre semblable à Youtube pour reprendre le contrôle de vos vidéos en ligne.**
  
 PeerTube, développé par Framasoft, est l'alternative libre et décentralisée aux plateformes vidéos, qui vous donne accès à plus de 400 000 vidéos proposées par 60 000 utilisateur⋅ices et visionnées plus de 15 millions de fois PeerTube, développé par Framasoft, est l'alternative libre et décentralisée aux plateformes vidéos, qui vous donne accès à plus de 400 000 vidéos proposées par 60 000 utilisateur⋅ices et visionnées plus de 15 millions de fois
Ligne 18: Ligne 18:
 ===== Installation sur Debian 10 ===== ===== Installation sur Debian 10 =====
  
-On utilisera le serveur Apache pour rendre visible Peertube sur les Internets.+On utilisera le serveur Apache pour rendre visible Peertube sur les Internets à l'adresse **videos.monsite.org**
  
 **Important** : ce tutoriel n'aborde pas la configuration d'un Pare-Feu (pour le moment). **Important** : ce tutoriel n'aborde pas la configuration d'un Pare-Feu (pour le moment).
Ligne 45: Ligne 45:
 ==== Création d'un user spécifique ==== ==== Création d'un user spécifique ====
  
-On décide d'installer Peertube dans le dossier **/var/www/tube.futuretic.fr**, qui est attribué comme //home// d'un nouvel utilisateur nommé **peertube**. On règle aussi les droits sur ce dossier.+On décide d'installer Peertube dans le dossier **/var/www/videos.monsite.org**, qui est attribué comme //home// d'un nouvel utilisateur nommé **peertube**. On règle aussi les droits sur ce dossier.
  
 <code> <code>
-mkdir -p /var/www/tube.futuretic.fr +mkdir -p /var/www/videos.monsite.org 
-useradd -s /bin/bash -d /var/www/tube.futuretic.fr peertube +useradd -s /bin/bash -d /var/www/videos.monsite.org peertube 
-chown -R peertube: /var/www/tube.futuretic.fr +chown -R peertube: /var/www/videos.monsite.org 
-chmod 2770 /var/www/tube.futuretic.fr+chmod 2775 /var/www/videos.monsite.org
 </code> </code>
  
Ligne 69: Ligne 69:
 ==== Création des répertoires de base ==== ==== Création des répertoires de base ====
  
-Peertube utilisera ces répertoires pour fonctionner. Toujours dans le dossier **/var/www/tube.futuretic.fr**, on les crée en tant que l'utilisateur précédemment créé : **peertube**. Après la création, on entre dans le dossier **versions**.+Peertube utilisera ces répertoires pour fonctionner. Toujours dans le dossier **/var/www/videos.monsite.org**, on les crée en tant que l'utilisateur précédemment créé : **peertube**. Après la création, on entre dans le dossier **versions**.
  
 <code> <code>
Ligne 79: Ligne 79:
 ==== Téléchargement de la dernière version ==== ==== Téléchargement de la dernière version ====
  
-On récupère la dernière version, on la décompresse, on supprimé l'archive, et on fait un lien symbolique dans le dossier racine de Peertube pour indiquer quelle est la dernière version. Enfin, on entre dans le dossier de cette version.+On récupère la dernière version, on la décompresse, on supprime l'archive, et on fait un lien symbolique dans le dossier racine de Peertube pour indiquer quelle est la dernière version.
  
 <code> <code>
Ligne 88: Ligne 88:
 cd ../ cd ../
 ln -s versions/peertube-${VERSION} ./peertube-latest ln -s versions/peertube-${VERSION} ./peertube-latest
-cd ./peertube-latest 
 </code> </code>
  
 ==== Installation ==== ==== Installation ====
  
-Grâce à Yarn, on récupère Peertube, puis on copie les modèles de config dans notre dossier **config** précédemment créé. Ce sont ces fichiers que l'on modifie pour la configuration.+On entre dans le dossier de la dernière version, puis, grâce à Yarn, on install les dépendances de Peertube. Ensuite on copie les modèles de config dans notre dossier **config** précédemment créé : ce sont ces fichiers que l'on modifie pour la configuration.
  
 <code> <code>
 +cd ./peertube-latest
 yarn install --production --pure-lockfile yarn install --production --pure-lockfile
-cp ./config/production.yaml.example ../../config/production.yaml 
 cp ./config/local-test.json ../../config/local-production.json cp ./config/local-test.json ../../config/local-production.json
 +cp ./config/default.yaml.example ../../config/default.yaml
 +cp ./config/production.yaml.example ../../config/production.yaml
 </code> </code>
  
Ligne 105: Ligne 106:
 On modifie le fichier de config : On modifie le fichier de config :
  
-  nano /var/www/tube.futuretic.fr/config/production.yaml+  nano /var/www/videos.monsite.org/config/production.yaml
  
 Le fichier est long, mais une partie de la config pourra se faire directement dans l'interface de Peertube. Modifier le fichier en fonction de vos besoins et en remplaçant l'url de votre instance Peertube partout où il le faudra. Le fichier est long, mais une partie de la config pourra se faire directement dans l'interface de Peertube. Modifier le fichier en fonction de vos besoins et en remplaçant l'url de votre instance Peertube partout où il le faudra.
  
-**Important** : Supprimer le sufixe '_prod' dans la configuration de la base de données.+**Important** : Supprimer le suffixe '_prod' dans la configuration de la base de données.
  
 <code> <code>
Ligne 115: Ligne 116:
 webserver: webserver:
   https: true   https: true
-  hostname: 'tube.futuretic.fr'+  hostname: 'videos.monsite.org'
   port: 443   port: 443
 ... ...
Ligne 126: Ligne 127:
 ... ...
 storage: storage:
-  tmp: '/var/www/tube.futuretic.fr/storage/tmp/' # Used to download data (imports etc), store uploaded files before processing... +  tmp: '/var/www/videos.monsite.org/storage/tmp/' # Used to download data (imports etc), store uploaded files before processing... 
-  avatars: '/var/www/tube.futuretic.fr/storage/avatars/' +  avatars: '/var/www/videos.monsite.org/storage/avatars/' 
-  videos: '/var/www/tube.futuretic.fr/storage/videos/' +  videos: '/var/www/videos.monsite.org/storage/videos/' 
-  streaming_playlists: '/var/www/tube.futuretic.fr/storage/streaming-playlists/' +  streaming_playlists: '/var/www/videos.monsite.org/storage/streaming-playlists/' 
-  redundancy: '/var/www/tube.futuretic.fr/storage/videos/' +  redundancy: '/var/www/videos.monsite.org/storage/videos/' 
-  logs: '/var/www/tube.futuretic.fr/storage/logs/' +  logs: '/var/www/videos.monsite.org/storage/logs/' 
-  previews: '/var/www/tube.futuretic.fr/storage/previews/' +  previews: '/var/www/videos.monsite.org/storage/previews/' 
-  thumbnails: '/var/www/tube.futuretic.fr/storage/thumbnails/' +  thumbnails: '/var/www/videos.monsite.org/storage/thumbnails/' 
-  torrents: '/var/www/tube.futuretic.fr/storage/torrents/' +  torrents: '/var/www/videos.monsite.org/storage/torrents/' 
-  captions: '/var/www/tube.futuretic.fr/storage/captions/' +  captions: '/var/www/videos.monsite.org/storage/captions/' 
-  cache: '/var/www/tube.futuretic.fr/storage/cache/' +  cache: '/var/www/videos.monsite.org/storage/cache/' 
-  plugins: '/var/www/tube.futuretic.fr/storage/plugins/'+  plugins: '/var/www/videos.monsite.org/storage/plugins/'
 ... ...
 instance: instance:
-  name: 'PeerTube FuturEtic'+  name: 'Mon instance !'
   short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'   short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'
-  description: 'Peertube FuturEtic, nos vidéos à nous' # Support markdown+  description: 'Vachement bien' # Support markdown
 </code> </code>
  
Ligne 149: Ligne 150:
   email:   email:
     enabled: true     enabled: true
 +et pour la configuration smtp par exemple :
  
 +<code>
 +# SMTP server to send emails
 +smtp:
 +  # smtp or sendmail
 +  transport: smtp
 +  # Path to sendmail command. Required if you use sendmail transport
 +  sendmail: null
 +  hostname: mail.monmail.net
 +  port: 587 # If you use StartTLS: 587
 +  username: bot@mondomaine.org
 +  password: ****
 +  tls: false # If you use StartTLS: false - was true
 +  disable_starttls: false
 +  ca_file: null # Used for self signed certificates
 +  from_address: 'bot@mondomaine.org'
 +
 +</code>
 ==== Optimisation et démarrage ==== ==== Optimisation et démarrage ====
  
 On copie la config spécifique TCP de Peertube au bon endroit (elle permet de gérer l'envoi des paquets aux clients lents) : On copie la config spécifique TCP de Peertube au bon endroit (elle permet de gérer l'envoi des paquets aux clients lents) :
  
-  cp /var/www/tube.futuretic.fr/peertube-latest/support/sysctl.d/30-peertube-tcp.conf /etc/sysctl.d/+  cp /var/www/videos.monsite.org/peertube-latest/support/sysctl.d/30-peertube-tcp.conf /etc/sysctl.d/ 
 + 
 +Pour démarrer Peertube, on ajoute son service aux daemons du système pour qu'il démarre tout seul au boot de la machine et que l'on puisse le démarrer / arrêter manuellement. 
 + 
 +  cp /var/www/videos.monsite.org/peertube-latest/support/systemd/peertube.service /etc/systemd/system/ 
 +   
 +Modifier ce nouveau fichier en mettant le bon PATH de la config de votre instance Peertube, et celui de l'instance elle-même : 
 + 
 +<code> 
 +... 
 +Environment=NODE_CONFIG_DIR=/var/www/videos.monsite.org/config 
 +... 
 +WorkingDirectory=/var/www/videos.monsite.org/peertube-latest 
 +</code>
  
-On démarre Peertube ! On l'ajoute aussi aux daemons du système pour qu'il démarre tout seul au boot de la machine. Puis on regarde les infos sur l'état de Peertube (qui devrait donc être démarré).+Enfin, on reload les daemons, on active celui de peertube, on le démarre et on consulte son status :
  
 <code> <code>
-cp /var/www/tube.futuretic.fr/peertube-latest/support/systemd/peertube.service /etc/systemd/system/ 
 systemctl daemon-reload systemctl daemon-reload
 systemctl enable peertube systemctl enable peertube
Ligne 173: Ligne 204:
 su - peertube su - peertube
 cd peertube-latest cd peertube-latest
-NODE_CONFIG_DIR=/var/www/tube.futuretic.fr/config NODE_ENV=production npm run reset-password -- -u root+NODE_CONFIG_DIR=/var/www/videos.monsite.org/config NODE_ENV=production npm run reset-password -- -u root
 </code> </code>
  
Ligne 196: Ligne 227:
 </code> </code>
  
-Pour générer ce premier certificat, on va utiliser le //vhost// par défaut d'apache **000-default.conf** en changeant simplement le ServerName pour tube.futuretic.fr :+Pour générer ce premier certificat, on va utiliser le //vhost// par défaut d'apache **000-default.conf** en changeant simplement le ServerName pour videos.monsite.org :
  
 <code> <code>
Ligne 211: Ligne 242:
   certbot certonly --apache   certbot certonly --apache
  
-Enfin, on défini le vhost en créant le fichier **/etc/apache2/sites-available/tube.futuretic.fr.conf** qui ressemble à ça :+Enfin, on défini le vhost en créant le fichier **/etc/apache2/sites-available/videos.monsite.org.conf** qui ressemble à ça :
  
 <code> <code>
 <VirtualHost *:80> <VirtualHost *:80>
-   ServerName tube.futuretic.fr +   ServerName videos.monsite.org 
-   Redirect Permanent / https://tube.futuretic.fr/+   Redirect Permanent / https://videos.monsite.org/
 </VirtualHost> </VirtualHost>
 <VirtualHost *:443> <VirtualHost *:443>
-        ServerName tube.futuretic.fr+        ServerName videos.monsite.org
  
         LogLevel error         LogLevel error
-        ErrorLog "|/usr/bin/rotatelogs -lc /var/www/tube.futuretic.fr/var/log/apache2/error.%Y.%m.%d 86400" +        ErrorLog "|/usr/bin/rotatelogs -lc /var/www/videos.monsite.org/var/log/apache2/error.%Y.%m.%d 86400" 
-        CustomLog "|/usr/bin/rotatelogs -lc /var/www/tube.futuretic.fr/var/log/apache2/access.%Y.%m.%d 86400" combined+        CustomLog "|/usr/bin/rotatelogs -lc /var/www/videos.monsite.org/var/log/apache2/access.%Y.%m.%d 86400" combined
  
  
         SSLEngine on         SSLEngine on
-        SSLCertificateFile /etc/letsencrypt/live/tube.futuretic.fr/fullchain.pem +        SSLCertificateFile /etc/letsencrypt/live/videos.monsite.org/fullchain.pem 
-        SSLCertificateKeyFile /etc/letsencrypt/live/tube.futuretic.fr/privkey.pem+        SSLCertificateKeyFile /etc/letsencrypt/live/videos.monsite.org/privkey.pem
  
         # HSTS (mod_headers is required) (63072000 seconds = 2 years) (only activate it knowingly)         # HSTS (mod_headers is required) (63072000 seconds = 2 years) (only activate it knowingly)
Ligne 255: Ligne 286:
                 Header append Cache-Control "public, max-age=31536000, immutable"                 Header append Cache-Control "public, max-age=31536000, immutable"
         </FilesMatch>         </FilesMatch>
-        AliasMatch ^/client/(.*\.(js|css|woff2|otf|ttf|woff|eot))$ /var/www/tube.futuretic.fr/peertube-latest/client/dist/$1+        AliasMatch ^/client/(.*\.(js|css|woff2|otf|ttf|woff|eot))$ /var/www/videos.monsite.org/peertube-latest/client/dist/$1
  
         # Set caching on image files for 1 year         # Set caching on image files for 1 year
Ligne 261: Ligne 292:
                 Header append Cache-Control "public, max-age=31536000, immutable"                 Header append Cache-Control "public, max-age=31536000, immutable"
         </FilesMatch>         </FilesMatch>
-        AliasMatch ^/static/(thumbnails|avatars)/(.*)$ /var/www/tube.futuretic.fr/storage/$1/$2+        AliasMatch ^/static/(thumbnails|avatars)/(.*)$ /var/www/videos.monsite.org/storage/$1/$2
  
         # Bypass PeerTube webseed route for better performances         # Bypass PeerTube webseed route for better performances
-        Alias /static/webseed /var/www/tube.futuretic.fr/storage/videos+        Alias /static/webseed /var/www/videos.monsite.org/storage/videos
         <Location /static/webseed>         <Location /static/webseed>
                 # Clients usually have 4 simultaneous webseed connections, so the real limit is 3MB/s per client                 # Clients usually have 4 simultaneous webseed connections, so the real limit is 3MB/s per client
Ligne 325: Ligne 356:
  
 <code> <code>
-a2ensite tube.futuretic.fr.conf+a2ensite videos.monsite.org.conf
 systemctl reload apache2 systemctl reload apache2
 </code> </code>
Ligne 334: Ligne 365:
 Il faut suivre [[https://docs.joinpeertube.org/maintain-tools|la procédure décrite ici]] et s'assurer que l'on a bien suivi les [[https://docs.joinpeertube.org/dependencies?id=debian--ubuntu-and-derivatives|requirements]]. Il faut suivre [[https://docs.joinpeertube.org/maintain-tools|la procédure décrite ici]] et s'assurer que l'on a bien suivi les [[https://docs.joinpeertube.org/dependencies?id=debian--ubuntu-and-derivatives|requirements]].
  
-Pour installer les outils CLI, il faut recloner le dépôt Peertube dans un répertoire autre que celui de l'instance Peertube installée précédemment. En tant qu'utilisateur non root :+Pour installer les outils CLI, il faut cloner le dépôt Peertube dans un répertoire autre que celui de l'instance Peertube installée précédemment, par exemple dans le home d'un hypothétique user **johndoe**. En tant que **johndoe** :
  
 <code> <code>
 +cd /home/johndoe
 git clone https://github.com/Chocobozzz/PeerTube.git git clone https://github.com/Chocobozzz/PeerTube.git
 cd PeerTube cd PeerTube
Ligne 348: Ligne 380:
 </code> </code>
  
-Puis dans le fichier //.bashrc// de son utilisateur favori, on ajoute un alias afin d'avoir la commande **peertube** disponible ([[[[https://docs.joinpeertube.org/maintain-tools?id=cli-wrapper|CLI wrapper]]|documentation]])+Puis dans le fichier **/home/johndoe/.bashrc**, on ajoute un alias afin d'avoir la commande **peertube** disponible ([[https://docs.joinpeertube.org/maintain-tools?id=cli-wrapper|CLI wrapper documentation]]) dans le PATH.
  
-  alias peertube="cd /var/www/tube.futuretic.fr/peertube-latest && node ./dist/server/tools/peertube.js"+  alias peertube="cd /home/johndoe/Peertube && node ./dist/server/tools/peertube.js"
  
 On prend en compte les modifications : On prend en compte les modifications :
Ligne 356: Ligne 388:
   source .bashrc   source .bashrc
      
 +==== Sauvegarde ====
 +
 +Il faut sauvegarder les fichiers et dossiers créés ou modifiés pour Peertube ainsi que la base de données PostgreSQL.
 +
 +Liste des fichiers et dossiers :
 +
 +  * Dossier Peertube : /var/www/videos.monsite.org
 +  * Config réseau : /etc/sysctl.d/30-peertube-tcp.conf
 +  * Config du daemon/service : /etc/systemd/system/peertube.service
 +  * Vhost apache : /etc/apache2/sites-available/videos.monsite.org.conf 
 +  * Les outils CLI : /home/johndoe/Peertube
 +
 +En réalité, on ne sauve que les éléments qui changent, c'est à dire le dossier d'install de Peertube et la base de données.
 +
 +Pour la base de données, en tant que root, on execute la commande suivante. Elle crée un dossier **/var/www/videos.monsite.org/backup** dans lequel elle crée le fichier **sql-peertube-[date]** avec [date] celle du moment de la sauvegarde.
 +
 +<code bash>
 +SQL_BACKUP_PATH="backup/sql-peertube-$(date -Im).bak" && cd /var/www/videos.monsite.org && sudo -u peertube mkdir -p backup && sudo -u postgres pg_dump -F c peertube | sudo -u peertube tee "$SQL_BACKUP_PATH" >/dev/null
 +</code>
 +
 +==== Mise à jour ====
 +Suivre les préconisations de [[https://docs.joinpeertube.org/install-any-os?id=upgrade|la documentation]] en fonction du saut de version à vérifier dans [[https://github.com/Chocobozzz/PeerTube/blob/develop/CHANGELOG.md|le Changelog]].
 +
 +==== Désactiver les commentaires ====
 +A ce jour, il n'y a pas de mécanique pour désactiver les commentaires, voir cette issue à ce propos pour [[https://github.com/Chocobozzz/PeerTube/issues/2664#issuecomment-616992502|2 pistes de résolution]]
 +
 +==== Mettre un captcha à l'inscription pour éviter les bots ====
 +Via le système de plug-in de peertube, on a installé https://framagit.org/kimsible/peertube-plugin-mtcaptcha2 qui implique de se créer un compte gratuit sur le site mtcaptcha.com
 ===== Pratique ===== ===== Pratique =====
-==== Import de toutes les vidéos d'un canal youtube ou vimeo ====+ 
 +==== Import de toutes les vidéos d'une chaine Youtube ou Vimeo ==== 
 + 
 +Pour importer les vidéos d'un compte Vimeo, on peut executer une commande qui fera tout ce qu'il faut. Remplacer les noms en majuscules par vos propres informations. **TARGET_URL** est l'url du compte chez Vimeo, par exemple https://vimeo.com/labomedia. [[https://docs.joinpeertube.org/maintain-tools?id=peertube-import-videosjs|Voir la documentation complète]]. 
 + 
 +**Important** : il faut se mettre dans le répertoire contenant le clone de Peertube utilisé pour initialiser les outils CLI vu plus haut.
  
 En ligne de commande depuis le serveur en tant que user non root : En ligne de commande depuis le serveur en tant que user non root :
-  ~/PeerTube$ node dist/server/tools/peertube-import-videos.js -u 'tube.futuretic.fr' -U 'PEERTUBE_USER' --password 'PEERTUBE_PASSWORD' --target-url 'TARGET_URL'+ 
 +  node dist/server/tools/peertube-import-videos.js -u 'videos.monsite.org' -U 'PEERTUBE_USER' --password 'PEERTUBE_PASSWORD' --target-url 'TARGET_URL' -k
      
-voir option -k pour garder la version originale sur le serveur Peertube+Les vidéos seront alors importées et disponible dans le compte de l'utilisateur choisi. (-k pour garder l'original) 
 + 
 +Les options : 
 +<code> 
 +  .option('-U, --username <username>', 'Username'
 +  .option('-p, --password <token>', 'Password'
 +  .option('--target-url <targetUrl>', 'Video target URL'
 +  .option('--since <since>', 'Publication date (inclusive) since which the videos can be imported (YYYY-MM-DD)', parseDate) 
 +  .option('--until <until>', 'Publication date (inclusive) until which the videos can be imported (YYYY-MM-DD)', parseDate) 
 +  .option('--first <first>', 'Process first n elements of returned playlist'
 +  .option('--last <last>', 'Process last n elements of returned playlist'
 +  .option('--wait-interval <waitInterval>', 'Duration between two video imports (in seconds)', convertIntoMs) 
 +  .option('-T, --tmpdir <tmpdir>', 'Working directory', __dirname) 
 +  .usage("[global options] [ -- youtube-dl options]"
 +  .parse(process.argv) 
 + 
 +</code> 
 +==== Editorialiser la page découvrir ==== 
 +Il faut apparemment [[https://framacolibri.org/t/administrer-sa-page-decouvrir/6816/11|6 vidéos]] pour que la chaine apparaisse sur la page découvrir, [[https://github.com/Chocobozzz/PeerTube/issues/2693#issuecomment-620595334|cf le dev]] 
 + 
 +==== Streaming live d'une session Jitsi dans Peertube ==== 
 +  * [[https://docs.joinpeertube.org/use-create-upload-video?id=with-jitsi-meet|La Documentation pr ici]] 
 + 
 +==== Embed Peertube dans dokuwiki ==== 
 +Voir [[https://www.dokuwiki.org/plugin:oembed|ce plug-in]] ou [[https://framacolibri.org/t/resolu-embarquer-une-video-peertube-dans-dokuwiki/4364/2|cette feinte]] qui semble ne plus marcher 
  
-{{tag>bj n1c0 futuretic peertube serveur}}+{{tag>futuretic bj n1c0 peertube serveur}}
peertube_installation_et_configuration.1619387625.txt.gz · Dernière modification : 2021/04/25 21:53 de n1c0