Aller au contenu

« Trace install tas - Social Analyzer » : différence entre les versions

De Loic Wiki
Daneel (discussion | contributions)
Documentation conteneurs enrichie: runtime, paramètres, ports, volumes, relance et diagnostic
Mise à jour de l’état et des ports — 2026-08-14
Balise : Contenu remplacé
 
Ligne 5 : Ligne 5 :


== Accès ==
== Accès ==
* Local : http://10.8.0.1:8086/app.html
* Local : http://10.8.0.1:8086
* Public : https://lololand.hopto.org:25686/app.html
* Public : https://lololand.hopto.org:25686
* Attention : la racine / peut répondre 404 ; le point d'entrée applicatif observé est /app.html


== Ports ==
== Ports ==
* 8086 -> 9005 : interface web Social Analyzer publiée par le conteneur applicatif
8086 local, 25686 public ; Selenium Hub sur 4444
* 4444 -> 4444 : Selenium Hub
* 9002 -> 5900 : VNC du noeud Firefox Selenium
* 25686 -> 8086 : publication publique via Caddy


== Exécution / runtime ==
== Exécution / runtime ==
Stack podman-compose dans /home/loic/clawd/social-analyzer/docker-compose.yml ; conteneurs attendus :
Stack social-analyzer avec Selenium hub et conteneur principal
* social-analyzer_social-analyzer_1 : application Node.js / interface web
* social-analyzer_hub_1 : hub Selenium
* web-automation_firefox : noeud Firefox Selenium


Service systemd user associé : /home/loic/.config/systemd/user/social-analyzer.service
== Installation / configuration ==
* Type=oneshot : systemd considère le lancement réussi quand `podman-compose up -d` se termine, même si la santé réelle des conteneurs doit être vérifiée séparément.
S'appuie sur des conteneurs annexes Selenium.
* WorkingDirectory=/home/loic/clawd/social-analyzer : toutes les commandes du service s'exécutent depuis ce dossier.
* ExecStart=/usr/bin/podman-compose up -d : crée/recrée et démarre la stack en arrière-plan.
  * `up` : crée et démarre les services du compose.
  * `-d` : mode détaché, le processus compose rend la main après lancement.
* ExecStop=/usr/bin/podman-compose down : arrête et supprime les conteneurs/réseaux créés par la stack.
* RemainAfterExit=yes : l'unité reste marquée active après la fin du processus oneshot.
 
== Chemins de configuration ==
* /home/loic/.config/systemd/user/social-analyzer.service
* /home/loic/clawd/social-analyzer/docker-compose.yml
* /home/loic/clawd/social-analyzer/Dockerfile
* /home/loic/clawd/social-analyzer/package.json
* /home/loic/clawd/social-analyzer/package-lock.json
 
== Images et build ==
* image locale buildée : localhost/social-analyzer_social-analyzer:latest
* image hub : docker.io/selenium/hub
* image noeud Firefox : docker.io/selenium/node-firefox
 
Dockerfile applicatif actuel :
* `FROM node:20.18.1-alpine3.20` : base Node épinglée pour éviter les incompatibilités vues avec Node 18.15.0.
* `WORKDIR /usr/src/app` : répertoire de travail dans l'image.
* `COPY . .` : copie du contexte de build complet.
* `RUN apk update && apk add --no-cache firefox-esr && npm ci && npm install lodash && npm install --loglevel=error`
  * `apk add --no-cache firefox-esr` : installe Firefox ESR dans l'image applicative.
  * `npm ci` : installe strictement les dépendances depuis package-lock.json, de façon reproductible.
  * `npm install lodash` : ajoute explicitement lodash si requis par le projet.
  * `npm install --loglevel=error` : second passage npm plus silencieux pour finaliser les dépendances.
* `EXPOSE 9005` : documentation du port interne de l'application.
* `ENTRYPOINT [ "npm", "start", "--","--docker"]` : lance l'application en mode docker.
 
== Paramètres du docker-compose ==
Service `social-analyzer` :
* `build: .` : construit l'image locale à partir du Dockerfile du dossier courant.
* `ports: "8086:9005"` : publie le port 9005 du conteneur sur le port 8086 de l'hôte.
* `depends_on: hub` : demande à compose de démarrer le hub avant l'application.
* `links: hub` : alias réseau historique vers `hub`.
* `entrypoint: npm start -- --docker --grid "http://hub:4444/wd/hub"`
  * `npm start` : démarre l'application définie dans package.json.
  * `--` : transmet les arguments suivants au script npm.
  * `--docker` : active le mode conteneur.
  * `--grid "http://hub:4444/wd/hub"` : pointe l'application vers le Selenium Hub interne.
 
Service `hub` :
* `image: docker.io/selenium/hub`
* `ports: "4444:4444"` : expose le hub Selenium sur l'hôte.
* variables :
  * `GRID_MAX_SESSION=16` : limite haute de sessions Selenium simultanées.
  * `GRID_BROWSER_TIMEOUT=6000` : timeout navigateur côté grid.
  * `GRID_TIMEOUT=6000` : timeout global grid.
 
Service `firefox` :
* `image: docker.io/selenium/node-firefox`
* `container_name: web-automation_firefox` : fixe un nom de conteneur stable.
* `depends_on: hub` : démarre après le hub.
* variables :
  * `SE_EVENT_BUS_HOST=hub` : hôte du bus Selenium.
  * `SE_EVENT_BUS_PUBLISH_PORT=4442` : port de publication du bus.
  * `SE_EVENT_BUS_SUBSCRIBE_PORT=4443` : port d'abonnement du bus.
  * `SE_NODE_MAX_SESSIONS=${CPU_CORES:-2}` : nombre de sessions Firefox, avec valeur par défaut 2 si CPU_CORES n'est pas défini.
* `volumes: /dev/shm:/dev/shm` : partage la mémoire partagée de l'hôte pour limiter les crashs navigateur.
* `ports: "9002:5900"` : expose le VNC Firefox.
* `links: hub` : alias réseau historique vers `hub`.
 
== Volumes / persistance ==
* /dev/shm -> /dev/shm dans le conteneur Firefox
* Pas de volume persistant applicatif identifié pour l'interface elle-même dans cette passe
* Le contexte de build local (/home/loic/clawd/social-analyzer) fait partie de l'état à sauvegarder
 
== Dépendances ==
* hub Selenium
* node-firefox Selenium
* image locale buildée depuis le code source du dossier social-analyzer
* Caddy 25686 -> 8086
 
== Procédure de relance / diagnostic ==
Relance standard :
* `systemctl --user restart social-analyzer.service`
 
Vérifications utiles :
* `systemctl --user status social-analyzer.service --no-pager -l`
* `podman ps --all | grep -i 'social-analyzer\|web-automation_firefox'`
* `podman logs --tail 80 social-analyzer_social-analyzer_1`
* `curl -I http://127.0.0.1:8086/app.html`
 
Explication des commandes :
* `systemctl --user` : agit sur les services systemd utilisateur rootless.
* `status --no-pager -l` : évite le pager interactif et affiche les lignes complètes.
* `podman ps --all` : montre aussi les conteneurs arrêtés, utile pour repérer les fantômes.
* `podman logs --tail 80` : limite la sortie aux dernières lignes pertinentes.
* `curl -I` : teste uniquement les en-têtes HTTP, sans télécharger toute la page.


== Remarques ==
== Remarques ==
* Incident observé puis corrigé : état Podman rootless incohérent avec noms de conteneurs réservés mais conteneurs introuvables.
Le service Homepage doit être corrigé : Social Analyzer est bien sur 8086. Le port 8085 correspond à un ancien lien CyberBro et non à Social Analyzer.
* Incident observé puis corrigé : crash Node/npm avec Node.js v18.15.0 ; le Dockerfile a été adapté vers node:20.18.1-alpine3.20.
* Le service Homepage pointait historiquement aussi vers 8085 pour Social Analyzer, alors que la stack courante expose 8086. Cette divergence doit être surveillée et corrigée si nécessaire.
* Le point d'entrée utile est /app.html, pas forcément /.
 
== Données / emplacements à sauvegarder ==
* /home/loic/.config/systemd/user/social-analyzer.service
* /home/loic/clawd/social-analyzer/docker-compose.yml
* /home/loic/clawd/social-analyzer/Dockerfile
* /home/loic/clawd/social-analyzer/package.json
* /home/loic/clawd/social-analyzer/package-lock.json
* plus largement le dossier /home/loic/clawd/social-analyzer si le contexte de build a été modifié
 
== Sauvegarde ==
* Sauvegarder le service systemd user et l'intégralité du dossier /home/loic/clawd/social-analyzer.
* Si des variables d'environnement ou fichiers .env sont ajoutés plus tard, les inclure explicitement.
* En cas de rebuild important, conserver aussi le hash/image de référence si besoin d'un rollback rapide.
 
== Restauration ==
* Restaurer le dossier /home/loic/clawd/social-analyzer et /home/loic/.config/systemd/user/social-analyzer.service.
* Rebuilder ensuite l'image locale avec `podman-compose build --no-cache` si le cache est suspect ou si l'image manque.
* Redémarrer avec `systemctl --user restart social-analyzer.service`.
* Vérifier ensuite `podman ps`, les logs applicatifs et `http://127.0.0.1:8086/app.html`.
 
== Maintenance documentaire ==
Lors d'une évolution de la stack Selenium, du Dockerfile, du port exposé, du point d'entrée HTTP ou de la route Caddy, mettre à jour cette page et Homepage.


== Trace documentaire ==
== Trace documentaire ==
Cette page fait partie de [[Trace install tas]].
Cette page fait partie de [[trace install tas]].

Dernière version du 14 août 2026 à 11:55

Trace install tas - Social Analyzer

Rôle

OSINT / analyse de profils sociaux.

Accès

Ports

8086 local, 25686 public ; Selenium Hub sur 4444

Exécution / runtime

Stack social-analyzer avec Selenium hub et conteneur principal

Installation / configuration

S'appuie sur des conteneurs annexes Selenium.

Remarques

Le service Homepage doit être corrigé : Social Analyzer est bien sur 8086. Le port 8085 correspond à un ancien lien CyberBro et non à Social Analyzer.

Trace documentaire

Cette page fait partie de trace install tas.