« Trace install tas - Social Analyzer » : différence entre les versions
Apparence
Création de la page de trace logicielle |
Documentation conteneurs enrichie: runtime, paramètres, ports, volumes, relance et diagnostic |
||
| (2 versions intermédiaires par un autre utilisateur non affichées) | |||
| Ligne 5 : | Ligne 5 : | ||
== Accès == | == Accès == | ||
* Local : http://10.8.0.1:8086 | * Local : http://10.8.0.1:8086/app.html | ||
* Public : https://lololand.hopto.org:25686 | * Public : https://lololand.hopto.org:25686/app.html | ||
* Attention : la racine / peut répondre 404 ; le point d'entrée applicatif observé est /app.html | |||
== Ports == | == Ports == | ||
8086 | * 8086 -> 9005 : interface web Social Analyzer publiée par le conteneur applicatif | ||
* 4444 -> 4444 : Selenium Hub | |||
* 9002 -> 5900 : VNC du noeud Firefox Selenium | |||
* 25686 -> 8086 : publication publique via Caddy | |||
== Exécution / runtime == | == Exécution / runtime == | ||
Stack social-analyzer | Stack podman-compose dans /home/loic/clawd/social-analyzer/docker-compose.yml ; conteneurs attendus : | ||
* 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 | ||
* 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. | |||
* 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 == | ||
Le service Homepage | * Incident observé puis corrigé : état Podman rootless incohérent avec noms de conteneurs réservés mais conteneurs introuvables. | ||
* 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 [[ | Cette page fait partie de [[Trace install tas]]. | ||
Dernière version du 12 avril 2026 à 18:57
Trace install tas - Social Analyzer
Rôle
OSINT / analyse de profils sociaux.
Accès
- Local : http://10.8.0.1:8086/app.html
- Public : https://lololand.hopto.org:25686/app.html
- Attention : la racine / peut répondre 404 ; le point d'entrée applicatif observé est /app.html
Ports
- 8086 -> 9005 : interface web Social Analyzer publiée par le conteneur applicatif
- 4444 -> 4444 : Selenium Hub
- 9002 -> 5900 : VNC du noeud Firefox Selenium
- 25686 -> 8086 : publication publique via Caddy
Exécution / runtime
Stack podman-compose dans /home/loic/clawd/social-analyzer/docker-compose.yml ; conteneurs attendus :
- 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
- 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.
- 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
- Incident observé puis corrigé : état Podman rootless incohérent avec noms de conteneurs réservés mais conteneurs introuvables.
- 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
Cette page fait partie de Trace install tas.