peertube_installation_et_configuration
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
peertube_-_installation_et_configuration [2021/04/21 21:49] – ↷ Nom de la page changé de peertube_installation_et_configuration à peertube_-_installation_et_configuration Labomedia | peertube_installation_et_configuration [2024/01/24 23:02] (Version actuelle) – n1c0 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Peertube | + | ====== Peertube |
- | **Peertube est un logiciel libre pour reprendre le contrôle de vos vidéos en ligne.** | + | <WRAP center round important 60%> |
+ | Attention, ce tuto est plutôt obsolète. Mieux vaut voir [[https:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Peertube est un logiciel libre semblable à Youtube | ||
PeerTube, développé par Framasoft, est l' | PeerTube, développé par Framasoft, est l' | ||
Ligne 11: | Ligne 16: | ||
{{:: | {{:: | ||
- | ===== Installation sur Debian 10 apache===== | + | ===== Installation sur Debian 10 ===== |
+ | |||
+ | On utilisera le serveur Apache pour rendre visible Peertube sur les Internets à l' | ||
+ | |||
+ | **Important** : ce tutoriel n' | ||
On installe au préalable quelques outils : | On installe au préalable quelques outils : | ||
+ | |||
apt install htop nano nload iotop wget locate tmux net-tools | apt install htop nano nload iotop wget locate tmux net-tools | ||
- | [[https:// | + | On commence ensuite en suivant |
+ | |||
+ | Il y aura un choix à faire sur le format des vidéos et de la diffusion : [[https:// | ||
- | Il y a un choix à faire sur le format des vidéos et de la diffusion : [[https:// | + | ==== Pré-requis ==== |
- | ==== Installation ligne droite ==== | + | On a besoin de plusieurs programmes, dont [[https://yarnpkg.com/|yarn]] (manager de paquets) et [[https:// |
- | //Copié collé brut à compléter ...// | + | |
< | < | ||
apt install curl | apt install curl | ||
- | curl -sL https:// | + | curl -sL https:// |
curl -sS https:// | curl -sS https:// | ||
echo "deb https:// | echo "deb https:// | ||
Ligne 31: | Ligne 43: | ||
</ | </ | ||
+ | ==== Création d'un user spécifique ==== | ||
+ | |||
+ | On décide d' | ||
< | < | ||
- | 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.peertube | + | chown -R peertube: /var/www/videos.monsite.org |
- | chmod 2770 /var/www/tube.futuretic.fr | + | chmod 2775 /var/www/videos.monsite.org |
</ | </ | ||
+ | |||
+ | ==== Création de la Base de données ==== | ||
+ | |||
+ | Peertube utilise [[https:// | ||
< | < | ||
Ligne 47: | Ligne 66: | ||
exit | exit | ||
</ | </ | ||
+ | |||
+ | ==== Création des répertoires de base ==== | ||
+ | |||
+ | Peertube utilisera ces répertoires pour fonctionner. Toujours dans le dossier **/ | ||
< | < | ||
Ligne 53: | Ligne 76: | ||
cd versions | cd versions | ||
</ | </ | ||
+ | |||
+ | ==== Téléchargement de la dernière version ==== | ||
+ | |||
+ | On récupère la dernière version, on la décompresse, | ||
< | < | ||
Ligne 61: | Ligne 88: | ||
cd ../ | cd ../ | ||
ln -s versions/ | ln -s versions/ | ||
- | cd ./ | ||
</ | </ | ||
+ | |||
+ | ==== Installation ==== | ||
+ | |||
+ | 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. | ||
< | < | ||
+ | cd ./ | ||
yarn install --production --pure-lockfile | yarn install --production --pure-lockfile | ||
- | cp ./ | ||
cp ./ | cp ./ | ||
+ | cp ./ | ||
+ | cp ./ | ||
</ | </ | ||
- | | + | ==== Configuration ==== |
+ | |||
+ | On modifie le fichier de config : | ||
+ | |||
+ | | ||
+ | |||
+ | Le fichier est long, mais une partie de la config pourra se faire directement dans l' | ||
+ | |||
+ | **Important** : Supprimer le suffixe ' | ||
< | < | ||
Ligne 76: | Ligne 116: | ||
webserver: | webserver: | ||
https: true | https: true | ||
- | hostname: 'tube.futuretic.fr' | + | hostname: 'videos.monsite.org' |
port: 443 | port: 443 | ||
... | ... | ||
Ligne 87: | Ligne 127: | ||
... | ... | ||
storage: | storage: | ||
- | tmp: '/ | + | tmp: '/ |
- | avatars: '/ | + | avatars: '/ |
- | videos: '/ | + | videos: '/ |
- | streaming_playlists: | + | streaming_playlists: |
- | redundancy: '/ | + | redundancy: '/ |
- | logs: '/ | + | logs: '/ |
- | previews: '/ | + | previews: '/ |
- | thumbnails: '/ | + | thumbnails: '/ |
- | torrents: '/ | + | torrents: '/ |
- | captions: '/ | + | captions: '/ |
- | cache: '/ | + | cache: '/ |
- | plugins: '/ | + | plugins: '/ |
... | ... | ||
instance: | instance: | ||
- | name: 'PeerTube FuturEtic' | + | name: 'Mon instance !' |
short_description: | short_description: | ||
- | description: | + | description: |
</ | </ | ||
- | virer le préfixe _prod dans fichier config ! | ||
- | Ajouter cette ligne (enabled: true) dans la partie | + | Pour la configuration email, lorsqu' |
email: | email: | ||
enabled: true | enabled: true | ||
+ | et pour la configuration smtp par exemple : | ||
+ | |||
+ | < | ||
+ | # 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: | ||
+ | ca_file: null # Used for self signed certificates | ||
+ | from_address: | ||
+ | |||
+ | </ | ||
+ | ==== Optimisation et démarrage ==== | ||
+ | |||
+ | On copie la config spécifique TCP de Peertube au bon endroit (elle permet de gérer l' | ||
+ | |||
+ | cp / | ||
+ | |||
+ | 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 / | ||
+ | | ||
+ | Modifier ce nouveau fichier en mettant le bon PATH de la config de votre instance Peertube, et celui de l' | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | Environment=NODE_CONFIG_DIR=/ | ||
+ | ... | ||
+ | WorkingDirectory=/ | ||
+ | </ | ||
+ | |||
+ | Enfin, on reload les daemons, on active celui de peertube, on le démarre et on consulte son status : | ||
< | < | ||
- | cp / | ||
- | cp / | ||
systemctl daemon-reload | systemctl daemon-reload | ||
systemctl enable peertube | systemctl enable peertube | ||
Ligne 119: | Ligne 196: | ||
systemctl status peertube | systemctl status peertube | ||
</ | </ | ||
+ | |||
+ | ==== Compte admin de Peertube ==== | ||
+ | |||
+ | Par défaut, Peertube crée le compte administrateur principal, nommé **root**, sans mot de passe. Malheureusement on ne peut pas le renommer. On doit donc créé un mot de passe, en tant que l' | ||
< | < | ||
su - peertube | su - peertube | ||
cd peertube-latest | cd peertube-latest | ||
- | # à faire en tant que root il me semble | + | NODE_CONFIG_DIR=/ |
- | NODE_CONFIG_DIR=/ | + | |
</ | </ | ||
- | Installer | + | ==== Apache2 et Certificat SSL ==== |
+ | |||
+ | On va utiliser Apache comme Proxy vers le port de Peertube par défaut (9000), il faut l' | ||
< | < | ||
Ligne 134: | Ligne 216: | ||
</ | </ | ||
- | Générer un certificat ssl après avoir installé | + | On installe aussi [[https:// |
< | < | ||
Ligne 145: | Ligne 227: | ||
</ | </ | ||
- | Pour générer ce premier certificat, on va utiliser le vhost par défaut d' | + | Pour générer ce premier certificat, on va utiliser le //vhost// par défaut d' |
< | < | ||
- | cd / | + | cd / |
- | cd ../ | + | nano 000-default.conf |
- | nano 000-default.conf | + | </ |
+ | |||
+ | Changer le **ServerName** puis quitter nano et reload apache : | ||
+ | |||
+ | systemctl reload apache2 | ||
+ | |||
+ | Lancer la création du certificat via la commande suivante qui demandera quel vhost est concerné (choisir 000-default.conf donc) : | ||
+ | |||
+ | certbot certonly --apache | ||
+ | |||
+ | Enfin, on défini le vhost en créant le fichier **/ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | < | ||
+ | ServerName videos.monsite.org | ||
+ | |||
+ | LogLevel error | ||
+ | ErrorLog " | ||
+ | CustomLog " | ||
+ | |||
+ | |||
+ | SSLEngine on | ||
+ | SSLCertificateFile / | ||
+ | SSLCertificateKeyFile / | ||
+ | |||
+ | # HSTS (mod_headers is required) (63072000 seconds = 2 years) (only activate it knowingly) | ||
+ | ## initialement commenté | ||
+ | Header always set Strict-Transport-Security " | ||
+ | |||
+ | Header always set X-Content-Type-Options nosniff | ||
+ | Header always set X-Robots-Tag none | ||
+ | Header always set X-XSS-Protection "1; mode=block" | ||
+ | |||
+ | # Activate http/2 | ||
+ | Protocols h2 h2c http/1.1 | ||
+ | |||
+ | H2Push | ||
+ | H2PushPriority | ||
+ | H2PushPriority | ||
+ | H2PushPriority | ||
+ | H2PushPriority | ||
+ | H2PushPriority | ||
+ | |||
+ | # Hard limit, PeerTube does not support videos > 4GB | ||
+ | LimitRequestBody 4294967294 | ||
+ | |||
+ | # Set caching on assets for 1 year | ||
+ | < | ||
+ | Header append Cache-Control " | ||
+ | </ | ||
+ | AliasMatch ^/ | ||
+ | |||
+ | # Set caching on image files for 1 year | ||
+ | < | ||
+ | Header append Cache-Control " | ||
+ | </ | ||
+ | AliasMatch ^/ | ||
+ | |||
+ | # Bypass PeerTube webseed route for better performances | ||
+ | Alias / | ||
+ | < | ||
+ | # Clients usually have 4 simultaneous webseed connections, | ||
+ | SetOutputFilter RATE_LIMIT | ||
+ | SetEnv rate-limit 800 | ||
+ | |||
+ | SetEnvIf Request_Method " | ||
+ | |||
+ | Header set Access-Control-Allow-Origin " | ||
+ | Header set Access-Control-Allow-Headers " | ||
+ | Header set Access-Control-Allow-Methods "GET, OPTIONS" | ||
+ | Header set toto " | ||
+ | SetEnvIf GETMETH " | ||
+ | |||
+ | SetEnvIf Request_Method " | ||
+ | |||
+ | Header set Access-Control-Allow-Origin " | ||
+ | Header set Access-Control-Allow-Headers " | ||
+ | Header set Access-Control-Allow-Methods "GET, OPTIONS" | ||
+ | Header set Access-Control-Max-Age " | ||
+ | Header set Content-Type " | ||
+ | Header set Content-Length " | ||
+ | </ | ||
+ | < | ||
+ | Header unset X-Frame-Options | ||
+ | </ | ||
+ | |||
+ | ProxyPreserveHost On | ||
+ | ProxyRequests On | ||
+ | ProxyTimeout 600 | ||
+ | |||
+ | # Websocket tracker | ||
+ | RewriteEngine On | ||
+ | RewriteCond %{HTTP: | ||
+ | RewriteRule /(.*) ws:// | ||
+ | |||
+ | < | ||
+ | ProxyPass http:// | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | # Config SSL | ||
+ | |||
+ | # Security configuration | ||
+ | SSLCipherSuite | ||
+ | SSLProtocol | ||
+ | SSLHonorCipherOrder | ||
+ | # Requires Apache >= 2.4 | ||
+ | SSLCompression | ||
+ | # To use stapling, we have to enable it globally | ||
+ | SSLStaplingCache | ||
+ | # OCSP Stapling requires Apache >= 2.3.3 | ||
+ | SSLUseStapling | ||
+ | SSLStaplingResponderTimeout | ||
+ | SSLStaplingReturnResponderErrors | ||
+ | SSLSessionTickets | ||
+ | </ | ||
+ | |||
+ | Activer le vhost et reload apache : | ||
+ | |||
+ | < | ||
+ | a2ensite videos.monsite.org.conf | ||
systemctl reload apache2 | systemctl reload apache2 | ||
- | certbot certonly --apache | ||
</ | </ | ||
+ | ==== Configurations complémentaires ==== | ||
- | On va ensuite pouvoir mettre | + | === Installer les outils |
+ | |||
+ | Il faut suivre [[https:// | ||
+ | |||
+ | Pour installer les outils CLI, il faut cloner | ||
< | < | ||
- | vhost apache | + | cd / |
+ | git clone https:// | ||
+ | cd PeerTube | ||
</ | </ | ||
+ | Installation des dépendances et compilation des CLI tools : | ||
+ | |||
+ | < | ||
+ | NOCLIENT=1 yarn install --pure-lockfile | ||
+ | npm run setup:cli | ||
+ | </ | ||
+ | |||
+ | Puis dans le fichier **/ | ||
+ | |||
+ | alias peertube=" | ||
+ | |||
+ | On prend en compte les modifications : | ||
+ | |||
+ | 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 : / | ||
+ | * Config réseau : / | ||
+ | * Config du daemon/ | ||
+ | * Vhost apache : / | ||
+ | * Les outils CLI : / | ||
+ | |||
+ | En réalité, on ne sauve que les éléments qui changent, c'est à dire le dossier d' | ||
+ | |||
+ | Pour la base de données, en tant que root, on execute la commande suivante. Elle crée un dossier **/ | ||
+ | |||
+ | <code bash> | ||
+ | SQL_BACKUP_PATH=" | ||
+ | </ | ||
+ | |||
+ | ==== Mise à jour ==== | ||
+ | Suivre les préconisations de [[https:// | ||
+ | |||
+ | ==== Désactiver les commentaires ==== | ||
+ | A ce jour, il n'y a pas de mécanique pour désactiver les commentaires, | ||
+ | |||
+ | ==== Mettre un captcha à l' | ||
+ | Via le système de plug-in de peertube, on a installé https:// | ||
+ | ===== Pratique ===== | ||
+ | |||
+ | ==== 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:// | ||
+ | |||
+ | **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 : | ||
+ | |||
+ | node dist/ | ||
+ | | ||
+ | Les vidéos seront alors importées et disponible dans le compte de l' | ||
+ | |||
+ | Les options : | ||
+ | < | ||
+ | .option(' | ||
+ | .option(' | ||
+ | .option(' | ||
+ | .option(' | ||
+ | .option(' | ||
+ | .option(' | ||
+ | .option(' | ||
+ | .option(' | ||
+ | .option(' | ||
+ | .usage(" | ||
+ | .parse(process.argv) | ||
+ | |||
+ | </ | ||
+ | ==== Editorialiser la page découvrir ==== | ||
+ | Il faut apparemment [[https:// | ||
+ | |||
+ | ==== Streaming live d'une session Jitsi dans Peertube ==== | ||
+ | * [[https:// | ||
+ | |||
+ | ==== Embed Peertube dans dokuwiki ==== | ||
+ | Voir [[https:// | ||
- | {{tag>bj futuretic peertube serveur}} | + | {{tag> |
peertube_installation_et_configuration.txt · Dernière modification : 2024/01/24 23:02 de n1c0