From 148956ddab54e25d1b1ce486b60a8b740483ef52 Mon Sep 17 00:00:00 2001 From: Jo Bo <3+jobo@noreply.localhost> Date: Sat, 8 Aug 2026 14:37:57 +0200 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"/"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-install.md | 115 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 README-install.md diff --git a/README-install.md b/README-install.md new file mode 100644 index 0000000..7e9983d --- /dev/null +++ b/README-install.md @@ -0,0 +1,115 @@ +# Installation de l'agent compagnon (côté nœud `lbry-node`) + +L'agent est le « bras armé » du plugin, côté serveur lbrynet. WordPress ne lui +envoie que des ordres signés ; c'est lui qui télécharge la vidéo, publie via +l'API lbrynet locale, gère les playlists, puis nettoie. + +Il se compose de **3 fichiers** (`kc-agent.php`, `kc-worker.php`, `kc-lib.php`) ++ **1 configuration** (`config.php`) + **1 tâche planifiée** (le worker). + +--- + +## 1. Déposer les fichiers + +Copie le contenu du dossier `agent/` du plugin dans le **httpdocs** du domaine +`lbry-node` : + +``` +/var/www/vhosts/lbry-node.karaokeclip.video/httpdocs/ +├── kc-agent.php +├── kc-worker.php +├── kc-lib.php +└── config.php (créé à l'étape 2) +``` + +> Astuce : l'éditeur de fichiers Plesk ou WinSCP conviennent parfaitement. + +Vérifie que le domaine `lbry-node` a bien **le support PHP activé** (Plesk → +domaine `lbry-node.karaokeclip.video` → « Paramètres PHP » → PHP activé, FPM). + +## 2. Créer la configuration + +Copie `config.sample.php` en `config.php`, puis renseigne : + +- `secret` : un long secret aléatoire. Génère-le sur le VPS : + ```bash + php -r 'echo bin2hex(random_bytes(32)), "\n";' + ``` + Reporte **exactement la même valeur** dans WordPress (Réglages Odysee). +- `allow_ips` : ajoute l'**IP publique du VPS** (en plus de `127.0.0.1`). +- `channel_id` : le `claim_id` de `@KaraokeClip.Video`. +- `account_id` : l'`id` du compte **financé** (celui avec les LBC), pas le + « Holding Account For Channel ». Retrouve-le avec : + ```bash + curl -s -X POST http://127.0.0.1:5279 -H "Content-Type: application/json" \ + -d '{"method":"account_list"}' | jq '.result.items[] | {id, name, coins: .coins, is_default}' + ``` + +Protège le fichier (lecture seule propriétaire) : +```bash +chmod 600 /var/www/vhosts/lbry-node.karaokeclip.video/httpdocs/config.php +``` + +## 3. Protéger l'endpoint (défense en profondeur) + +L'agent est déjà protégé par **signature HMAC + horodatage + liste blanche +d'IP**. En complément, tu peux restreindre l'accès HTTP au fichier via un +`.htaccess` (Apache) dans `httpdocs`, en n'autorisant que l'IP du VPS : + +```apache + + Require ip 127.0.0.1 AJOUTER_L_IP_PUBLIQUE_DU_VPS + + + Require all denied + + + Require all denied + + + Require all denied + +``` + +## 4. Créer la tâche planifiée du worker (drainage de la file) + +Dans **Plesk → domaine `lbry-node` → Tâches planifiées → Ajouter**, crée une +tâche qui exécute un **script PHP** : + +- Type : « Exécuter un script PHP » (ou commande, cf. ci-dessous). +- Chemin : `httpdocs/kc-worker.php` +- Fréquence : **chaque minute** (`* * * * *`). + +Si Plesk demande une **commande shell** plutôt qu'un script, utilise le shim +phpenv du domaine (celui vu via `which php`) : + +```bash +/var/www/vhosts/lbry-node.karaokeclip.video/.phpenv/shims/php \ + /var/www/vhosts/lbry-node.karaokeclip.video/httpdocs/kc-worker.php +``` + +Le worker se protège lui-même par un **verrou** : même lancé chaque minute, un +seul exemplaire tourne à la fois. S'il n'y a rien à faire, il sort aussitôt. + +## 5. Vérifier + +Dépose une première publication depuis WordPress, ou teste « Tester la connexion +au nœud » dans l'admin du plugin. Tu peux aussi lancer le worker à la main : + +```bash +/var/www/vhosts/lbry-node.karaokeclip.video/.phpenv/shims/php \ + /var/www/vhosts/lbry-node.karaokeclip.video/httpdocs/kc-worker.php +``` + +Les journaux détaillés de chaque job sont dans : +``` +/var/www/vhosts/lbry-node.karaokeclip.video/lbry/kc-jobs/status/.json +``` + +--- + +### Rappels de sécurité + +- Ne mets **jamais** `--api=0.0.0.0:5279` : l'API lbrynet reste sur `127.0.0.1`. +- `config.php` contient des identifiants : `chmod 600` + interdit en HTTP. +- Sauvegarde régulièrement le wallet du nœud (`.../lbry/.local/share/lbry/lbryum/`).