Installation de Peertube dans un conteneur LXD

Liens :
https://docs.joinpeertube.org/install/any-os
https://www.linode.com/docs/guides/how-to-install-peertube/
https://najigram.com/2023/12/install-peertube-on-ubuntu-22-04-lts/

I/ Installation de LXD.

1/ Connexion sur le serveur dédié.

  • Copie de la clé ssh :
util01@station40:~$ ssh-copy-id ubuntu@serveur666.monserveurdedie.eu
  • Connexion en ssh :
util01@station40:~$ ssh ubuntu@mon_serveur_dedie.fr

2/ Installation de LXD.

  • Installation de Snap :
ubuntu@serveur666:~$ sudo snap install core
  • Test :
ubuntu@serveur666:~$ sudo snap install hello-world
ubuntu@serveur666:~$ hello-world
Hello World!
ubuntu@serveur666:~$
  • Installation de LXD :

    ubuntu@serveur666:~$ sudo snap install lxd --channel=4.0/stable
  • Vérification :

ubuntu@serveur666:~$ lxd --version
4.0.10
ubuntu@serveur666:~$

3/ Création du conteneur 'peertube'.

ubuntu@serveur666:~$ sudo lxc launch ubuntu:24.04 peertube

4/ Lister les différents conteneurs LXC.

ubuntu@serveur666:~$ lxc list
+----------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
|   NAME   |  STATE  |         IPV4          |                     IPV6                      |   TYPE    | SNAPSHOTS |
+----------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| peertube | RUNNING | 10.123.236.180 (eth0) | fd42:e702:d7b9:a433:216:3eff:fed5:37c9 (eth0) | CONTAINER | 1         |
+----------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
ubuntu@serveur666:~$ 

5/ Connexion sur le conteneur 'peertube'.

ubuntu@serveur666:~$ lxc exec peertube -- sudo --user ubuntu --login

6/ Commande de base.

  • Arreter un conteneur LXD :
ubuntu@serveur666:~$ lxc stop peertube
  • Supprimer un conteneur LXD :
ubuntu@serveur666:~$ lxc delete peertube

II/ Installation de Peertube version 7.3.0

1/ Mise-à-jour du système d'exploitation.

ubuntu@peertube:~$ sudo apt-get update
ubuntu@peertube:~$ sudo apt-get upgrade

2/ Installation de paquet de base.

ubuntu@peertube:~$ sudo apt install -y url sudo unzip vim curl gnupg redis ffmpeg  nginx certbot
ubuntu@peertube:~$ sudo apt install -y python3-dev python3-pip python-is-python3
ubuntu@peertube:~$ sudo apt install -y ffmpeg postgresql postgresql-contrib openssl g++ make redis-server git cron wget

3/ Installation de Nodejs.

ubuntu@peertube:~$ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
ubuntu@peertube:~$ sudo apt-get install -y nodejs

4/ Redémarrer les service redis et postgresql

ubuntu@peertube:~$ sudo systemctl start redis postgresql

5/ Créer l'utilisateur 'peertube'.

ubuntu@peertube:~$ sudo useradd -m -d /var/www/peertube -s /usr/sbin/nologin -p peertube peertube

6/ Changer le mot de passe de l'utilisateur 'peertube'.

ubuntu@peertube:~$ sudo passwd peertube

7/ Créer un utilisateur pour Postgres.

ubuntu@peertube:~$ sudo -u postgres createuser -P peertube
Enter password for new role: 
Enter it again: 

8/ Créer la base de données 'peertube_prod'.

ubuntu@peertube:~$ sudo -u postgres createdb -O peertube -E UTF8 -T template0 peertube_prod
ubuntu@peertube:~$ sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_prod
CREATE EXTENSION
ubuntu@peertube:~$ sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_prod
CREATE EXTENSION

9/ Se connecter sous l'utilisateur 'peertube'.

ubuntu@peertube:~$ sudo -u peertube -s
peertube@peertube:/home/ubuntu$ cd /var/www/peertube
peertube@peertube:~$ 

10/ Récupérer le numéro de la dernier version de Peertube.

peertube@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"
Latest Peertube version is v7.3.0

11/ Créer les répertoires de travail.

peertube@peertube:~$ mkdir config storage versions
peertube@peertube:~$ chmod 750 config/

12/ Récupérer l'archive de Peertube.

peertube@peertube:~$ cd /var/www/peertube/versions
peertube@peertube:~/versions$ 
peertube@peertube:~/versions$ wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip"

13/ Décompresser l'archive.

peertube@peertube:~/versions$ unzip peertube-${VERSION}.zip && rm peertube-${VERSION}.zip
peertube@peertube:~/versions$ cd /var/www/peertube
peertube@peertube:~$ ln -s versions/peertube-${VERSION} ./peertube-latest

14/ Installer les dépendences de Nodejs.

  • Installation de 'npm' :
peertube@peertube:~$ curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
peertube@peertube:~$ source ~/.bashrc
peertube@peertube:~$ nvm install node
peertube@peertube:~$ npm install -g npm@11.6.2
  • Installation de 'yarn' :
peertube@peertube:~$ npm uninstall -g yarn
peertube@peertube:~$ npm install -g yarn@1.22.22

15/ Installation du code source de Peertube.

  • Récupération de la dernière version de Peertube :
peertube@peertube:~$ cd peertube-latest
peertube@peertube:~/peertube-latest$ 
  • Installation des dépendances :
peertube@peertube:~/peertube-latest$ npm run install-node-dependencies -- --production

> peertube@7.3.0 install-node-dependencies
> yarn install --pure-lockfile --production

yarn install v1.22.22
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
warning bare-fs@4.1.6: The engine "bare" appears to be invalid.
warning bare-os@3.6.1: The engine "bare" appears to be invalid.
warning require-addon@1.1.0: The engine "bare" appears to be invalid.
[4/5] Linking dependencies...
warning " > chai-json-schema@1.5.1" has incorrect peer dependency "chai@>= 1.6.1 < 5".
warning "swagger-cli > @apidevtools/swagger-cli > @apidevtools/swagger-parser@10.1.1" has unmet peer dependency "openapi-types@>=7".
[5/5] Building fresh packages...
$ test -n "$NOCLIENT" || (cd client && yarn install --pure-lockfile)
yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
warning @zip.js/zip.js@2.7.73: The engine "deno" appears to be invalid.
warning @zip.js/zip.js@2.7.73: The engine "bun" appears to be invalid.
warning bare-fs@4.2.3: The engine "bare" appears to be invalid.
warning bare-os@3.6.2: The engine "bare" appears to be invalid.
warning chart.js@4.5.0: The engine "pnpm" appears to be invalid.
[3/4] Linking dependencies...
warning " > angular-eslint@19.8.1" has unmet peer dependency "typescript-eslint@^8.0.0".
warning "@wdio/local-runner > @wdio/runner@9.19.2" has unmet peer dependency "webdriverio@^9.0.0".
warning " > expect-webdriverio@5.4.2" has unmet peer dependency "@wdio/globals@^9.0.0".
warning " > expect-webdriverio@5.4.2" has unmet peer dependency "@wdio/logger@^9.0.0".
warning " > expect-webdriverio@5.4.2" has unmet peer dependency "webdriverio@^9.0.0".
warning " > stylelint-config-sass-guidelines@11.1.0" has unmet peer dependency "postcss@^8.4.21".
warning "stylelint-config-sass-guidelines > postcss-scss@4.0.9" has unmet peer dependency "postcss@^8.4.29".
[4/4] Building fresh packages...

Done in 34.61s.
Done in 43.73s.
peertube@peertube:~/peertube-latest$ 
peertube@peertube:~/peertube-latest$ cd ..
peertube@peertube:~$ 

16/ Création des fichiers de configuration.

peertube@peertube:~$ cp peertube-latest/config/default.yaml config/default.yaml
peertube@peertube:~$ cp peertube-latest/config/production.yaml.example config/production.yaml

17/ Configuration du fichier de configuration

Action :

Générer un secret

peertube@peertube:~$ openssl rand -hex 32

Ouvrir :

peertube-latest/config/production.yaml

Chercher :

listen:
  hostname: "127.0.0.1"
  port: 9000

Remplacer par :

listen:
  hostname: "0.0.0.0"
  port: 9000

Ouvrir :

config/production.yaml

Chercher :

webserver:
  https: true
  hostname: 'example.com'
  port: 443

Remplacer par :

webserver:
  https: true
  hostname: 'peertube.metalhorreur.fr'
  port: 443

Chercher :

secrets:
  # Generate one using `openssl rand -hex 32`
  peertube: '<copier/coller la chaine de caractère généré en haut>'

Remplacer par :

secrets:
  peertube: '<>'

Chercher :

database:
  hostname: '127.0.0.1'
  port: 5432
  ssl: false
  suffix: '_prod'
  username: 'peertube'
  password: 'peertube'
  pool:
    max: 5

Remplacer par :

database:
  hostname: '127.0.0.1'
  port: 5432
  ssl: false
  suffix: '_prod'
  username: 'peertube'
  password: '<mot de passe>'
  pool:
    max: 5

Chercher :

admin:
  # Used to generate the root user at first startup
  # And to receive emails from the contact form
  email: 'admin@example.com'

Remplacer par :

admin:
  email: 'lesanglierdesardennes@gmail.com'

Chercher :

instance:
  name: 'PeerTube'

Remplacer par :

instance:
  name: 'PeerTube Metal Horreur'

18/ Quitter l'utilisateur 'peertube'.

peertube@peertube:~$ [Contrôle] + [D]
exit
ubuntu@peertube:~$ 

III/ Configuration du service Systemd

1/ Copie du service.

ubuntu@peertube:~$ sudo cp /var/www/peertube/peertube-latest/support/systemd/peertube.service /etc/systemd/system/

2/ Rechargement de systemd.

ubuntu@peertube:~$ sudo systemctl daemon-reload

3/ Activé systemd.

ubuntu@peertube:~$ sudo systemctl enable peertube
Created symlink /etc/systemd/system/multi-user.target.wants/peertube.service → /etc/systemd/system/peertube.service.

4/ Redémarrer Peertube.

ubuntu@peertube:~$ sudo systemctl start peertube

5/ Afficher l'état de Peertube.

ubuntu@peertube:~$ sudo systemctl status peertube
● peertube.service - PeerTube daemon
     Loaded: loaded (/etc/systemd/system/peertube.service; enabled; preset: enabled)
     Active: active (running) since Fri 2025-11-07 20:02:38 UTC; 5s ago
   Main PID: 17145 (node)
      Tasks: 11 (limit: 77002)
     Memory: 126.3M (peak: 126.4M)
        CPU: 3.754s
     CGroup: /system.slice/peertube.service
             └─17145 /usr/bin/node dist/server

Nov 07 20:02:38 peertube systemd[1]: Started peertube.service - PeerTube daemon.
ubuntu@peertube:~$ 

6/ Afficher les log en continue.

ubuntu@peertube:~$ sudo journalctl -feu peertube
...
Nov 07 20:02:38 peertube systemd[1]: Started peertube.service - PeerTube daemon.
Nov 07 20:02:45 peertube peertube[17145]: webfinger.js v2.8.2 loaded
Nov 07 20:02:49 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:02:49.193 info: Using following configuration file hierarchy: /var/www/peertube/config/default.yaml -> /var/www/peertube/config/production.yaml.
Nov 07 20:02:49 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:02:49.196 warn: SMTP is not configured so the contact form will not work.
Nov 07 20:02:49 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:02:49.350 info: i18n initialized with locales: ar, ca-ES, cs-CZ, de-DE, el-GR, en-US, eo, es-ES, eu-ES, fa-IR, zh-Hans-CN, vi-VN, uk-UA, tr-TR, tok, zh-Hant-TW, th-TH, sv-SE, sq, sk-SK, pt-PT, ru-RU, pt-BR, pl-PL, oc, nn, nb-NO, nl-NL, kab, ja-JP, it-IT, is, hu-HU, hr, gl-ES, gd, fr-FR, fi-FI
Nov 07 20:02:49 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:02:49.671 info: Database peertube_prod is ready.
Nov 07 20:03:50 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:50.351 info: Creating application account.
Nov 07 20:03:50 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:50.365 info: Creating a default OAuth Client.
Nov 07 20:03:50 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:50.382 info: Creating the administrator.
Nov 07 20:03:50 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:50.610 info: Client id: AAAAAAAAAAAAAAAAAAAAAAAAA
Nov 07 20:03:50 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:50.610 info: Client secret: BBBBBBBBBBBBBBBBBBBBBBBBB
Nov 07 20:03:50 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:50.802 info: Generating a RSA key...
Nov 07 20:03:50 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:50.804 info: Generating a RSA key...
Nov 07 20:03:50 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:50.893 info: Generating a RSA key...
Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.085 info: Username: root
Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.085 info: User password: CCCCCCCCCCCCCCCCCCCC
Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.195 info: Connecting to Redis in "standalone" mode...
Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.195 info: Using standalone redis options {
Nov 07 20:03:51 peertube peertube[17145]:   "db": 0,
Nov 07 20:03:51 peertube peertube[17145]:   "host": "127.0.0.1",
Nov 07 20:03:51 peertube peertube[17145]:   "port": 6379,
Nov 07 20:03:51 peertube peertube[17145]:   "path": null
Nov 07 20:03:51 peertube peertube[17145]: }
Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.198 error: Cannot use SMTP server because of lack of configuration. PeerTube will not be able to send mails!
Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.255 info: Connected to redis.
Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.548 info: HTTP server listening on 127.0.0.1:9000
Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.548 info: Web server: https://peertube.metalhorreur.fr

7/ Vérifier si Peertube a le port 9000 ouvert.

ubuntu@peertube:~$ ss -ltnp | grep 9000
LISTEN 0      511          0.0.0.0:9000      0.0.0.0:*  
ubuntu@peertube:~$ netstat -ltnp | grep 9000
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN  

8/ Vérifier si on peut accéder à l'instance Peertube en local.

ubuntu@peertube:~$ curl -I http://127.0.0.1:9000
HTTP/1.1 200 OK
x-powered-by: PeerTube
X-Frame-Options: DENY
Tk: N
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 499
Date: Fri, 07 Nov 2025 20:48:16 GMT
X-RateLimit-Reset: 1762548507
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=0, no-cache, must-revalidate
Vary: Accept-Language
Content-Length: 20848
ETag: W/"5170-SFKXrWfzZ84wiOIeQ3RLjUCOMb0"
Connection: keep-alive
Keep-Alive: timeout=5

III/ Configuration du conteneur Proxy

1/ Configuration réseau des conteneurs.

ubuntu@serveur666:~$ sudo lxc config device add proxy http80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80
Device http80 added to proxy
ubuntu@serveur666:~$ sudo lxc config device add proxy http443 proxy listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443
Device http443 added to proxy

2/ Afficher les conteneurs.

ubuntu@serveur666:~$ lxc list
+----------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
|   NAME   |  STATE  |         IPV4          |                     IPV6                      |   TYPE    | SNAPSHOTS |
+----------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| peertube | RUNNING | 10.123.236.180 (eth0) | fd42:e702:d7b9:a433:216:3eff:fed5:37c9 (eth0) | CONTAINER | 1         |
+----------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| proxy    | RUNNING | 10.123.236.230 (eth0) | fd42:e702:d7b9:a433:216:3eff:fe64:5fce (eth0) | CONTAINER | 0         |
+----------+---------+-----------------------+-----------------------------------------------+-----------+-----------+

3/ Connexion sur le conteneur 'proxy'.

ubuntu@serveur666:~$ lxc exec proxy -- sudo --user ubuntu --login

4/ Configuration du site 'peertube'.

Créer :

/etc/nginx/sites-available/peertube

Ajouter :

server {
    listen 80;
    server_name peertube.metalhorreur.fr;

    # Taille d’upload suffisante
    client_max_body_size 5000M;

    # PeerTube envoie souvent ce header
    add_header X-Content-Type-Options nosniff;

    # Proxy vers le conteneur PeerTube
    location / {
        proxy_pass http://10.123.236.180:9000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket (indispensable pour certaines fonctions PeerTube)
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }

    # Fichiers statiques parfois servis à part
    location /static/ {
        proxy_pass http://10.123.236.180:9000;
    }
}

5/ Activer le site.

ubuntu@proxy:~$ sudo ln -s /etc/nginx/sites-available/peertube /etc/nginx/sites-enabled/peertube

6/ Vérification.

ubuntu@proxy:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

7/ Rélancer Nginx.

ubuntu@proxy:~$ sudo systemctl reload nginx

8/ Création des certificats.

  • Installation des paquets 'certbot' :
ubuntu@proxy:~$ sudo apt install certbot python3-certbot-nginx
  • Création des certificats :
ubuntu@proxy:~$ sudo certbot --nginx -d peertube.metalhorreur.fr
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): lesanglierdesardennes@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for peertube.metalhorreur.fr

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/peertube.metalhorreur.fr/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/peertube.metalhorreur.fr/privkey.pem
This certificate expires on 2026-02-05.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for peertube.metalhorreur.fr to /etc/nginx/sites-enabled/peertube
Congratulations! You have successfully enabled HTTPS on https://peertube.metalhorreur.fr

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ubuntu@proxy:~$ 

9/ Test la connexion.

ubuntu@proxy:~$ curl -I http://10.123.236.180:9000
HTTP/1.1 200 OK
x-powered-by: PeerTube
X-Frame-Options: DENY
Tk: N
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 498
Date: Fri, 07 Nov 2025 20:57:59 GMT
X-RateLimit-Reset: 1762549083
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=0, no-cache, must-revalidate
Vary: Accept-Language
Content-Length: 20848
ETag: W/"5170-Swf+LjIQUksetdAhLF9KJeXx0/k"
Connection: keep-alive
Keep-Alive: timeout=5

10/ Tester l'accès à l'application Peertube.

https://peertube.metalhorreur.fr/

11/ Se connecter sur l'instance.

https://peertube.metalhorreur.fr/login
Identifiant : root
Mot de passe : CCCCCCCCCCCCCCCCCCC

Le mot de passe se trouve dans le fichier de log démarrage : II/ 6/

Nov 07 20:03:51 peertube peertube[17145]: [peertube.metalhorreur.fr:443] 2025-11-07 20:03:51.085 info: User password: CCCCCCCCCCCCCCCCCCC

IV/ API.

1/ Récupération des identifiants de l'instance Peertube.

util01@station40:~$ curl -X GET https://peertube.metalhorreur.fr/api/v1/oauth-clients/local
{"client_id":"DDDDDDDDDDDDDDDDDDDD","client_secret":"EEEEEEEEEEEEEEEEEEEEEEE"}

2/ Récupération d'un token.

util01@station40:~$ curl -X POST https://peertube.metalhorreur.fr/api/v1/users/token \
  -d "client_id=DDDDDDDDDDDDDDDDDDDD" \
  -d "client_secret=EEEEEEEEEEEEEEEEEEEEEEE" \
  -d "grant_type=password" \
  -d "username=root" \
  -d "password=CCCCCCCCCCCCCCCCCCC"
{"token_type":"Bearer","access_token":"EEEEEEEEEEEEEEEEEEE","refresh_token":"FFFFFFFFFFFFFFFFFFFFF","expires_in":86399,"refresh_token_expires_in":1209599}

3/ Liste des utilisateurs.

util01@station40:~$ curl -X GET "https://peertube.metalhorreur.fr/api/v1/users" \
     -H "Authorization: Bearer EEEEEEEEEEEEEEEEEEEEEEEEEE"

4/ Liste des chaînes Peertube.

util01@station40:~/METALHORREURSERV$ curl -X GET "https://peertube.metalhorreur.fr/api/v1/video-channels" -H "Authorization: Bearer EEEEEEEEEEEEEEEEEEEEEEEEEE"

V/ Gestion de la base de données Postgresql.

  • Connexion à l'invite :
ubuntu@peertube:~$ sudo -u postgres psql peertube_prod
  • Exécuter un SELECT :
peertube_prod=# SELECT id, "preferredUsername", type, url FROM "actor";
 id | preferredUsername |    type     |                              url                              
----+-------------------+-------------+---------------------------------------------------------------
  2 | root              | Person      | https://peertube.metalhorreur.fr/accounts/root
  3 | root_channel      | Group       | https://peertube.metalhorreur.fr/video-channels/root_channel
  1 | peertube          | Application | https://peertube.metalhorreur.fr/accounts/peertube
  4 | metalhorreur      | Group       | https://peertube.metalhorreur.fr/video-channels/metalhorreur
  6 | metal_horreur     | Group       | https://peertube.metalhorreur.fr/video-channels/metal_horreur
  5 | nekrofage         | Person      | https://peertube.metalhorreur.fr/accounts/nekrofage
(6 rows)

peertube_prod=#
  • Supprimer des enregistements :
peertube_prod=# DELETE FROM "actor" WHERE id=4;
DELETE 1
peertube_prod=# DELETE FROM "actor" WHERE id=5;
DELETE 1
peertube_prod=# DELETE FROM "actor" WHERE id=6;
DELETE 1
peertube_prod=# SELECT id, "preferredUsername", type, url FROM "actor";
 id | preferredUsername |    type     |                             url                              
----+-------------------+-------------+--------------------------------------------------------------
  2 | root              | Person      | https://peertube.metalhorreur.fr/accounts/root
  3 | root_channel      | Group       | https://peertube.metalhorreur.fr/video-channels/root_channel
  1 | peertube          | Application | https://peertube.metalhorreur.fr/accounts/peertube
(3 rows)
  • Quitter l'invite :
peertube_prod=# \q
ubuntu@peertube:~$
  • Redémarrer 'Peertube' :
ubuntu@peertube:~$ sudo systemctl restart peertube