1
Accès terminal.lhusser.fr
☐
Le terminal web est accessible via terminal.lhusser.fr.
Il s'agit d'une instance ttyd exposée derrière nginx avec authentification HTTP Basic.
- Ouvrir le navigateur →
https://terminal.lhusser.fr
- S'authentifier avec le compte
laurent
- Une session bash s'ouvre en tant que
root
- Taper
help-abrapa pour obtenir le mémo des commandes
$ curl -sI https://terminal.lhusser.fr | head -1
Astuce : Garder un onglet ouvert sur le terminal en permanence. Le heartbeat ttyd maintient la session active. En cas de déconnexion, les processus lancés dans screen continuent de tourner.
Avant chaque traitement batch, vérifier les ressources disponibles : RAM, disque et charge CPU.
$ free -h
total used free shared buff/cache available
Mem: 3.8Gi 1.2Gi 1.5Gi 16Mi 1.1Gi 2.4Gi
Swap: 2.0Gi 0B 2.0Gi
$ df -h / /home
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 18G 20G 48% /
/dev/vda2 100G 35G 60G 37% /home
$ uptime
14:32:07 up 23 days, 6:10, 2 users, load average: 0.45, 0.38, 0.31
Attention : Les traitements Ollama (mode audit) chargent un modèle LLM en RAM (~2 Go). Lancer free -h avant et après.
3
Services nginx / ttyd / ollama
☐
Trois services systemd gèrent l'infrastructure. Tous doivent être active (running).
$ systemctl status nginx ttyd ollama --no-pager
$ nginx -t
$ systemctl restart nginx
$ systemctl status nginx --no-pager
$ systemctl restart ttyd
$ systemctl status ttyd --no-pager
$ systemctl start ollama
$ systemctl stop ollama
$ ollama list
$ ollama pull llama3
Rappel ports :
• nginx : 80 / 443 (proxy vers ttyd sur 7681)
• ttyd : 7681 (écoute localhost uniquement)
• ollama : 11434 (écoute localhost uniquement)
4
Scripts ABRAPA — batch-siret-vps.js
☐
Le script principal ~/abrapa/batch-siret-vps.js traite les SIRET par lots. Quatre modes sont disponibles :
$ node ~/abrapa/batch-siret-vps.js --mode enrich
$ node ~/abrapa/batch-siret-vps.js --mode enrich --resume
$ node ~/abrapa/batch-siret-vps.js --mode enrich --batch-size 50
$ node ~/abrapa/batch-siret-vps.js --mode vies
$ node ~/abrapa/batch-siret-vps.js --mode vies --export-radies
$ node ~/abrapa/batch-siret-vps.js --mode bodacc
$ node ~/abrapa/batch-siret-vps.js --mode bodacc --from 2024-01-01 --to 2024-12-31
$ systemctl is-active ollama
$ node ~/abrapa/batch-siret-vps.js --mode audit --input sage.csv
$ node ~/abrapa/batch-siret-vps.js --mode audit --input sage.csv --model mistral
Important : Le mode audit charge un modèle LLM en mémoire (~2 Go RAM). Toujours vérifier avec free -h avant de le lancer. Ne pas lancer en même temps qu'un autre traitement batch.
Les traitements longs doivent être lancés dans des sessions screen pour résister aux déconnexions du terminal web.
$ screen -S enrich
$ node ~/abrapa/batch-siret-vps.js --mode enrich
$ screen -ls
There are screens on:
12345.enrich (Detached)
12346.bodacc (Detached)
2 Sockets in /run/screen/S-root.
$ screen -X -S enrich quit
Convention : Nommer les sessions selon le mode : enrich, vies, bodacc, audit. Cela permet de retrouver facilement le traitement actif.
6
Synchro O2Switch — checkpoint.json
☐
Après chaque traitement, le fichier checkpoint.json est synchronisé vers le serveur mutualisé O2Switch pour que le site puisse consommer les résultats.
$ curl -T ~/abrapa/checkpoint.json \
"ftp://lhusser.fr/Siretv92/checkpoint.json" \
--user "lhusser@lhusser.fr:MOT_DE_PASSE" \
--silent
$ curl -s "ftp://lhusser.fr/Siretv92/checkpoint.json" \
--user "lhusser@lhusser.fr:MOT_DE_PASSE" \
-o /dev/null -w "%{http_code} — Taille : %{size_download} octets\n"
$ cat ~/abrapa/checkpoint.json | python3 -m json.tool | head -20
$ stat ~/abrapa/checkpoint.json | grep Modify
Sécurité : Ne jamais écrire le mot de passe FTP en clair dans un script. Utiliser une variable d'environnement ou un fichier .netrc avec droits 600.
7
Checklist pré-traitement
☐
Exécuter cette checklist avant chaque lancement de batch. Cochez chaque étape une fois validée.
$ echo "=== RAM ===" ; free -h | grep Mem
$ echo "=== DISK ===" ; df -h /home | tail -1
$ echo "=== LOAD ===" ; uptime
$ echo "=== NGINX ===" ; systemctl is-active nginx
$ echo "=== TTYD ===" ; systemctl is-active ttyd
$ echo "=== SCREENS ==="; screen -ls
$ echo "=== OLLAMA ==="; systemctl is-active ollama