Files
Documents-Divers-Acces-Public/README-install.md
T

3.9 KiB

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 :
    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 :
    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) :

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 :

<Files "kc-agent.php">
    Require ip 127.0.0.1 AJOUTER_L_IP_PUBLIQUE_DU_VPS
</Files>
<Files "config.php">
    Require all denied
</Files>
<Files "kc-lib.php">
    Require all denied
</Files>
<Files "kc-worker.php">
    Require all denied
</Files>

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) :

/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 :

/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/<job_id>.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/).