Erreur à l'installation de Peertube

Bonjour,

récemment j’ai changé de configuration et, avec mon ancien ordinateur j’ai installé un serveur local ou je peux enfin faire les tests que je n’avais jamais osé faire.

Hier , j’ai installé un serveur Ubuntu 20.04 tout neuf et je teste l’installation de Peertube en suivant le Guide de Production
Aucun souci jusqu’à l’installation de Peertube et cette commande :

`cd ./peertube-latest && sudo -H -u peertube yarn install --production --pure-lockfile`

J’ai un message d’erreur

cannot create user data directory: /var/www/peertube/snap/node/4150: Permission denied

J’ai vérifié, les dossiers sont bien créés, ils appartiennent à l’utilisateur peertube.

Alors j’ai tout essayé, installer avec l’utilisateur root, mettre chmod 777, chown -R peertube:peertube sur le dossier peertube, rien y fait j’ai toujours cette erreur.

Une exception , avec l’utilisateur root l’installation se lance mais elle s’arrête au moment de l’installation de youtube-dl avec l’erreur :

error /var/www/peertube/versions/peertube-v3.1.0/node_modules/youtube-dl: Command failed.
Exit code: 243

Quelle est mon erreur ? Comment résoudre le problème ?
Merci beaucoup pour les réponses. :slight_smile:

.

Je suis désolé pour ton problème je ne pourrais pas t’aider d’autre le feront sûrement. Par contre dans mon cas j’ai installer PeerTube avec YunoHost sur trois serveur et ça marche très bien, Jette un oeil là Yunohost

1 « J'aime »

Merci pour ta réponse. :slight_smile:
J’essaierai un jour YunoHost. C’est une bonne idée.
J’ai un autre serveur dédié où j’ai installé un monde virtuel et quelques sites Web. Je teste en local quelques fonctionnalités et outils que je n’avais jamais pu tester sur ce serveur de production de peur de casser son système et devoir tout réinstaller.
Donc là, j’y vais à fond, j’en profite, je peux faire toutes les bêtises que je veux, et j’apprends plein de nouvelles choses en même temps.

1 « J'aime »

Je ne comprend pas ce que ce dossier vient faire là ?
Peux-tu nous montrer le contenu du dossier /var/www/peertube ?

Merci JohnLivingston
En fait c’est le home de l’utilisateur Peertube , il contient ça :

drwxr-xr-x 6 peertube peertube 4096 Apr 29 10:56 .
drwxr-xr-x 4 root     root     4096 May  2 08:50 ..
-rw------- 1 peertube peertube  429 Apr 29 10:25 .bash_history
-rw-r--r-- 1 peertube peertube  220 Feb 25  2020 .bash_logout
-rw-r--r-- 1 peertube peertube 3771 Feb 25  2020 .bashrc
-rw-r--r-- 1 peertube peertube  807 Feb 25  2020 .profile
-rw-rw-r-- 1 peertube peertube  227 Apr 29 10:55 .wget-hsts
drwxr-x--- 2 peertube peertube 4096 Apr 29 10:54 config
lrwxrwxrwx 1 peertube peertube   24 Apr 29 10:55 peertube-latest -> versions/peertube-v3.1.0
drwxr-xr-x 3 peertube peertube 4096 Apr 29 10:56 snap
drwxrwxr-x 2 peertube peertube 4096 Apr 29 10:54 storage
drwxrwxr-x 3 peertube peertube 4096 Apr 29 10:55 versions

Le dossier peertube-latest contient :

drwxrwxr-x   8 peertube peertube   4096 Apr 30 10:38 .
drwxrwxr-x   3 peertube peertube   4096 Apr 29 10:55 ..
-rw-r--r--   1 peertube peertube   8238 Mar  4 08:56 CREDITS.md
-rw-r--r--   1 peertube peertube  12550 Mar  4 08:56 FAQ.md
-rw-r--r--   1 peertube peertube  34520 Apr 10  2019 LICENSE
-rw-r--r--   1 peertube peertube  10023 Mar  4 08:56 README.md
drwxrwxr-x   3 peertube peertube   4096 Apr 29 10:55 client
drwxr-xr-x   2 peertube peertube   4096 Mar 24 15:51 config
drwxr-xr-x   5 peertube peertube   4096 Mar 24 16:48 dist
drwxr-xr-x 681 root     root      20480 Apr 30 10:39 node_modules
-rw-r--r--   1 peertube peertube   7536 Mar 24 16:47 package.json
lrwxrwxrwx   1 peertube peertube     18 Apr 30 10:37 peertube- -> versions/peertube-
drwxr-xr-x  11 peertube peertube   4096 Mar 24 15:51 scripts
drwxr-xr-x  10 peertube peertube   4096 Aug 12  2020 support
-rw-r--r--   1 peertube peertube    813 Aug 12  2020 tsconfig.json
-rw-r--r--   1 peertube peertube 388005 Mar 24 15:51 yarn.lock

Est-ce que je ne lance pas la commande dans le bon dossier ? J’ai cru suivre les indications à la lettre. Comment construire mon dossier d’installation ?

Le dossier «snap» n’a rien à faire ici. Aucune idée de ce que ça peut être.

De plus, dans le dossier peertube-latest, je vois que node_modules appartient à root. Il devrait être au user peertube. Ça veut dire que la commande yarn install a été lancée sans le sudo -H -u peertube.

Je pense que certaines commandes ne sont pas correctement passées. Peut-être as-tu copié collé les $ en début de ligne dans la doc ? (il ne faut pas).

Ce que je ferais : m’assurer du contenu du dossier snap, et essayer de comprendre d’où ça sort (un dossier déplacé par erreur ?).
S’il n’y a rien d’important dedans, vider complètement /var/www/peertube, et recommencer de là : https://docs.joinpeertube.org/install-any-os?id=prepare-peertube-directory
(à priori, le user «peertube» a bien été créé, donc ce qui précède doit être ok)

1 « J'aime »

Oui, j’ai aussi vu, je l’ai changé après avoir publié mon message. Mais ça n’a rien changé, j’ai toujours cette erreur.

$ en début de ligne dans la doc

C’est le genre de chose que je ne fais pas. :slight_smile:

Ce que je ferais : m’assurer du contenu du dossier snap, et essayer de comprendre d’où ça sort (un dossier déplacé par erreur ?).

Je vais tout refaire depuis le début. Mais c’est le home de l’utilisateur Peertube donc, moi ça ne m’étonne pas , j’ai le dossier snap dans tous mes home Ubuntu depuis la version 18.04 (je crois). Ça me perturbe pas mal et je préférerais qu’il soit dans les dossiers cachés de config.

Le format snap vise à permettre l’installation de nouvelles versions de logiciels dans les systèmes Linux, tout en apportant aux développeurs la facilité de distribution, la fiabilité et la sécurité.
Source

J’ai utilisé snap pour installer Certbot (source) et NodJS, ( source)

sudo snap install --classic certbot

sudo snap install node --classic --channel=14

Ah oui, ok pour la présence du dossier snap.

Mais dans ce cas, je ne comprend pas le lien entre la commande yarn install et l’erreur :
cannot create user data directory: /var/www/peertube/snap/node/4150: Permission denied

Pourquoi yarn voudrait accéder à ce dossier ?

Es-tu sûr d’avoir lancé cette commande depuis le bon dossier ?

Ah, et une autre curiosité : dans le dossier peertube-latest, il y a un lien peertube- qui n’a rien à faire là.
Je pense que tu as lancé certaines commandes dans le mauvais dossier. Ça explique peut-être pourquoi yarn se perd.
Supprimer ce lien va peut être corriger le problème ?

@JohnLivingstron
J’ai supprimé le fichier peertube- -> versions/peertube- qui était vide et j’ai relancé l’installation, résultat toujours la même erreur.

J’ai peut-être un peu jongler entre des lancements en root et des lancements avec l’utilisateur peertube.
Au départ je ne savais pas trop dans quoi je me lançais.

En plus j’ai aussi installé Diaspora … pas plus de résultats, je n’ai pas l’habitude avec nginx , alors c’est mal configuré et je ne trouve pas ma page : :crazy_face: Mais, c’est une autre histoire …

Donc, je pense que je vais réinstaller mon serveur et refaire une installation propre de Peertube et seulement Peertube, avec les notes que j’ai prises.

Merci pour ton aide. Je donne des nouvelles.

Ok, bon courage.
La doc d’installation de Peertube est bien foutue, si tu suis précisément toutes les étapes ça devrait fonctionner sans problème. Pense bien à vérifier que chaque commande s’est correctement exécutée.

Voilà, j’ai tout réinstallé et j’ai lancé Peertube mais je n’ai pas la bonne version de node

error peertube@3.1.0: The engine « node » is incompatible with this module. Expected version « >=10.x <=15 ». Got « 16.0.0 »

J’aurai dû mieux lire :frowning:

Install NodeJS 12.x:

Bon , je m’y recolle.

Bon c’est réparé.

Si ça arrive à quelqu’un sur un serveuir Ubuntu 20.04.
J’ai installé nodeJs en suivant ces indications : https://github.com/nodesource/distributions/blob/master/README.md#debinstall

Pour désinstaller la mauvaise version :
sudo apt purge nodejs

Ensuite, supprimer le dépôt de nodeJs dans /etc/apt/sources.list.d, puis réinstaller la bonne version.

C’est lancé, mais j’ai une erreur 404 : le port 9000 est ouvert et redirigé.

-- Logs begin at Sun 2021-05-02 12:27:57 UTC. --
May 02 14:23:16 ****** systemd[1]: Started PeerTube daemon.
May 02 14:23:16 ****** peertube[32509]: > peertube@3.1.0 start /var/www/peertube/versions/peertube-v3.1.0
May 02 14:23:16 ****** peertube[32509]: > node dist/server
May 02 14:23:18 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:18.633 warn: Emailer is disabled so the contact form will not work.
May 02 14:23:19 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:19.091 info: Database peertube_prod is ready.
May 02 14:23:26 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:26.875 info: Creating a default OAuth Client.
May 02 14:23:26 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:26.883 info: Creating the administrator.
May 02 14:23:26 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:26.887 info: Creating application account.
May 02 14:23:26 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:26.897 info: Client id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
May 02 14:23:26 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:26.897 info: Client secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
May 02 14:23:26 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:26.925 info: Generating a RSA key...
May 02 14:23:27 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:27.008 info: Generating a RSA key...
May 02 14:23:27 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:27.008 info: Generating a RSA key...
May 02 14:23:27 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:27.158 info: Username: xxxxxxxxx
May 02 14:23:27 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:27.158 info: User password: xxxxxxxxxxxxxxxxx
May 02 14:23:27 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:27.160 error: Cannot use SMTP server because of lack of configuration. PeerTube will not be able to send mails!
May 02 14:23:27 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:27.177 info: Cleaning HTML cache.
May 02 14:23:27 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:27.281 info: HTTP server listening on localhost:9000
May 02 14:23:27 ****** peertube[32533]: [zapping.no-ip.info:443] 2021-05-02 14:23:27.281 info: Web server: https://zapping.no-ip.info

J’ouvre Peertube avec https://zapping.no-ip.info
Une idée ? :slight_smile:

Vérifier la config nginx, et recharger nginx (sudo systemctl reload nginx)

Je n’ai pas trouvé, j’utilise apache2 d’habitude. :frowning:

Tout est dans la doc : https://docs.joinpeertube.org/install-any-os?id=webserver

Oui je suis dessus depuis le début.

Le souci c’est que j’ai un pc et un serveur connectés sur la même adresse externe. Je fais bien attention de rediriger les ports vers le serveur.

Je viens de comprendre que je ne dois pas utiliser 127.0.0.1 mais 127.0.1.1
Je n’ai plus d’erreur au démarrage de nginx. Mais je n’ai toujours pas Peertube. J’ai simplement la page de bienvenue de nginx.

Le lien symbolique du fichier de configuration de nginx pour peertube est fait, il apparaît dans sites-enable.

Alors je me demande si dans le fichier de configuration ‹ production.yalm › de peertube je dois laisser localhost, mettre le nom du serveur comme il apparaît dans /etc/hostname ou s’il faut que j’écrive 127.0.1.1 comme dans /ect/hosts

Mais je ne suis pas encore sure d’arriver au bout de mes peines quand j’aurais la réponse.

Je ne suis pas sûr de comprendre le setup.

J’explique un peu plus comment ça marche coté peertube :

Le logiciel peertube écoute sur le port 9000. Mais il doit être mis derrière ce qu’on appelle un reverse proxy (en l’occurence nginx). Le monde du dehors va accéder au serveur par les ports HTTP et HTTPS standards : 80 et 443. Le port 9000 ne doit pas être ouvert à l’extérieur.
Il faut donc que ce soit les ports 80 et 443 qui soient ouverts et routés.
Changer pour un autre port n’est pas conseillé du tout (ça va poser plein de problèmes pour HTTPS)

Donc, le navigateur web va se connecter en https au port 443 de nginx, qui va «faire suivre» la requête à peertube en local sur le port 9000, puis renvoyer la réponse. Du point de vue du navigateur, la connexion se fait sur le port 443 du reverse proxy.

Dans la doc d’installation, le serveur nginx est sur la même machine que le serveur peertube. D’où les 127.0.0.1 dans la configuration. Il pourrait être sur une autre machine, mais ce n’est pas le sujet ici.

Je ne comprend pas vraiment ce que tu entends par «rediriger les ports».
En revanche, tu parle de remplacer 127.0.0.1 par 127.0.1.1… Ce qui me fait poser la question : as-tu un autre serveur web sur la même machine ? Genre apache ?

Si c’est le cas, tu va avoir des problèmes… Une seule application peut écouter à la fois sur un port donné (et sur une IP donnée). Si tu as effectivement un apache sur la même machine, il va falloir :

  • soit le désinstaller (s’il n’est pas utilisé)
  • soit faire écouter apache et nginx sur des IPs différentes (mais attention… si t’es sur un réseau domestique, tu n’aura qu’une seule ip publique…)
  • soit remplacer apache par nginx (ça dépend des utilisations que tu as)
  • soit mettre un reverse proxy devant apache et nginx. C’est la solution que j’utilise personnellement, avec le logiciel HAProxy. Mais ça demande quelques connaissances pour être mis en place, et surtout de bien comprendre ce qu’on fait.
1 « J'aime »

Cela dit, en cliquant sur ton lien je tombe bien sur une page de nginx.
Donc à priori, ce qui ne va pas, c’est que tu as mal configuré l’adresse du serveur.

C’est ce qui est censé être fait avec les appels à la commande «sed» ici : https://docs.joinpeertube.org/install-any-os?id=webserver

Attention, comme le dit la doc, il faut y insérer l’url de son serveur.
Dans ton cas, ça donnerais :

sudo sed -i 's/${WEBSERVER_HOST}/zapping.no-ip.info/g' /etc/nginx/sites-available/peertube
sudo sed -i 's/${PEERTUBE_HOST}/127.0.0.1:9000/g' /etc/nginx/sites-available/peertube

Si tu as déjà passé les commandes avec des mauvaises valeurs, c’est foutu. Faut reprendre le fichier de base (la commande «sed» fait un «rechercher/remplacer»).

Non, j’avais ça sur mon installation précédente et j’ai supprimé apache2. Mais j’ai tout réinstallé pour avoir un système propre.

Sinon j’ai fait ce que tu dis pour configurer nginx avec sed mais, avec 127.0.0.1 j’ai une erreur et impossible de me connecter. Dans le journal j’avais une erreur qui disait que 127.0.0.1:9000 n’était pas reconnu. J’ai remplacé l’ip par 127.0.1.1 et ça fonctionne. Je ne l’ai pas fait par hasard, en cherchant je suis tombée sur un article qui parlait des fichiers /etc/hosts et /etc/hostanme . Je n’ai plus le lien.

Je vais arrêter d’essayer pour aujourd’hui. Je verrai ça demain après-midi.
J’ai mis un lien de côté, pour essayer de comprendre : Chapter 5. Network setup

En tout cas merci pour ton aide tes conseils et ta patience. :slight_smile: