Peertube - Journal de bord maintenance
Horodatage | Résumé | Versions/Détails |
---|---|---|
30/10/2024 19h15 | MAJ Peertube | Peertube 6.3.3 |
09/10/2024 18h15 | MAJ Peertube | Peertube 6.3.2 |
29/09/2024 17h20 | MAJ Peertube | Peertube 6.3.1 |
21/09/2024 21h30 | MAJ Peertube | Peertube 6.3.0 |
02/08/2024 00h00 | MAJ Peertube | Peertube 6.2.1 |
27/07/2024 10h50 | MAJ Peertube | Peertube 6.2.0 |
30/04/2024 15h20 | MAJ Peertube | Peertube 6.1.0 |
04/04/2024 19h00 | MAJ Peertube sécurité | Peertube 6.0.4 |
23/03/2024 | Migration | Passage du serveur dédié SoYouStart (2018) -> Serveur Dell auto-hébergé |
31/01/2024 23h00 | Génération des storyboards | Génération de tous les storyboards (pour toutes les vidéos existantes) --> https://docs.joinpeertube.org/maintain/tools#generate-storyboard Code BASH : USER@peertube:/var/www/peertube/peertube-latest$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-generate-storyboard-job -- --all-videos > peertube@6.0.3 create-generate-storyboard-job > node ./dist/scripts/create-generate-storyboard-job.js --all-videos Created generate-storyboard job for Compaq Prolinea 4/100 - Réparation kinder surprise. Created generate-storyboard job for Nettoyer les têtes de son magnétoscope VHS. Created generate-storyboard job for Réparation micro-chaîne Grundig MF 2050. ... |
24/01/2024 18h00 | MAJ Peertube | Peertube 6.0.3 |
07/01/2024 00h45 | MAJ Debian |
|
13/12/2023 22h10 | MAJ Peertube | Peertube 6.0.2 |
03/12/2023 de 16h15 à 16h45 | MAJ Debian & Peertube |
|
16/11/2023 17h30 | MAJ PostgreSQL | Postgres 15.4 -> 15.5 (CVE-2023-5869) |
12/09/2023 de 20h00 à 22h00 | MAJ Debian |
|
09/09/2023 | MAJ Peertube | Peertube 5.2.1 |
08/07/2023 | MAJ Debian | Debian 10 -> 11.7 |
25/06/2023 | MAJ Peertube | Peertube 5.2.0 |
19/06/2023 | MAJ Postgres | Postgres 11.20 -> 15.3 |
10/06/2022 19h55 | MAJ Peertube | Peertube 4.2.0 |
31/05/2022 (nuit) | MAJ Debian |
|
08/03/2022 11h25 | MAJ Peertube | Peertube 4.1.1 |
23/02/2022 10h25 | MAJ Globale |
|
15/12/2021 10h40 | MAJ Globale |
|
13/12/2021 19h50 | MAJ ffpmeg |
|
16/10/2021 21h28 | MAJ Peertube | Peertube 3.4.1 |
27/09/2021 22h19 | MAJ Node | Node.js 12.22.6 |
15/09/2021 9h55 | MAJ Peertube | Peertube 3.4.0 |
19/08/2021 12h45 | MAJ Peertube | Peertube 3.3.0 |
19/08/2021 12h24 | MAJ Debian |
|
11/06/2021 23h30 | MAJ Peertube | Peertube 3.2.1 |
03/04/2021 18h05 | MAJ Peertube | Peertube 3.1.0 |
02/04/2021 22h30 | MAJ Debian |
|
07/02/2021 19h30 | MAJ Peertube | Peertube 3.0.1 |
22/01/2021 00h30 | MAJ Debian |
|
13/09/2020 22h48 | MAJ Debian |
|
23/06/2020 17h00 | Modification config | ésactivation de la redondance (remote_redundancy > videos > accept_from : 'nobody'). Serveurs tiers non fiables, mauvaise expérience utilisateur. Relance furtive + retrait de toutes les redondances de vidéos. |
13/09/2020 22h48 | MAJ Globale |
|
27/02/2020 | MAJ Peertube | Peertube 2.1.0 en 2.1.1 - Relance furtive |
26/02/2020 | MAJ Globale + HLS |
|
15/02/2020 - Passage de Postgres 9.6 en 11.6
La chose ne s'est pas faite sans mal. Pour ma part j'avais deux instances Postgres, une en 9.6 (en production) et l'autre en 11.6 (en attente) créée lors du passage de Debian 9 vers 10. Le but étant de migrer les données de l'une à l'autre. Comme on saute 2 versions majeures on ne peut pas juste copier les fichiers plats (ou sinon avec pg_upgrade). Une autre méthode simple pour réaliser cela est donc de faire un export et puis un import avec les utilitaires pg_dump et pg_restore. La base étant petite cela prend peu de temps. La base cible et les rôles ont été créés de prime-abord.
Code BASH :
pg_dump --host "localhost" --port "5432" --username "postgres" --dbname "peertube_prod" -c -Fc -f "/tmp/sauvegarde_migration.backup" pg_restore --clean --host "localhost" --port "5433" --username "peertube" --role "postgres" --dbname "peertube_prod" --verbose "/tmp/sauvegarde_migration.backup"
Bref la procédure n'a rien de sorcier mais j'ai eu une erreur lors de l'importation.
Code TEXT :
pg_restore: création de INDEX « public.tag_name » pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 2527 ; 1259 16649 INDEX tag_name peertube pg_restore: [programme d'archivage (db)] could not execute query: ERREUR: n'a pas pu créer l'index unique « tag_name » DÉTAIL : La clé (name)=(santanavevo) est dupliquée. La commande était : CREATE UNIQUE INDEX tag_name ON public.tag USING btree (name);
Bizarre que des valeurs soient dupliquées pour un index unique. Je ne m'explique pas comment, mais bon.
Peertube détectant l'index manquant il re-tente de le créer au lancement de l'instance et tombe sur la même erreur. Oh étonnant !
Code TEXT :
févr. 15 01:18:59 peertube systemd[1]: Started PeerTube daemon. févr. 15 01:18:59 peertube peertube[15777]: > peertube@2.0.0 start /var/www/peertube/versions/peertube-v2.0.0 févr. 15 01:18:59 peertube peertube[15777]: > node dist/server févr. 15 01:19:01 peertube systemd[1]: Stopping PeerTube daemon... févr. 15 01:19:01 peertube systemd[1]: peertube.service: Main process exited, code=killed, status=15/TERM févr. 15 01:19:01 peertube systemd[1]: peertube.service: Succeeded. févr. 15 01:19:01 peertube systemd[1]: Stopped PeerTube daemon. févr. 15 01:20:45 peertube systemd[1]: Started PeerTube daemon. févr. 15 01:20:46 peertube peertube[16021]: > peertube@2.0.0 start /var/www/peertube/versions/peertube-v2.0.0 févr. 15 01:20:46 peertube peertube[16021]: > node dist/server févr. 15 01:20:48 peertube peertube[16021]: [video.latavernedejohnjohn.fr:443] 2020-02-15 01:20:48.289 info: Database peertube_prod is ready. févr. 15 01:20:48 peertube peertube[16021]: [video.latavernedejohnjohn.fr:443] 2020-02-15 01:20:48.370 error: Cannot install application. { févr. 15 01:20:48 peertube peertube[16021]: "err": { févr. 15 01:20:48 peertube peertube[16021]: "stack": "SequelizeUniqueConstraintError: n'a pas pu créer l'index unique « tag_name »\n at Query.formatError (/var/www/peertube/versions/peertube-v févr. 15 01:20:48 peertube peertube[16021]: "message": "n'a pas pu créer l'index unique « tag_name »", févr. 15 01:20:48 peertube peertube[16021]: "name": "SequelizeUniqueConstraintError", févr. 15 01:20:48 peertube peertube[16021]: "errors": {}, févr. 15 01:20:48 peertube peertube[16021]: "parent": { févr. 15 01:20:48 peertube peertube[16021]: "stack": "error: n'a pas pu créer l'index unique « tag_name »\n at Connection.parseE (/var/www/peertube/versions/peertube-v2.0.0/node_modules/pg/l févr. 15 01:20:48 peertube peertube[16021]: "message": "n'a pas pu créer l'index unique « tag_name »", févr. 15 01:20:48 peertube peertube[16021]: "name": "error", févr. 15 01:20:48 peertube peertube[16021]: "length": 188, févr. 15 01:20:48 peertube peertube[16021]: "severity": "ERREUR", févr. 15 01:20:48 peertube peertube[16021]: "code": "23505", févr. 15 01:20:48 peertube peertube[16021]: "detail": "La clé (name)=(santanavevo) est dupliquée.", févr. 15 01:20:48 peertube peertube[16021]: "schema": "public", févr. 15 01:20:48 peertube peertube[16021]: "table": "tag", févr. 15 01:20:48 peertube peertube[16021]: "constraint": "tag_name", févr. 15 01:20:48 peertube peertube[16021]: "file": "tuplesort.c", févr. 15 01:20:48 peertube peertube[16021]: "line": "4056", févr. 15 01:20:48 peertube peertube[16021]: "routine": "comparetup_index_btree", févr. 15 01:20:48 peertube peertube[16021]: "sql": "CREATE UNIQUE INDEX \"tag_name\" ON \"tag\" (\"name\")" févr. 15 01:20:48 peertube peertube[16021]: }, févr. 15 01:20:48 peertube peertube[16021]: "sql": "CREATE UNIQUE INDEX \"tag_name\" ON \"tag\" (\"name\")" févr. 15 01:20:48 peertube peertube[16021]: } févr. 15 01:20:48 peertube peertube[16021]: } févr. 15 01:20:48 peertube peertube[16021]: npm ERR! code ELIFECYCLE févr. 15 01:20:48 peertube peertube[16021]: npm ERR! errno 255 févr. 15 01:20:48 peertube peertube[16021]: npm ERR! peertube@2.0.0 start: `node dist/server` févr. 15 01:20:48 peertube peertube[16021]: npm ERR! Exit status 255 févr. 15 01:20:48 peertube peertube[16021]: npm ERR! févr. 15 01:20:48 peertube peertube[16021]: npm ERR! Failed at the peertube@2.0.0 start script. févr. 15 01:20:48 peertube peertube[16021]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above. févr. 15 01:20:48 peertube peertube[16021]: npm ERR! A complete log of this run can be found in: févr. 15 01:20:48 peertube peertube[16021]: npm ERR! /var/www/peertube/.npm/_logs/2020-02-15T00_20_48_386Z-debug.log
Allez il faut faire un tour en base, et pourtant rien de bizarre de prime abord :
Code TEXT :
psql (11.6 (Debian 11.6-1.pgdg100+1), serveur 9.6.16) Connexion SSL (protocole : TLSv1.3, chiffrement : TLS_AES_256_GCM_SHA384, bits : 256, compression : désactivé) Saisissez « help » pour l'aide. peertube_prod=> \x Affichage étendu activé. peertube_prod=> select * from tag where name='santanavevo'; -[ RECORD 1 ]----- id | 10311 name | santanavevo
Et pourtant il y a bien anguille sous roche quand on essaye avec like :
Code TEXT :
peertube_prod=> select * from tag where name like '%santanavevo%'; -[ RECORD 1 ]----- id | 2092 name | santanavevo -[ RECORD 2 ]----- id | 10311 name | santanavevo peertube_prod=> select id,name::bytea from tag where name like '%santanavevo%'; -[ RECORD 1 ]------------------ id | 2092 name | \x73616e74616e617665766f -[ RECORD 2 ]------------------ id | 10311 name | \x73616e74616e617665766f
Deux tuples ressortent cette fois. Caractère parasite ? Reste à déterminer lequel est réellement utilisé :
Code TEXT :
peertube_prod=> select * from video where video.id in (select "videoId" from "videoTag" where "tagId"=2092); (0 ligne) peertube_prod=> select * from video where video.id in (select "videoId" from "videoTag" where "tagId"=10311); -[ RECORD 1 ]---------+------------------------------------------------------------------------------- id | 12916 uuid | 6c28dd73-2570-417f-8a8a-03c46dd07ef5 name | Santana - Corazon Espinado ft. Mana (Official Video) category | 1 licence | 1 language | es privacy | 1 nsfw | f description | Source : https://www.youtube.com/watch?v=t6omUxqhG78\r + | \r + | Check out Santana's official music video for 'Corazon Espinado' ft. Mana.\r + | \r + | Click to listen to Santana on Spotify: http://smarturl.it/SanSpot?IQid=SanCE\r+ | \r + | As featured on Ultimate Santana. C... support | duration | 275 views | 1 likes | 0 dislikes | 0 remote | t url | https://video.ploud.fr/videos/watch/6c28dd73-2570-417f-8a8a-03c46dd07ef5 commentsEnabled | t waitTranscoding | t state | 1 publishedAt | 2019-08-02 02:16:11.913+02 channelId | 343 createdAt | 2019-08-02 02:16:11.913+02 updatedAt | 2020-02-15 01:40:17.043+01 downloadEnabled | t originallyPublishedAt | 2013-10-02 00:00:00+02
Cette vidéo n'utilise pas le tag 2092, donc on peut le supprimer sans crainte.
Code TEXT :
peertube_prod=> select * from "videoTag" where "videoId"=12916; -[ RECORD 1 ]------------------------- videoId | 12916 tagId | 2094 createdAt | 2020-01-28 03:41:28.985+01 updatedAt | 2020-01-28 03:41:28.985+01 -[ RECORD 2 ]------------------------- videoId | 12916 tagId | 10312 createdAt | 2020-01-28 03:41:28.985+01 updatedAt | 2020-01-28 03:41:28.985+01 -[ RECORD 3 ]------------------------- videoId | 12916 tagId | 10311 createdAt | 2020-01-28 03:41:28.985+01 updatedAt | 2020-01-28 03:41:28.985+01 -[ RECORD 4 ]------------------------- videoId | 12916 tagId | 2091 createdAt | 2020-01-28 03:41:28.985+01 updatedAt | 2020-01-28 03:41:28.985+01 -[ RECORD 5 ]------------------------- videoId | 12916 tagId | 2090 createdAt | 2020-01-28 03:41:28.985+01 updatedAt | 2020-01-28 03:41:28.985+01 peertube_prod=> delete from tag where id=2092; DELETE 1
Je croyais qu'il n'y en avait qu'un seul. Donc au bout d'un moment, on compte les doublons, 27 au total.
Code XML :
peertube_prod=> SELECT name, COUNT(*) occurrences FROM tag GROUP BY name HAVING COUNT(*) > 1; name | occurrences ----------------+------------- Keep | 2 open source | 2 Musique | 2 #Musique | 2 open-source | 2 thinkerview | 2 петр великий | 2 ke$ha vevo | 2 cotton eye joe | 2 cottoneyejoe | 2 hip hop | 2 hip-hop | 2 Don't | 2 #FreeCAD | 2 острова | 2 паломничество | 2 FreeCAD | 2 Dont | 2 lofi | 2 neg'marron | 2 music | 2 #music | 2 let's play | 2 thinker view | 2 anime | 2 hiphop | 2 negmarron | 2 (27 lignes)
On commence par supprimer tous les tags qui ne sont utilisés par aucune vidéo. Ce qui en élimine 1444.
Code TEXT :
peertube_prod=> begin; BEGIN peertube_prod=> delete from tag where id IN (select id from tag where id not in (select distinct "tagId" from "videoTag")); DELETE 1444 peertube_prod=> commit; COMMIT
Ce qui fait redescendre le nombre de doublons à 7.
Code TEXT :
peertube_prod=> SELECT name, COUNT(*) occurrences FROM tag GROUP BY id, name HAVING COUNT(*) > 1; name | occurrences ---------------+------------- thinkerview | 2 hip-hop | 2 паломничество | 2 FreeCAD | 2 music | 2 anime | 2 hiphop | 2 (7 lignes)
Après quelques updates manuels pour résorber ces 7 derniers doublons, l'import se fait sans souci.
Reste à passer à la version 2.1.0 de Peertube la semaine prochaine.