- Copy enso/docs tree to services/docv/enso-docs (refresh via cp -a from enso repo) - Document mirror and refresh command in services/docv/README.md - Ignore services/docv/target for local Rust workspace - Track docv-service-integration, API docv.md, and related doc index updates
12 KiB
Cartographie des ports — enso (docv / enso)
Ce document fixe les ports utilisés par le projet enso sur les machines test, pprod, prod et sur le poste de développement. Les ports listés comme déjà utilisés ci‑dessous ont été vérifiés par connexion aux machines (ss -tlnp).
Proxy nginx (192.168.1.100) : pour les seuls vhosts *.enso.4nkweb.com et *.docv.4nkweb.com, les upstreams vers 101 / 102 / 103 sont 3032 (enso-front), 3038 (docv-back), 3040 (enso-back). Les fichiers deploy/nginx/*.enso.*.locations.snippet et deploy/nginx/*.docv.*.locations.snippet reprennent ce câblage. Ne pas modifier les autres vhosts du proxy (autres produits / domaines).
Domaines DNS (enso) : test.enso.4nkweb.com, pprod.enso.4nkweb.com, prod.enso.4nkweb.com.
Domaines DNS (docv) : test.docv.4nkweb.com, pprod.docv.4nkweb.com, prod.docv.4nkweb.com (TLS et DNS configurés). Même plan d’adressage machine que les domaines enso correspondants (101 / 102 / 103).
Règles de ports pour le produit docv (vhosts *.docv.*) :
- Ne pas binder de service docv sur les ports déjà utilisés sur les machines cibles (§1 : 22, 25, 631, 3009, 3100, 3101, 80, 443, 3000, 3004, 3310, 9050, 9051, 18443, 29000, 38333, 38334, 5432, etc. — revérifier après chaque audit
ss). - Ne pas réutiliser les ports réservés du déploiement docv / enso pour d’autres rôles : 3032 (enso-front), 3038 (docv-back), 3040 (enso-back), 3005 (docv-front prévu), 3022 (API IA dédiée).
- docv-back (API socle) : 3038 (distinct de 3032 / 3040).
- docv-front (prévu) : 3005 — ne pas utiliser 3032 (réservé enso-front).
Référence : INSTALLATION_ENVIRONNEMENT.md.
1. Ports déjà utilisés sur les machines test / pprod / prod (vérifiés)
Connexion SSH aux trois machines et exécution de ss -tlnp. Ports en écoute (hors localhost sauf si exposé) :
test (192.168.1.101)
| Port | Processus / usage |
|---|---|
| 22 | sshd |
| 25 | (mail) |
| 631 | cups |
| 3009 | node (LeCoffreIO ou équivalent) |
| 3100 | next-server |
| 3101 | node |
| 5432 | PostgreSQL (localhost) |
pprod (192.168.1.102)
| Port | Processus / usage |
|---|---|
| 22 | sshd |
| 25 | (mail) |
| 631 | cups |
| 3009 | node |
| 3100 | next-server |
| 3101 | node |
| 5432 | PostgreSQL (localhost) |
prod (192.168.1.103)
| Port | Processus / usage |
|---|---|
| 22 | sshd |
| 25 | (mail) |
| 631 | cups |
| 80 | HTTP |
| 443 | HTTPS |
| 3000 | node |
| 3004 | MainThread (déjà utilisé) |
| 3009 | node |
| 3100 | next-server |
| 3101 | node |
| 3310 | (autre service) |
| 5432 | PostgreSQL (localhost) |
| 9050, 9051 | (Tor) |
| 18443, 29000, 38333, 38334 | bitcoind |
Conclusion : les ports 3032, 3038, 3040 (stack enso + docv-back derrière le proxy), 3005 (docv-front), 3022 sont retenus pour le périmètre actuel du monorepo et doivent rester libres sur les machines applicatives par rapport à la liste §1 au moment du dernier audit — revérifier avec ss avant toute mise en service. Le port 3004 est occupé sur prod (service existant). Le port 3000 est occupé sur prod ; l’API IA (ai) utilise 3022 lorsqu’elle tourne sur une machine dédiée (ex. poste de dev, 192.168.1.173).
2. Briques logicielles ouvrant des ports
Toutes les briques du projet enso qui ouvrent un port TCP :
| Brique | Type | Consommée par |
|---|---|---|
| docv-back | Backend Rust | Proxy, fronts (via API) |
| enso-back | Backend Rust | Proxy, enso-front |
| enso-front | Front Next.js | Proxy, navigateur |
| docv-front | Front Next.js (vhost .docv.) | Proxy, navigateur ; port 3005, distinct d’enso-front (3032) |
API IA (sous-module ai) |
API TypeScript (Ollama, AnythingLLM) | docv-back, enso-back (variable IA_API_URL) |
L’API IA est une brique à part. Pour l’instant les services IA ne tournent que sur le poste de développement et sur la machine 192.168.1.173 (ce poste / machine ia). Sur test, pprod et prod, l’API IA n’est pas déployée : les backends de ces environnements pointent IA_API_URL vers 192.168.1.173:3022. Lorsqu’elle tourne (dev ou 173), elle écoute sur le port 3022.
2bis. Logiciels IA du socle (en plus de l’API IA)
L’API IA (sous-module ai, port 3022) s’appuie sur le socle IA : Ollama et AnythingLLM. Ces logiciels ouvrent eux‑mêmes des ports. Ils sont installés sur le poste de développement et sur 192.168.1.173 (pas sur test/pprod/prod pour l’instant). Les backends n’appellent pas directement ces logiciels, uniquement l’API IA.
| Logiciel | Port par défaut | Variable / config | Consommée par |
|---|---|---|---|
| Ollama | 11434 | OLLAMA_HOST (ex. 0.0.0.0:11434) |
API IA (sous-module ai) |
| AnythingLLM | 3001 | SERVER_PORT (dans .env AnythingLLM) |
API IA (sous-module ai) |
API IA (ai/) |
3022 | PORT ou config du serveur API IA |
docv-back, enso-back (IA_API_URL) |
Note : Si le port 3001 est déjà utilisé sur la machine (poste de dev ou 173), configurer AnythingLLM sur un autre port (ex. 3019 ou 3021) via SERVER_PORT. L’API IA (ai) doit être configurée pour pointer vers les URLs réelles d’Ollama et d’AnythingLLM (ex. http://localhost:11434 pour Ollama, http://localhost:3001 ou le port choisi pour AnythingLLM).
3. APIs, BDD et services par environnement
Sur chaque environnement (développement, test, pprod, prod) on a des APIs (backends), une BDD (PostgreSQL) et des services (fronts). Chaque type utilise des ports distincts ; il y a donc plusieurs ports par environnement, pas un seul.
| Type | Port(s) | Rôle |
|---|---|---|
| APIs (backends) | 3038, 3040 | docv-back, enso-back |
| BDD | 5432 (localhost) | PostgreSQL (docv, enso par BDD ou schémas) |
| Services (fronts) | 3032, 3005 | enso-front ; docv-front (vhost docv uniquement) |
API IA (sous-module ai) |
3022 | Uniquement sur poste de dev et 192.168.1.173 pour l’instant ; test/pprod/prod appellent 192.168.1.173:3022 |
| Ollama (socle IA) | 11434 | Sur poste de dev et 173 ; consommée par l’API IA |
| AnythingLLM (socle IA) | 3001 (ou autre si SERVER_PORT défini) |
Sur poste de dev et 173 ; consommée par l’API IA |
Sur test, pprod et prod : mêmes ports pour APIs et fronts (3038, 3040, 3032, 3005 lorsque docv-front est déployé) ; BDD locale (5432). L’API IA et le socle IA (Ollama, AnythingLLM) n’écoutent pas sur ces machines.
4. Ports nécessaires pour enso
Le monorepo enso expose quatre briques applicatives principales côté produit (deux backends, deux fronts) plus l'API IA à part :
| Service | Rôle |
|---|---|
| docv-back | Backend API socle commun |
| enso-back | Backend API enso (avocats) |
| enso-front | Front Next.js enso |
| docv-front | Front docv (vhost .docv.) — port 3005 |
API IA (ai/) |
API IA TypeScript (Ollama, AnythingLLM) ; consommée par les backends |
Chaque processus écoute sur un port dédié. Les mêmes numéros pour APIs et fronts en développement, test, pprod et prod (sauf API IA : uniquement dev + 173). L’API IA (3022) n’écoute que sur le poste de développement et sur 192.168.1.173 pour l’instant.
5. Attribution des ports (libres, identiques partout)
Ports retenus sur test, pprod, prod et en développement local (alignés proxy nginx + applications) :
| Port | Service | Fichier / variable concerné |
|---|---|---|
| 3032 | enso-front | enso/enso-front/package.json (dev, start) |
| 3005 | docv-front (vhost .docv.) | docv/docv-front/package.json lorsque le front existe |
| 3038 | docv-back | docv/docv-back/.env → PORT=3038 |
| 3040 | enso-back | enso/enso-back/.env → PORT=3040 |
| 3022 | API IA (ai/) |
Config du serveur API IA ; IA_API_URL dans les backends. Pour l’instant : API IA uniquement sur le poste de dev et sur 192.168.1.173. Sur test/pprod/prod, IA_API_URL = http://192.168.1.173:3022. |
Règle : les mêmes numéros en local, test, pprod et prod. L’API IA (3022) ne tourne que sur le poste de dev et la machine 173 ; les autres environnements l’appellent à distance.
6. Résumé par environnement
Sur chaque environnement : APIs (backends), BDD (PostgreSQL), services (fronts). Plusieurs ports par machine.
| Environnement | Machine / poste | APIs (3038, 3040) | BDD (5432) | Fronts (3032, docv 3005) | API IA (3022) |
|---|---|---|---|---|---|
| Développement | Poste local | oui | oui | oui | oui (locale) |
| test | 192.168.1.101 | oui | oui | oui | non → appelle 192.168.1.173:3022 |
| pprod | 192.168.1.102 | oui | oui | oui | non → appelle 192.168.1.173:3022 |
| prod | 192.168.1.103 | oui | oui | oui | non → appelle 192.168.1.173:3022 |
| Services IA | 192.168.1.173 (ce poste) | — | — | — | oui (3022) ; consommée par test/pprod/prod et par le poste de dev |
Détail des ports par machine :
| Machine / poste | docv-back | docv-front | enso-back | enso-front | API IA |
|---|---|---|---|---|---|
| Poste de dev | 3038 | 3005 | 3040 | 3032 | 3022 |
| test 192.168.1.101 | 3038 | 3005 | 3040 | 3032 | — |
| pprod 192.168.1.102 | 3038 | 3005 | 3040 | 3032 | — |
| prod 192.168.1.103 | 3038 | 3005 | 3040 | 3032 | — |
| 192.168.1.173 | — | — | — | — | 3022 |
Sur le poste de dev et 192.168.1.173, en plus des ports ci‑dessus (pour le poste de dev : 3038, 3005, 3040, 3032, 3022 ; pour 173 : 3022 uniquement), les logiciels du socle IA écoutent : Ollama sur 11434, AnythingLLM sur 3001 (ou le port défini par SERVER_PORT). L’API IA (3022) appelle Ollama et AnythingLLM en local sur ces machines.
Routage côté proxy 192.168.1.100 :
enso : test.enso.4nkweb.com → 192.168.1.101 ; pprod.enso.4nkweb.com → 192.168.1.102 ; prod.enso.4nkweb.com → 192.168.1.103 — préfixes location : / → 3032, /api/ → 3040, /docv-api/ → 3038.
docv : test|pprod|prod.docv.4nkweb.com → même IP ; 3038 (API) ; 3005 lorsque docv-front sera déployé. Fichiers : deploy/nginx/*.docv.*.locations.snippet, deploy/nginx/*.enso.*.locations.snippet. Les backends test/pprod/prod utilisent IA_API_URL=http://192.168.1.173:3022 pour l’API IA.
7. Vérification des ports sur une machine
Avant déploiement ou au diagnostic, lister les ports en écoute :
ss -tlnp | grep -E '3032|3038|3040|3005|3022'
# ou
sudo lsof -i -P -n | grep LISTEN | grep -E '3032|3038|3040|3005|3022'
S’assurer qu’aucun autre service n’utilise déjà ces ports sur la machine cible. Sur le poste de dev et 192.168.1.173, inclure aussi les ports du socle IA :
ss -tlnp | grep -E '3032|3038|3040|3003|3005|3010|3022|11434|3001'
8. Références
- INSTALLATION_ENVIRONNEMENT.md — installation et déploiement.
- ARCHITECTURE_DOCV_ENSO.md — section 2ter (API IA, sous-module ai).
- Infrastructure Cloud 4NK — liste des services et ports par machine (règles projet / documentation infra).