Pb installation plugin après upgrade en v8?

Bonjour,

J’ai une installation de peertube sous docker que j’ai passé en v8, et depuis il m’est impossible d’installer de nouveaux plugins. La liste apparaît bien, mais l’installation donne ces logs ci-dessous, dont le message le plus important me semble être :

This modules directory was created using a different node-linker value.\n Run « pnpm install » to recreate the modules directory.\n"

Pouvez-vous le donner la commande à tapper dans mon container pour mettre à jour celà ?
« docker compose exec -u peertube peertube … » ?

Merci,

peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.623 debug: Getting access token.
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.625 debug: Checking POST - /api/v1/plugins/install parameters {
peertube-1  |   "body": {
peertube-1  |     "npmName": "peertube-plugin-auth-openid-connect"
peertube-1  |   },
peertube-1  |   "params": {},
peertube-1  |   "query": {}
peertube-1  | }
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.625 info: Installing plugin peertube-plugin-auth-openid-connect.
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.859 error: Cannot exec pnpm. {
peertube-1  |   "commands": \[
peertube-1  |     "add",
peertube-1  |     "peertube-plugin-auth-openid-connect@2.1.1"
peertube-1  |   \],
peertube-1  |   "err": {
peertube-1  |     "stack": "ExecaError: Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'\\n\\nError: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n\\n\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.\\n    at getFinalError (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/return/final-error.js:6:9)\\n    at makeError (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/return/result.js:108:16)\\n    at getAsyncResult (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/methods/main-async.js:209:4)\\n    at handlePromise (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/methods/main-async.js:192:17)\\n    at async execPNPM (file:///app/dist/core/lib/plugins/package-manager.js:35:16)\\n    at async installNpmPlugin (file:///app/dist/core/lib/plugins/package-manager.js:19:24)\\n    at async PluginManager.install (file:///app/dist/core/lib/plugins/plugin-manager.js:264:19)\\n    at async installPlugin (file:///app/dist/core/controllers/api/plugins.js:47:24)",
peertube-1  |     "message": "Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'\\n\\nError: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n\\n\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |     "shortMessage": "Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'",
peertube-1  |     "command": "pnpm add peertube-plugin-auth-openid-connect@2.1.1",
peertube-1  |     "escapedCommand": "pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'",
peertube-1  |     "cwd": "/data/plugins",
peertube-1  |     "durationMs": 105.282777,
peertube-1  |     "failed": true,
peertube-1  |     "timedOut": false,
peertube-1  |     "isCanceled": false,
peertube-1  |     "isGracefullyCanceled": false,
peertube-1  |     "isTerminated": false,
peertube-1  |     "isMaxBuffer": false,
peertube-1  |     "isForcefullyTerminated": false,
peertube-1  |     "exitCode": 1,
peertube-1  |     "stdout": "\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |     "stderr": "Error: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n",
peertube-1  |     "stdio": \[
peertube-1  |       null,
peertube-1  |       "\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |       "Error: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n"
peertube-1  |     \],
peertube-1  |     "ipcOutput": [ ],
peertube-1  |     "pipedFrom": [ ]
peertube-1  |   },
peertube-1  |   "stderr": "Error: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n"
peertube-1  | }
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.860 error: Cannot install plugin peertube-plugin-auth-openid-connect, removing it... {
peertube-1  |   "err": {
peertube-1  |     "stack": "ExecaError: Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'\\n\\nError: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n\\n\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.\\n    at getFinalError (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/return/final-error.js:6:9)\\n    at makeError (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/return/result.js:108:16)\\n    at getAsyncResult (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/methods/main-async.js:209:4)\\n    at handlePromise (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/methods/main-async.js:192:17)\\n    at async execPNPM (file:///app/dist/core/lib/plugins/package-manager.js:35:16)\\n    at async installNpmPlugin (file:///app/dist/core/lib/plugins/package-manager.js:19:24)\\n    at async PluginManager.install (file:///app/dist/core/lib/plugins/plugin-manager.js:264:19)\\n    at async installPlugin (file:///app/dist/core/controllers/api/plugins.js:47:24)",
peertube-1  |     "message": "Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'\\n\\nError: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n\\n\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |     "shortMessage": "Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'",
peertube-1  |     "command": "pnpm add peertube-plugin-auth-openid-connect@2.1.1",
peertube-1  |     "escapedCommand": "pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'",
peertube-1  |     "cwd": "/data/plugins",
peertube-1  |     "durationMs": 105.282777,
peertube-1  |     "failed": true,
peertube-1  |     "timedOut": false,
peertube-1  |     "isCanceled": false,
peertube-1  |     "isGracefullyCanceled": false,
peertube-1  |     "isTerminated": false,
peertube-1  |     "isMaxBuffer": false,
peertube-1  |     "isForcefullyTerminated": false,
peertube-1  |     "exitCode": 1,
peertube-1  |     "stdout": "\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |     "stderr": "Error: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n",
peertube-1  |     "stdio": \[
peertube-1  |       null,
peertube-1  |       "\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |       "Error: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n"
peertube-1  |     \],
peertube-1  |     "ipcOutput": [ ],
peertube-1  |     "pipedFrom": [ ]
peertube-1  |   }
peertube-1  | }
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.861 warn: Cannot install plugin peertube-plugin-auth-openid-connect. {
peertube-1  |   "err": {
peertube-1  |     "stack": "ExecaError: Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'\\n\\nError: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n\\n\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.\\n    at getFinalError (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/return/final-error.js:6:9)\\n    at makeError (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/return/result.js:108:16)\\n    at getAsyncResult (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/methods/main-async.js:209:4)\\n    at handlePromise (file:///app/node_modules/.pnpm/execa@10.0.1/node_modules/execa/lib/methods/main-async.js:192:17)\\n    at async execPNPM (file:///app/dist/core/lib/plugins/package-manager.js:35:16)\\n    at async installNpmPlugin (file:///app/dist/core/lib/plugins/package-manager.js:19:24)\\n    at async PluginManager.install (file:///app/dist/core/lib/plugins/plugin-manager.js:264:19)\\n    at async installPlugin (file:///app/dist/core/controllers/api/plugins.js:47:24)",
peertube-1  |     "message": "Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'\\n\\nError: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n\\n\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |     "shortMessage": "Command failed with exit code 1: pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'",
peertube-1  |     "command": "pnpm add peertube-plugin-auth-openid-connect@2.1.1",
peertube-1  |     "escapedCommand": "pnpm add 'peertube-plugin-auth-openid-connect@2.1.1'",
peertube-1  |     "cwd": "/data/plugins",
peertube-1  |     "durationMs": 105.282777,
peertube-1  |     "failed": true,
peertube-1  |     "timedOut": false,
peertube-1  |     "isCanceled": false,
peertube-1  |     "isGracefullyCanceled": false,
peertube-1  |     "isTerminated": false,
peertube-1  |     "isMaxBuffer": false,
peertube-1  |     "isForcefullyTerminated": false,
peertube-1  |     "exitCode": 1,
peertube-1  |     "stdout": "\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |     "stderr": "Error: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n",
peertube-1  |     "stdio": \[
peertube-1  |       null,
peertube-1  |       "\[WARN\] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.",
peertube-1  |       "Error: ERR_PNPM_NODE_LINKER_DIFF\\n\\n  × adding a new package\\n  ╰─▶ This modules directory was created using a different node-linker value.\\n      Run "pnpm install" to recreate the modules directory.\\n"
peertube-1  |     \],
peertube-1  |     "ipcOutput": [ ],
peertube-1  |     "pipedFrom": [ ]
peertube-1  |   }
peertube-1  | }
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.864 debug: Bad HTTP request. {
peertube-1  |   "json": {
peertube-1  |     "type": "about:blank",
peertube-1  |     "title": "Bad Request",
peertube-1  |     "detail": "Cannot install plugin peertube-plugin-auth-openid-connect",
peertube-1  |     "status": 400,
peertube-1  |     "docs": " https://docs.joinpeertube.org/api-rest-reference.html#operation/addPlugin "
peertube-1  |   }
peertube-1  | }
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.869 info: 109.10.0.0 - - \[09/Nov/2026:08:56:18 +0000\] "POST /api/v1/plugins/install HTTP/1.0" 400 209 "https://monserveur.org/admin/settings/plugins/search?pluginType=1" "Mozilla/5.0 (X11; Linux x86_64; rv:159.0) Gecko/20100101 Firefox/159.0"
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.890 debug: Getting access token.
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.893 debug: Checking POST - /api/v1/server/logs/client parameters {
peertube-1  |   "body": {
peertube-1  |     "message": "Backend returned code 400, errorMessage is: Cannot install plugin peertube-plugin-auth-openid-connect",
peertube-1  |     "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:159.0) Gecko/20100101 Firefox/159.0",
peertube-1  |     "url": "https://monserveur.org/admin/settings/plugins/search?pluginType=1",
peertube-1  |     "level": "error",
peertube-1  |     "meta": "{"url":"https://monserveur.org/api/v1/plugins/install\"}"
peertube-1  |   },
peertube-1  |   "params": {},
peertube-1  |   "query": {}
peertube-1  | }
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.893 error: Client log: Backend returned code 400, errorMessage is: Cannot install plugin peertube-plugin-auth-openid-connect {
peertube-1  |   "username": "root",
peertube-1  |   "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:159.0) Gecko/20100101 Firefox/159.0",
peertube-1  |   "meta": "{"url":"https://monserveur.org/api/v1/plugins/install\"}",
peertube-1  |   "url": "https://monserveur.org/admin/settings/plugins/search?pluginType=1"
peertube-1  | }
peertube-1  | \[monserveur.org:443\] 2026-11-09 08:56:18.899 info: 109.10.0.0 - - \[09/Nov/2026:08:56:18 +0000\] "POST /api/v1/server/logs/client HTTP/1.0" 204 - "https://monserveur.org/admin/settings/plugins/search?pluginType=1" "Mozilla/5.0 (X11; Linux x86_64; rv:159.0) Gecko/20100101 Firefox/159.0"

Vous pouvez essayer et poster le résultat des commandes ?

docker compose exec -u peertube peertube sh -c 'cd /data/plugins && cat pnpm-workspace.yaml && grep nodeLinker node_modules/.modules.yaml; pnpm install'
docker compose restart peertube

~/apps/peertube7# docker compose exec -u peertube peertube sh -c ‹ cd /data/plugins && cat pnpm-workspace.yaml && grep nodeLinker node_modules/.modules.yaml; pnpm install ›
dangerouslyAllowAllBuilds: true
nodeLinker: hoisted
[WARN] The store at /home/peertube/.local/share/pnpm/store/v11 is not used because packages cannot be hard linked from it into this project. Using the store at /data/.pnpm-store/v11 instead. Set storeDir to choose the store.
✓ Lockfile passes supply-chain policies (1 entry in 419ms)
Lockfile is up to date, resolution step is skipped
Packages are hard linked from the content-addressable store to the virtual store.
Content-addressable store is at: /data/.pnpm-store/v11
Virtual store is at: node_modules/.pnpm
Packages: +1
+
Progress: resolved 1, reused 0, downloaded 1, added 1, done

dependencies:

  • peertube-plugin-transcoding-custom-quality 0.2.0

Done in 490ms using pnpm v12.18.0

~/apps/peertube7# docker compose restart peertube
[+] restart 0/1
⠙ Container peertube7-peertube-1 Restarting

Et la fonction d’installation des plugins refonctionne à nouveau. Merci !

(reste à savoir si la modification persistera en cas de mise à jour ou recréation du composant…)