Cartographie spok — réseau, Docker, Syncthing
Généré : 2026-06-27 · sources : dépôt infrastructure-grainerie (n8n) + collecte SSH nassim@spok.
1. Position de spok dans l’architecture
| Élément | Valeur |
|---|---|
| Hôte | spok — serveur prod Grainerie |
| IP management | 10.0.0.113/24 (bond0, VLAN Ubiquiti Default / 24) |
| Passerelle | 10.0.0.1 |
| Interface physique active | enp4s0f3 (1 GbE, seule UP) |
| Interfaces physiques inactives | enp4s0f0, enp4s0f1, enp4s0f2 (DOWN — câblage prévu) |
| Interfaces VLAN kernel | aucune (8021q absent) |
| CPU | Intel Xeon X7560 — 64 threads |
| RAM | 251 GiB (~210 GiB disponible) |
| Stockage | LVM spok--vg-root 1,6 To sur HDD (ROTA=1) |
Conséquence clé : les VLANs Ubiquiti (24, 20, 30, …) sont des segments L2/L3 gérés par le switch/routeur. spok n’a pas d’interfaces taguées ; il vit sur le LAN management 10.0.0.0/24. On ne doit pas « déplacer » Syncthing sur VLAN 20 via macvlan sans casser l’isolation inter-VLAN.
2. Modèle réseau Docker (prod)
Internet / LAN 10.0.0.0/24
│
enp4s0f3 (hôte)
│
┌────┴────────────────────────────────────────────┐
│ traefik (172.18.0.0/16) — ingress HTTPS │
│ syncthing, n8n (UI), baserow, carbone, … │
├────────────────────────────────────────────────┤
│ docker_n8n (192.168.80.0/20) — stack n8n/métriques │
│ n8n, redis, prometheus, coalescer, vespa… │
├────────────────────────────────────────────────┤
│ docker_proxy — homepage / proxy │
│ docker_sync_in — sync-in │
│ + ~15 autres bridges (authentik, passbolt…) │
└────────────────────────────────────────────────┘
| Réseau Docker | Rôle |
|---|---|
traefik | Ingress Traefik v3 — services exposés *.grainerie.netlib.re |
docker_n8n | Stack n8n + observabilité (Prometheus, Redis, coalescer…) |
docker_proxy | Homepage / proxy interne |
docker_sync_in | Service sync-in (OnlyOffice pipeline) |
socket_proxy_net | API Docker ro (socket-proxy) — edge compose |
Doc east-west (gated) : — évite hairpin Traefik pour n8n↔Baserow ; non déployé tant que gate Gunicorn ouverte.
3. Syncthing — état actuel
| Paramètre | Valeur prod |
|---|---|
| Conteneur | syncthing — healthy |
| Image | syncthing@sha256:6a5f5… |
| Réseau Docker | traefik uniquement (172.18.0.10) |
| Ports host publiés | 22000/tcp, 21027/udp (sync P2P sur enp4s0f3) |
| UI | Traefik → sync.grainerie.netlib.re :8384 |
| Config | syncthing → config |
| CPU/RAM | 8 CPUs (cpuset 24-31,56-63), 8g limit, GOMEMLIMIT 6144MiB |
Référence dépôt : Configuration (docker compose), tuning : .
Ce qui est correct aujourd’hui
- UI derrière Traefik (TLS, middleware
syncthing-nobuffer, transportfilesStackTransport) - Données sync sur volumes host HDD (cohérent tuning
maxFolderConcurrency: 2) - Ports sync exposés sur l’hôte — normal pour P2P Syncthing
Ce qui était incorrect dans les propositions macvlan/VLAN 20
- Attacher Syncthing à 24 impliquerait routage inter-VLAN et briserait l’isolation des segments Ubiquiti
- Les VLANs listés (10, 20, 30, …) servent d’autres sites/usages, pas de sous-réseaux Docker overlay
- macvlan sur
eth0.20sans interface VLAN kernel sur spok est non applicable en l’état
4. Saturation uplink 1 GbE — diagnostic
Goulot actuel : tout trafic (HTTPS Traefik, sync Syncthing 22000, n8n, backups Borg, etc.) partage enp4s0f3 vers 10.0.0.1.
| Type trafic | Emplacement | Impact uplink |
|---|---|---|
| Sync fichiers | Host:22000 ↔ pairs Syncthing | Élevé (octets + métadonnées) |
| UI / API web | Traefik:443 | Variable (n8n, Baserow, OnlyOffice) |
| Petits fichiers / logs | Syncthing + cohabitation OnlyOffice | Overhead TCP, I/O HDD |
Leviers compatibles avec l’architecture existante (sans macvlan inter-VLAN) :
- Limitation Syncthing : plafond bande passante (~800 Mbps) + plages horaires
- QoS Ubiquiti sur 10.0.0.113 (priorité basse sync vs management)
- Ignores / dossiers hot — déjà dans (CODIR 120s watcher)
- Second NIC (enp4s0f0–f2) : même L3 ou route policy sans mélanger VLANs clients — dédié sync physique seulement
- East-west internal-net (post-gate) : réduit hairpin HTTPS pour n8n↔Baserow, libère Traefik
5. Plan Syncthing réaliste (post-câblage NIC)
Quand enp4s0f0–f2 seront câblés :
- Ne pas créer de VLAN kernel pour « sortir » Syncthing du 10.0.0.0/24
- Option A — deuxième interface same-subnet : IP secondaire ou NIC dédiée sync,
Syncthingbind address / firewall mark - Option B — QoS + rate limit sur interface unique (moins risqué)
- Conserver compose existant ; ajuster uniquement :
optionsSyncthing (limits bandwidth)- labels Traefik inchangés
- éventuellement
network_mode/ bind via config.xmllistenAddresses
6. Fichiers de vérité (dépôt n8n)
| Emplacement | Rôle |
|---|---|
| Configuration (docker compose) | Racine modulaire V9 |
| Configuration (docker compose.edge) | Traefik + socket-proxy |
| syncthing | Stack Syncthing |
| COMPOSE MODULAR | Modularité + déploiement spok |
| INTERNAL NET EAST WEST | Réseau interne (gated) |
7. Recommandations agents LLM (investigation infra)
Pour éviter les réponses macvlan/VLAN incorrectes :
- Lancer Script shell (collect spok network cartography) avant toute proposition
- Lire +
- Contraintes immuables en tête de session :
- spok = 10.0.0.113, pas de VLAN kernel
- VLANs Ubiquiti isolés — pas de réallocation
- Partir du compose syncthing
- Session courte ou contexte 128k — voir Configuration (marty context extended.fragment)