116 lines
3.9 KiB
Markdown
116 lines
3.9 KiB
Markdown
# 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
|
|
<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`) :
|
|
|
|
```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/<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/`).
|