diff --git a/docs/_build/html/.doctrees/environment.pickle b/docs/_build/html/.doctrees/environment.pickle index 157c960..1451346 100644 Binary files a/docs/_build/html/.doctrees/environment.pickle and b/docs/_build/html/.doctrees/environment.pickle differ diff --git a/docs/_build/html/.doctrees/infrastructure.doctree b/docs/_build/html/.doctrees/infrastructure.doctree index 949bede..90677b7 100644 Binary files a/docs/_build/html/.doctrees/infrastructure.doctree and b/docs/_build/html/.doctrees/infrastructure.doctree differ diff --git a/docs/_build/html/_sources/infrastructure.rst.txt b/docs/_build/html/_sources/infrastructure.rst.txt index 2e3cc58..ea9738d 100644 --- a/docs/_build/html/_sources/infrastructure.rst.txt +++ b/docs/_build/html/_sources/infrastructure.rst.txt @@ -6,49 +6,68 @@ Réseau LAN — 192.168.0.0/24 .. code-block:: text - ┌─────────────────────────────────────────────────────────┐ - │ LAN 192.168.0.0/24 │ - │ │ - │ .82 CORE Dispatcher (systemd) + FastAPI :3849 │ - │ Gitea + Grafana + InfluxDB + Caddy │ - │ │ - │ .84 ml-stack GPU worker RTX 3090 24GB │ - │ .87 gpu GPU worker RTX 3060 12GB │ - │ │ - │ .168 z620 Proxmox host HP Z620 │ - │ SSD → /mnt/portablessd (MP4 bruts) │ - └─────────────────────────────────────────────────────────┘ + ┌───────────────────────────────────────────────────────────────┐ + │ LAN 192.168.0.0/24 │ + │ │ + │ .82 CORE Gitea + Grafana + InfluxDB + Caddy │ + │ Reverse-proxy → cosma-vm pour /cosma-qc │ + │ │ + │ .83 cosma-vm Dispatcher cosma-qc (systemd) │ + │ Dashboard FastAPI :3849 │ + │ OpenVPN server :1194 UDP │ + │ │ + │ .84 ml-stack GPU worker RTX 3090 24GB │ + │ .87 gpu GPU worker RTX 3060 12GB │ + │ │ + │ .168 z620 Proxmox host HP Z620 — SSD MP4 bruts │ + │ .101 poxML Proxmox hyperviseur — héberge cosma-vm (VM 202)│ + └───────────────────────────────────────────────────────────────┘ -Nœud core (.82) ----------------- +Nœud cosma-vm (.83) — serveur principal cosma-qc +-------------------------------------------------- -**Rôle :** orchestrateur central du pipeline. +VM #202 sur Proxmox poxML (.101). 4 vCPU, 4 GB RAM, 40 GB SSD. +User : ``cosma`` (avec docker group et sudo). -Services actifs : +Services : -- **Dispatcher** — service systemd cosma-qc-dispatcher. - Boucle principale qui dispatch les jobs aux workers GPU. +- **Dispatcher** — ``cosma-qc-dispatcher.service`` (systemd) + Lance les extractions ffmpeg sur les workers GPU. -- **Dashboard FastAPI** — conteneur Docker exposé sur le port **3849**. - Interface web de monitoring des jobs. +- **Dashboard FastAPI** — conteneur Docker ``cosma-qc-app``, port **3849**. + Accès via Caddy sur core : ``http://192.168.0.82/cosma-qc`` -- **Gitea** — dépôt source floppyrj45/cosma-qc. - -- **Grafana / InfluxDB** — monitoring infrastructure. +- **OpenVPN** — ``openvpn-server@cosma.service``, port 1194 UDP. + Permet aux collègues daccéder au LAN depuis lextérieur. Commandes utiles : .. code-block:: bash + # SSH vers cosma-vm + ssh cosma@192.168.0.83 + # Statut dispatcher sudo systemctl status cosma-qc-dispatcher - # Logs dispatcher temps réel - sudo journalctl -u cosma-qc-dispatcher -f + # Logs dispatcher + tail -f /home/cosma/cosma-qc-data/dispatcher.log - # Dashboard - http://192.168.0.82:3849 + # Dashboard local + http://192.168.0.83:3849 + + +Nœud core (.82) +---------------- + +**Rôle :** routeur et services communs. + +Services actifs : + +- **Caddy** — reverse proxy HTTPS, route ``/cosma-qc`` vers .83:3849. +- **Gitea** — dépôt source ``floppyrj45/cosma-qc``. +- **Grafana / InfluxDB** — monitoring infrastructure. Nœuds GPU workers (.84 et .87) @@ -59,7 +78,7 @@ Nœuds GPU workers (.84 et .87) :widths: 15 25 20 40 * - IP - - Nom + - Nom SSH - GPU - VRAM * - .84 @@ -71,83 +90,46 @@ Nœuds GPU workers (.84 et .87) - RTX 3060 - 12 GB -**Rôle :** exécution de ffmpeg (extraction frames) et lingbot-map (reconstruction 3D). - -Répertoire de travail sur chaque worker : +**Rôle :** exécution de ffmpeg et lingbot-map. .. code-block:: text /cosma-qc-frames/ - ├── job_1/ - │ ├── frame_000001.jpg … frame_NNNNNN.jpg - │ ├── .video_0.done - │ ├── reconstruction.ply - │ └── reconstruction.glb (généré à la demande) - ├── job_2/ - │ └── … - └── stitch_1.ply + └── job_N/ + ├── frame_NNNNNN.jpg + ├── .video_V.done + ├── reconstruction.ply + └── reconstruction.glb -Nœud z620 (.168) ------------------ +Nœud z620 (.168) — stockage MP4 +---------------------------------- -**Rôle :** stockage des MP4 bruts GoPro. +HP Z620 (Proxmox). SSD /mnt/portablessd avec les MP4 GoPro bruts. +Les MP4 **ne quittent jamais** z620 — ffmpeg sy exécute via SSH-relay. -- Proxmox host HP Z620. -- SSD monté sur /mnt/portablessd. -- Les MP4 **ne quittent jamais** z620 — ffmpeg s'y exécute via SSH. - -Accès SSH depuis core : +SSH relay (depuis cosma-vm ou core) : .. code-block:: bash - ssh floppyrj45@192.168.0.168 + ssh ml-stack "ssh z620 \\"commande\\"" -Service systemd dispatcher ---------------------------- +OpenVPN — accès collègues +-------------------------- -Fichier de service : /etc/systemd/system/cosma-qc-dispatcher.service +Serveur OpenVPN sur cosma-vm (.83:1194 UDP). +Adresse externe : ``laboratoire.freeboxos.fr:1194`` -.. code-block:: ini +Profil client : ``cosma-qc-collegue1.ovpn`` (Nextcloud sync). - [Unit] - Description=COSMA QC Dispatcher - After=network.target - - [Service] - User=floppyrj45 - WorkingDirectory=/home/floppyrj45/docker/cosma-qc - ExecStart=/usr/bin/python3 app/dispatcher.py - Restart=on-failure - RestartSec=10 - - [Install] - WantedBy=multi-user.target - -Commandes de gestion : +Génération dun nouveau client : .. code-block:: bash - sudo systemctl start cosma-qc-dispatcher - sudo systemctl stop cosma-qc-dispatcher - sudo systemctl restart cosma-qc-dispatcher - sudo systemctl enable cosma-qc-dispatcher # démarrage auto - - -Conteneur Docker dashboard ---------------------------- - -Le dashboard FastAPI tourne dans un conteneur Docker. - -.. code-block:: bash - - cd /home/floppyrj45/docker/cosma-qc - docker compose up -d # démarrer - docker compose down # arrêter - docker compose logs -f # logs - -Accès : http://192.168.0.82:3849 + cd /home/cosma/openvpn-ca/easyrsa3 + ./easyrsa gen-req NOMCLIENT nopass + ./easyrsa sign-req client NOMCLIENT Ports réseau récapitulatifs @@ -160,12 +142,16 @@ Ports réseau récapitulatifs * - Host - Port - Service - * - .82 + * - .83 - 3849 - Dashboard FastAPI cosma-qc + * - .83 + - 1194/udp + - OpenVPN server * - .84 / .87 - 8100+N - - Viser viewer (reconstruction job N) + - Viser viewer (job N) * - .84 / .87 - 8300 - - HTTP server GLB export + - HTTP server GLB/PLY export + diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index 2841519..8c92129 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -93,11 +93,11 @@
┌─────────────────────────────────────────────────────────┐
-│ LAN 192.168.0.0/24 │
-│ │
-│ .82 CORE Dispatcher (systemd) + FastAPI :3849 │
-│ Gitea + Grafana + InfluxDB + Caddy │
-│ │
-│ .84 ml-stack GPU worker RTX 3090 24GB │
-│ .87 gpu GPU worker RTX 3060 12GB │
-│ │
-│ .168 z620 Proxmox host HP Z620 │
-│ SSD → /mnt/portablessd (MP4 bruts) │
-└─────────────────────────────────────────────────────────┘
+┌───────────────────────────────────────────────────────────────┐
+│ LAN 192.168.0.0/24 │
+│ │
+│ .82 CORE Gitea + Grafana + InfluxDB + Caddy │
+│ Reverse-proxy → cosma-vm pour /cosma-qc │
+│ │
+│ .83 cosma-vm Dispatcher cosma-qc (systemd) │
+│ Dashboard FastAPI :3849 │
+│ OpenVPN server :1194 UDP │
+│ │
+│ .84 ml-stack GPU worker RTX 3090 24GB │
+│ .87 gpu GPU worker RTX 3060 12GB │
+│ │
+│ .168 z620 Proxmox host HP Z620 — SSD MP4 bruts │
+│ .101 poxML Proxmox hyperviseur — héberge cosma-vm (VM 202)│
+└───────────────────────────────────────────────────────────────┘
+
+
+
+
+Nœud cosma-vm (.83) — serveur principal cosma-qc
+VM #202 sur Proxmox poxML (.101). 4 vCPU, 4 GB RAM, 40 GB SSD.
+User : cosma (avec docker group et sudo).
+Services :
+
+Dispatcher — cosma-qc-dispatcher.service (systemd)
+Lance les extractions ffmpeg sur les workers GPU.
+Dashboard FastAPI — conteneur Docker cosma-qc-app, port 3849.
+Accès via Caddy sur core : http://192.168.0.82/cosma-qc
+OpenVPN — openvpn-server@cosma.service, port 1194 UDP.
+Permet aux collègues daccéder au LAN depuis lextérieur.
+
+Commandes utiles :
+# SSH vers cosma-vm
+ssh cosma@192.168.0.83
+
+# Statut dispatcher
+sudo systemctl status cosma-qc-dispatcher
+
+# Logs dispatcher
+tail -f /home/cosma/cosma-qc-data/dispatcher.log
+
+# Dashboard local
+http://192.168.0.83:3849
Nœud core (.82)
-Rôle : orchestrateur central du pipeline.
+Rôle : routeur et services communs.
Services actifs :
-Dispatcher — service systemd cosma-qc-dispatcher.
-Boucle principale qui dispatch les jobs aux workers GPU.
-Dashboard FastAPI — conteneur Docker exposé sur le port 3849.
-Interface web de monitoring des jobs.
-Gitea — dépôt source floppyrj45/cosma-qc.
+Caddy — reverse proxy HTTPS, route /cosma-qc vers .83:3849.
+Gitea — dépôt source floppyrj45/cosma-qc.
Grafana / InfluxDB — monitoring infrastructure.
-Commandes utiles :
-# Statut dispatcher
-sudo systemctl status cosma-qc-dispatcher
-
-# Logs dispatcher temps réel
-sudo journalctl -u cosma-qc-dispatcher -f
-
-# Dashboard
-http://192.168.0.82:3849
-
-
Nœuds GPU workers (.84 et .87)
@@ -137,7 +155,7 @@ http://192.168.0.82:3849
IP
-Nom
+Nom SSH
GPU
VRAM
@@ -155,69 +173,36 @@ http://192.168.0.82:3849
-Rôle : exécution de ffmpeg (extraction frames) et lingbot-map (reconstruction 3D).
-Répertoire de travail sur chaque worker :
+Rôle : exécution de ffmpeg et lingbot-map.
/cosma-qc-frames/
-├── job_1/
-│ ├── frame_000001.jpg … frame_NNNNNN.jpg
-│ ├── .video_0.done
-│ ├── reconstruction.ply
-│ └── reconstruction.glb (généré à la demande)
-├── job_2/
-│ └── …
-└── stitch_1.ply
+└── job_N/
+ ├── frame_NNNNNN.jpg
+ ├── .video_V.done
+ ├── reconstruction.ply
+ └── reconstruction.glb
-
-Nœud z620 (.168)
-Rôle : stockage des MP4 bruts GoPro.
-
-Proxmox host HP Z620.
-SSD monté sur /mnt/portablessd.
-Les MP4 ne quittent jamais z620 — ffmpeg s’y exécute via SSH.
-
-Accès SSH depuis core :
-ssh floppyrj45@192.168.0.168
+
+Nœud z620 (.168) — stockage MP4
+HP Z620 (Proxmox). SSD /mnt/portablessd avec les MP4 GoPro bruts.
+Les MP4 ne quittent jamais z620 — ffmpeg sy exécute via SSH-relay.
+SSH relay (depuis cosma-vm ou core) :
+ssh ml-stack "ssh z620 \\"commande\\""
-
-Service systemd dispatcher
-Fichier de service : /etc/systemd/system/cosma-qc-dispatcher.service
-[Unit]
-Description=COSMA QC Dispatcher
-After=network.target
-
-[Service]
-User=floppyrj45
-WorkingDirectory=/home/floppyrj45/docker/cosma-qc
-ExecStart=/usr/bin/python3 app/dispatcher.py
-Restart=on-failure
-RestartSec=10
-
-[Install]
-WantedBy=multi-user.target
+
+OpenVPN — accès collègues
+Serveur OpenVPN sur cosma-vm (.83:1194 UDP).
+Adresse externe : laboratoire.freeboxos.fr:1194
+Profil client : cosma-qc-collegue1.ovpn (Nextcloud sync).
+Génération dun nouveau client :
+cd /home/cosma/openvpn-ca/easyrsa3
+./easyrsa gen-req NOMCLIENT nopass
+./easyrsa sign-req client NOMCLIENT
-Commandes de gestion :
-sudo systemctl start cosma-qc-dispatcher
-sudo systemctl stop cosma-qc-dispatcher
-sudo systemctl restart cosma-qc-dispatcher
-sudo systemctl enable cosma-qc-dispatcher # démarrage auto
-
-
-
-
-Conteneur Docker dashboard
-Le dashboard FastAPI tourne dans un conteneur Docker.
-cd /home/floppyrj45/docker/cosma-qc
-docker compose up -d # démarrer
-docker compose down # arrêter
-docker compose logs -f # logs
-
-
-Accès : http://192.168.0.82:3849
Ports réseau récapitulatifs
@@ -234,17 +219,21 @@ docker compose logs
-.82
+.83
3849
Dashboard FastAPI cosma-qc
-.84 / .87
-8100+N
-Viser viewer (reconstruction job N)
+.83
+1194/udp
+OpenVPN server
.84 / .87
+8100+N
+Viser viewer (job N)
+
+.84 / .87
8300
-HTTP server GLB export
+HTTP server GLB/PLY export
diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js
index af5f5e7..474e2bc 100644
--- a/docs/_build/html/searchindex.js
+++ b/docs/_build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"Base de donn\u00e9es":[[4,"base-de-donnees"]],"Budget disque observ\u00e9":[[0,"budget-disque-observe"]],"Conteneur Docker dashboard":[[2,"conteneur-docker-dashboard"]],"Contenu":[[1,null]],"Dashboard web":[[4,"dashboard-web"]],"Donn\u00e9es \u2014 Stockage et budget disque":[[0,null]],"Export GLB":[[0,"export-glb"]],"Flux de donn\u00e9es global":[[3,"flux-de-donnees-global"]],"Frames JPEG":[[0,"frames-jpeg"]],"Infrastructure":[[2,null]],"Ing\u00e9rer une nouvelle acquisition":[[4,"ingerer-une-nouvelle-acquisition"]],"Logs dispatcher":[[4,"logs-dispatcher"]],"N\u0153ud core (.82)":[[2,"noeud-core-82"]],"N\u0153ud z620 (.168)":[[2,"noeud-z620-168"]],"N\u0153uds GPU workers (.84 et .87)":[[2,"noeuds-gpu-workers-84-et-87"]],"O\u00f9 sont stock\u00e9es les donn\u00e9es":[[0,"ou-sont-stockees-les-donnees"]],"PLY interm\u00e9diaires":[[0,"ply-intermediaires"]],"Pipeline cosma-qc":[[3,null]],"Politique de nettoyage":[[0,"politique-de-nettoyage"]],"Ports r\u00e9seau r\u00e9capitulatifs":[[2,"ports-reseau-recapitulatifs"]],"Red\u00e9marrer le pipeline complet":[[4,"redemarrer-le-pipeline-complet"]],"Relancer un job \u00e9chou\u00e9":[[4,"relancer-un-job-echoue"]],"Reprise sur crash \u2014 marqueurs .done":[[0,"reprise-sur-crash-marqueurs-done"]],"R\u00e9seau LAN \u2014 192.168.0.0/24":[[2,"reseau-lan-192-168-0-0-24"]],"Service systemd dispatcher":[[2,"service-systemd-dispatcher"]],"Statuts de jobs":[[3,"statuts-de-jobs"]],"Surveiller les jobs":[[4,"surveiller-les-jobs"]],"T\u00e9l\u00e9charger un GLB":[[4,"telecharger-un-glb"]],"Utilisation":[[4,null]],"Visualiser un nuage de points PLY":[[4,"visualiser-un-nuage-de-points-ply"]],"Vue d\u2019ensemble":[[3,"vue-d-ensemble"]],"V\u00e9rification espace disque":[[0,"verification-espace-disque"]],"V\u00e9rifications rapides post-mission":[[4,"verifications-rapides-post-mission"]],"cosma-qc \u2014 Documentation":[[1,null]],"\u00c9tape 1 \u2014 Ingest":[[3,"etape-1-ingest"]],"\u00c9tape 2 \u2014 Extraction des frames":[[3,"etape-2-extraction-des-frames"]],"\u00c9tape 3 \u2014 Reconstruction 3D":[[3,"etape-3-reconstruction-3d"]],"\u00c9tape 4 \u2014 Stitch par AUV":[[3,"etape-4-stitch-par-auv"]],"\u00c9tape 5 \u2014 Stitch cross-AUV":[[3,"etape-5-stitch-cross-auv"]],"\u00c9tape 6 \u2014 Export GLB (\u00e0 la demande)":[[3,"etape-6-export-glb-a-la-demande"]]},"docnames":["data","index","infrastructure","pipeline","usage"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["data.rst","index.rst","infrastructure.rst","pipeline.rst","usage.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"06d":3,"12gb":2,"1920x1080":0,"24gb":2,"3d":[1,2],"5_000_000":0,"5m":0,"After":2,"BY":4,"FROM":4,"WHERE":4,"absolu":3,"acc\u00e8":2,"acc\u00e9der":4,"acquis":3,"acquisit":1,"actif":2,"adapt\u00e9":3,"affich":4,"align":3,"all\u00e9g\u00e9":0,"api":[0,4],"app":2,"apr\u00e8":[0,3,4],"arr\u00eater":[2,4],"assign\u00e9":4,"assur":4,"attendr":4,"attent":3,"au":[3,4],"auto":2,"automatiqu":[0,3,4],"auv":[0,1,4],"auv009":4,"aux":2,"avant":0,"avec":[0,3,4],"base":[0,3],"bin":2,"boucl":2,"bruit":3,"brut":[0,2,3],"brute":3,"budget":1,"c":4,"caddi":2,"calcul":0,"cam\u00e9ra":3,"cas":[0,3],"cd":[2,4],"ce":3,"central":2,"chacun":0,"chaqu":[0,2,3,4],"charg":4,"chemin":3,"choic":0,"ciel":3,"close":4,"cloudcompar":4,"color":0,"command":2,"complet":1,"compl\u00e8t":[0,4],"compos":[2,4],"concern\u00e9":4,"conn":4,"connect":4,"conserv":0,"conserv\u00e9":0,"consommateur":0,"conteneur":1,"contr\u00f4l":1,"convers":3,"copi":3,"copier":4,"copi\u00e9":0,"core":[1,3,4],"cosma":[0,2,4],"count":4,"cour":[3,4],"crash":[1,3],"creat":3,"created_at":3,"cross":1,"cross_auv":3,"cr\u00e9\u00e9":3,"cr\u00e9\u00e9s":4,"curl":[0,4],"cycl":4,"d":[0,1,2,4],"dan":[2,3,4],"dashboard":[0,1],"db":[3,4],"de":[1,2],"demand":[0,1,2],"demo":3,"dens":3,"densit\u00e9":0,"depui":[0,2,3,4],"derni\u00e8r":4,"des":[0,1,2,4],"descript":[2,3],"dessus":3,"deux":3,"df":[0,4],"direct":3,"directori":[0,3,4],"dispatch":[1,3],"dispon":3,"disqu":[1,4],"do_extract":3,"do_reconstruct":3,"do_stitch_cross_auv":3,"do_stitch_per_auv":3,"docker":[1,4],"doit":4,"done":[1,2,3,4],"donn\u00e9":1,"dont":3,"drone":[1,3],"du":[0,2,3,4],"d\u00e9clenchement":3,"d\u00e9j\u00e0":[0,3],"d\u00e9marrag":2,"d\u00e9marrer":[2,4],"d\u00e9marr\u00e9":3,"d\u00e9pass":3,"d\u00e9pend":0,"d\u00e9p\u00f4t":2,"d\u00e9tient":3,"eau":3,"emplac":0,"en":[0,3,4],"enabl":2,"ensembl":1,"entr":3,"entr\u00e9":[0,3],"erreur":[3,4],"error":4,"espac":4,"est":[0,3],"et":[1,3,4],"etc":[2,4],"execstart":2,"execut":4,"export":[1,2],"export_glb":[0,4],"expos\u00e9":2,"extract":[0,1,2,4],"extrait":0,"ex\u00e9cut":[2,3],"f":[0,2,4],"fail":[3,4],"failur":2,"fals":0,"fastapi":2,"ffmpeg":[2,3],"fichier":[0,2,3],"file":3,"filtr":3,"filtrer":4,"fin":4,"final":[0,3],"floppyrj45":[0,2,4],"flux":1,"foi":0,"fonction":3,"forcer":[0,4],"form":3,"fps":[0,3],"frame":[1,2,4],"frame_":[0,3],"frame_000001":2,"frame_nnnnnn":2,"frames_dir":3,"fusion":[0,3],"gb":[0,2],"gestion":2,"gitea":2,"glb":[1,2],"global":[0,1,4],"gopro":[0,2,3,4],"gpu":[1,3],"grafana":2,"grep":4,"group\u00e9":3,"gx":3,"gxxx":3,"g\u00e9n\u00e8re":0,"g\u00e9n\u00e9ration":[0,4],"g\u00e9n\u00e9rer":4,"g\u00e9n\u00e9r\u00e9":[0,2],"h":[0,4],"head":0,"heuristiqu":3,"home":[2,4],"hor":[0,3],"host":2,"hp":2,"http":[0,2,3,4],"http8300":4,"id":[0,3,4],"idx":0,"ignor\u00e9":3,"il":4,"import":[0,4],"indiqu":3,"influxdb":2,"infrastructur":1,"ingest":[1,4],"ing\u00e9rer":1,"input":3,"instal":2,"intact":0,"integ":3,"inter":3,"interfac":2,"ip":2,"jamai":[0,2,3],"job":[0,1,2],"job_":[0,3,4],"job_1":2,"job_2":2,"job_21":0,"job_id":[0,3,4],"journalctl":[2,4],"jpeg":3,"jpg":[0,2,3],"json":3,"jusqu":3,"key":3,"l":[0,3,4],"la":[0,1,2,4],"lan":1,"lancer":[0,4],"lanc\u00e9":[3,4],"le":[0,1,2,3],"len":0,"les":[1,2,3],"lh":[0,4],"lien":4,"lign":[0,4],"lingbot":[2,3],"list":3,"load":0,"log":[2,3],"logiqu":3,"lorsqu":3,"ls":[0,4],"luminosit\u00e9":3,"m":[0,3,4],"manuell":0,"map":[2,3],"marin":[1,3],"marqueur":[1,3,4],"mb":0,"million":3,"min":0,"minim":3,"minut":[3,4],"mission":[0,1],"ml":2,"mnt":[0,2,3,4],"monitor":2,"mont\u00e9":2,"moyenn":3,"mp4":[0,2,3,4],"multi":2,"m\u00eame":3,"n":[0,2,3,4],"navigateur":3,"navigu":[3,4],"ne":[0,2,3],"nettoyag":1,"network":2,"nohup":4,"nom":2,"nouveau":3,"nouvell":1,"np":0,"nuag":[0,1,3],"null":4,"numpi":0,"num\u00e9ro":[3,4],"n\u00e9cessair":4,"n\u0153ud":1,"observ\u00e9":1,"ok":4,"op\u00e9rat":3,"orchestrateur":2,"order":4,"ou":[3,4],"outil":3,"ouvrir":4,"o\u00f9":1,"par":[0,1,4],"param\u00e8tr":3,"particularit\u00e9":3,"pas":3,"path":[3,4],"pc":[0,3,4],"pend":[3,4],"pendant":[3,4],"per_auv":[0,3],"permettr":0,"peut":4,"peuvent":0,"pipelin":[1,2],"pkill":4,"pli":[1,2,3],"point":[0,1,3],"pointcloud":0,"politiqu":1,"port":[1,3],"portablessd":[0,2,3,4],"post":[0,1],"pour":[0,1,3,4],"prend":4,"prendr":4,"primari":3,"principal":2,"print":4,"prochain":4,"produir":3,"progress":4,"proxmox":2,"pr\u00e9sent":4,"py":[2,3,4],"python3":[0,2,3,4],"q":3,"qc":[0,2,4],"qualit\u00e9":1,"quand":3,"que":[0,3,4],"quelqu":4,"qui":[2,3],"quittent":[0,2,3],"random":0,"rapid":1,"reconstruct":[0,1,2,4],"red\u00e9marr":1,"red\u00e9marrag":3,"regroup":3,"relanc":1,"remarqu":0,"remettr":4,"remplac":4,"replac":0,"reprend":4,"repris":[1,3],"restart":[2,4],"restartsec":2,"retourn":4,"rf":0,"rh":0,"rm":[0,4],"row":4,"rtx":2,"run":[3,4],"r\u00e9":[0,4],"r\u00e9capitulatif":1,"r\u00e9duit":3,"r\u00e9el":[2,3,4],"r\u00e9pertoir":[2,3],"r\u00e9seau":[1,3],"r\u00f4le":[2,3],"s":[2,3,4],"saut":0,"sauvegard\u00e9":0,"scale":3,"scanner":3,"scp":4,"script":[3,4],"sc\u00e8ne":0,"segment":[0,3,4],"select":4,"selon":4,"server":[0,2,3,4],"serveur":[0,3,4],"servic":1,"set":4,"seuil":3,"seul":3,"sh":0,"si":[3,4],"somm":0,"sont":[1,3,4],"sort":0,"sorti":3,"sourc":[2,3],"sous":[1,3],"sqlite":3,"sqlite3":4,"ssd":[2,3,4],"ssh":[0,2,3,4],"stack":2,"start":[2,4],"status":[2,3,4],"statut":[1,2,4],"stitch":[0,1],"stitch_":[0,3],"stitch_1":2,"stitch_glob":[0,3],"stockag":[1,2],"stock\u00e9":[1,3],"stop":[2,4],"structur":3,"sub":0,"succ\u00e8":0,"sudo":[2,4],"suppress":0,"supprim":[0,4],"supprim\u00e9":[0,3],"sur":[1,2,3,4],"surfac":3,"surveil":1,"system":2,"systemctl":[2,4],"systemd":1,"tabl":3,"taill":[0,4],"target":2,"temp":[2,3,4],"temporel":3,"termin\u00e9":3,"text":3,"timestamp":3,"tmp":4,"top":0,"total":0,"tourn":2,"tous":[0,3,4],"tout":0,"trait":3,"traitement":3,"trait\u00e9":[0,3],"travail":2,"trimesh":[0,3],"type":0,"typiqu":0,"t\u00e9l\u00e9chargement":[0,3,4],"t\u00e9l\u00e9charger":[0,1,3],"t\u00e9l\u00e9charg\u00e9":4,"u":[2,4],"un":[0,1,2,3],"une":[0,1],"uniqu":0,"unit":2,"updat":4,"updated_at":[3,4],"user":2,"usr":2,"util":2,"utilis":1,"v":3,"valid":0,"valid\u00e9":[0,3],"variabl":0,"ver":[3,4],"version":0,"vertic":0,"vf":3,"via":[0,2,3,4],"video_":[0,4],"video_0":[0,2],"video_1":0,"video_n":3,"vid\u00e9o":[0,1,3],"viewer":[2,3,4],"viser":[2,3,4],"visualis":[0,1,3],"visuel":0,"voir":3,"voyag":3,"vram":2,"vue":1,"v\u00e9rific":1,"v\u00e9rifier":[0,4],"wantedbi":2,"web":[0,2,3],"wget":[0,3,4],"worker":[0,1,3,4],"worker_frames_dir":3,"worker_ip":3,"workingdirectori":2,"x":[0,4],"y":2,"yml":4,"z620":[0,1,3,4],"\u00e0":[0,1,2,4],"\u00e9cart":3,"\u00e9chantillonnag":3,"\u00e9chou\u00e9":1,"\u00e9crire":3,"\u00e9tape":1,"\u00e9tat":4,"\u00eatre":0},"titles":["Donn\u00e9es \u2014 Stockage et budget disque","cosma-qc \u2014 Documentation","Infrastructure","Pipeline cosma-qc","Utilisation"],"titleterms":{"3d":3,"acquisit":4,"auv":3,"base":4,"budget":0,"complet":4,"conteneur":2,"contenu":1,"core":2,"cosma":[1,3],"crash":0,"cross":3,"d":3,"dashboard":[2,4],"de":[0,3,4],"demand":3,"des":3,"dispatch":[2,4],"disqu":0,"docker":2,"document":1,"done":0,"donn\u00e9":[0,3,4],"ensembl":3,"espac":0,"et":[0,2],"export":[0,3],"extract":3,"flux":3,"frame":[0,3],"glb":[0,3,4],"global":3,"gpu":2,"infrastructur":2,"ingest":3,"ing\u00e9rer":4,"interm\u00e9diair":0,"job":[3,4],"jpeg":0,"la":3,"lan":2,"le":4,"les":[0,4],"log":4,"marqueur":0,"mission":4,"nettoyag":0,"nouvell":4,"nuag":4,"n\u0153ud":2,"observ\u00e9":0,"o\u00f9":0,"par":3,"pipelin":[3,4],"pli":[0,4],"point":4,"politiqu":0,"port":2,"post":4,"qc":[1,3],"rapid":4,"reconstruct":3,"red\u00e9marr":4,"relanc":4,"repris":0,"r\u00e9capitulatif":2,"r\u00e9seau":2,"servic":2,"sont":0,"statut":3,"stitch":3,"stockag":0,"stock\u00e9":0,"sur":0,"surveil":4,"systemd":2,"t\u00e9l\u00e9charger":4,"un":4,"une":4,"utilis":4,"visualis":4,"vue":3,"v\u00e9rific":[0,4],"web":4,"worker":2,"z620":2,"\u00e0":3,"\u00e9chou\u00e9":4,"\u00e9tape":3}})
\ No newline at end of file
+Search.setIndex({"alltitles":{"Base de donn\u00e9es":[[4,"base-de-donnees"]],"Budget disque observ\u00e9":[[0,"budget-disque-observe"]],"Contenu":[[1,null]],"Dashboard web":[[4,"dashboard-web"]],"Donn\u00e9es \u2014 Stockage et budget disque":[[0,null]],"Export GLB":[[0,"export-glb"]],"Flux de donn\u00e9es global":[[3,"flux-de-donnees-global"]],"Frames JPEG":[[0,"frames-jpeg"]],"Infrastructure":[[2,null]],"Ing\u00e9rer une nouvelle acquisition":[[4,"ingerer-une-nouvelle-acquisition"]],"Logs dispatcher":[[4,"logs-dispatcher"]],"N\u0153ud core (.82)":[[2,"noeud-core-82"]],"N\u0153ud cosma-vm (.83) \u2014 serveur principal cosma-qc":[[2,"noeud-cosma-vm-83-serveur-principal-cosma-qc"]],"N\u0153ud z620 (.168) \u2014 stockage MP4":[[2,"noeud-z620-168-stockage-mp4"]],"N\u0153uds GPU workers (.84 et .87)":[[2,"noeuds-gpu-workers-84-et-87"]],"OpenVPN \u2014 acc\u00e8s coll\u00e8gues":[[2,"openvpn-acces-collegues"]],"O\u00f9 sont stock\u00e9es les donn\u00e9es":[[0,"ou-sont-stockees-les-donnees"]],"PLY interm\u00e9diaires":[[0,"ply-intermediaires"]],"Pipeline cosma-qc":[[3,null]],"Politique de nettoyage":[[0,"politique-de-nettoyage"]],"Ports r\u00e9seau r\u00e9capitulatifs":[[2,"ports-reseau-recapitulatifs"]],"Red\u00e9marrer le pipeline complet":[[4,"redemarrer-le-pipeline-complet"]],"Relancer un job \u00e9chou\u00e9":[[4,"relancer-un-job-echoue"]],"Reprise sur crash \u2014 marqueurs .done":[[0,"reprise-sur-crash-marqueurs-done"]],"R\u00e9seau LAN \u2014 192.168.0.0/24":[[2,"reseau-lan-192-168-0-0-24"]],"Statuts de jobs":[[3,"statuts-de-jobs"]],"Surveiller les jobs":[[4,"surveiller-les-jobs"]],"T\u00e9l\u00e9charger un GLB":[[4,"telecharger-un-glb"]],"Utilisation":[[4,null]],"Visualiser un nuage de points PLY":[[4,"visualiser-un-nuage-de-points-ply"]],"Vue d\u2019ensemble":[[3,"vue-d-ensemble"]],"V\u00e9rification espace disque":[[0,"verification-espace-disque"]],"V\u00e9rifications rapides post-mission":[[4,"verifications-rapides-post-mission"]],"cosma-qc \u2014 Documentation":[[1,null]],"\u00c9tape 1 \u2014 Ingest":[[3,"etape-1-ingest"]],"\u00c9tape 2 \u2014 Extraction des frames":[[3,"etape-2-extraction-des-frames"]],"\u00c9tape 3 \u2014 Reconstruction 3D":[[3,"etape-3-reconstruction-3d"]],"\u00c9tape 4 \u2014 Stitch par AUV":[[3,"etape-4-stitch-par-auv"]],"\u00c9tape 5 \u2014 Stitch cross-AUV":[[3,"etape-5-stitch-cross-auv"]],"\u00c9tape 6 \u2014 Export GLB (\u00e0 la demande)":[[3,"etape-6-export-glb-a-la-demande"]]},"docnames":["data","index","infrastructure","pipeline","usage"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["data.rst","index.rst","infrastructure.rst","pipeline.rst","usage.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"06d":3,"12gb":2,"1920x1080":0,"24gb":2,"3d":1,"5_000_000":0,"5m":0,"After":[],"BY":4,"FROM":4,"WHERE":4,"absolu":3,"acc\u00e8":1,"acc\u00e9der":4,"acquis":3,"acquisit":1,"actif":2,"adapt\u00e9":3,"adress":2,"affich":4,"align":3,"all\u00e9g\u00e9":0,"api":[0,4],"app":2,"apr\u00e8":[0,3,4],"arr\u00eater":4,"assign\u00e9":4,"assur":4,"attendr":4,"attent":3,"au":[2,3,4],"auto":[],"automatiqu":[0,3,4],"auv":[0,1,4],"auv009":4,"aux":2,"avant":0,"avec":[0,2,3,4],"base":[0,3],"bin":[],"boucl":[],"bruit":3,"brut":[0,2,3],"brute":3,"budget":1,"c":4,"ca":2,"caddi":2,"calcul":0,"cam\u00e9ra":3,"cas":[0,3],"cd":[2,4],"ce":3,"central":[],"chacun":0,"chaqu":[0,3,4],"charg":4,"chemin":3,"choic":0,"ciel":3,"client":2,"close":4,"cloudcompar":4,"collegue1":2,"coll\u00e8gu":1,"color":0,"command":2,"commun":2,"complet":1,"compl\u00e8t":[0,4],"compos":4,"concern\u00e9":4,"conn":4,"connect":4,"conserv":0,"conserv\u00e9":0,"consommateur":0,"conteneur":2,"contr\u00f4l":1,"convers":3,"copi":3,"copier":4,"copi\u00e9":0,"core":[1,3,4],"cosma":[0,4],"count":4,"cour":[3,4],"crash":[1,3],"creat":3,"created_at":3,"cross":1,"cross_auv":3,"cr\u00e9\u00e9":3,"cr\u00e9\u00e9s":4,"curl":[0,4],"cycl":4,"d":[0,1,4],"dacc\u00e9der":2,"dan":[3,4],"dashboard":[0,2],"data":2,"db":[3,4],"de":[1,2],"demand":[0,1],"demo":3,"dens":3,"densit\u00e9":0,"depui":[0,2,3,4],"derni\u00e8r":4,"des":[0,1,4],"descript":3,"dessus":3,"deux":3,"df":[0,4],"direct":3,"directori":[0,3,4],"dispatch":[2,3],"dispon":3,"disqu":[1,4],"do_extract":3,"do_reconstruct":3,"do_stitch_cross_auv":3,"do_stitch_per_auv":3,"docker":[2,4],"doit":4,"done":[1,2,3,4],"donn\u00e9":1,"dont":3,"drone":[1,3],"du":[0,3,4],"dun":2,"d\u00e9clenchement":3,"d\u00e9j\u00e0":[0,3],"d\u00e9marrag":[],"d\u00e9marrer":4,"d\u00e9marr\u00e9":3,"d\u00e9pass":3,"d\u00e9pend":0,"d\u00e9p\u00f4t":2,"d\u00e9tient":3,"easyrsa":2,"easyrsa3":2,"eau":3,"emplac":0,"en":[0,3,4],"enabl":[],"ensembl":1,"entr":3,"entr\u00e9":[0,3],"erreur":[3,4],"error":4,"espac":4,"est":[0,3],"et":[1,3,4],"etc":4,"execstart":[],"execut":4,"export":[1,2],"export_glb":[0,4],"expos\u00e9":[],"extern":2,"extract":[0,1,2,4],"extrait":0,"ex\u00e9cut":[2,3],"f":[0,2,4],"fail":[3,4],"failur":[],"fals":0,"fastapi":2,"ffmpeg":[2,3],"fichier":[0,3],"file":3,"filtr":3,"filtrer":4,"fin":4,"final":[0,3],"floppyrj45":[0,2,4],"flux":1,"foi":0,"fonction":3,"forcer":[0,4],"form":3,"fps":[0,3],"fr":2,"frame":[1,2,4],"frame_":[0,3],"frame_000001":[],"frame_nnnnnn":2,"frames_dir":3,"freeboxo":2,"fusion":[0,3],"gb":[0,2],"gen":2,"gestion":[],"gitea":2,"glb":[1,2],"global":[0,1,4],"gopro":[0,2,3,4],"gpu":[1,3],"grafana":2,"grep":4,"group":2,"group\u00e9":3,"gx":3,"gxxx":3,"g\u00e9n\u00e8re":0,"g\u00e9n\u00e9ration":[0,2,4],"g\u00e9n\u00e9rer":4,"g\u00e9n\u00e9r\u00e9":0,"h":[0,4],"head":0,"heuristiqu":3,"home":[2,4],"hor":[0,3],"host":2,"hp":2,"http":[0,2,3,4],"http8300":4,"https":2,"hyperviseur":2,"h\u00e9berg":2,"id":[0,3,4],"idx":0,"ignor\u00e9":3,"il":4,"import":[0,4],"indiqu":3,"influxdb":2,"infrastructur":1,"ingest":[1,4],"ing\u00e9rer":1,"input":3,"instal":[],"intact":0,"integ":3,"inter":3,"interfac":[],"ip":2,"jamai":[0,2,3],"job":[0,1,2],"job_":[0,3,4],"job_1":[],"job_2":[],"job_21":0,"job_id":[0,3,4],"job_n":2,"journalctl":4,"jpeg":3,"jpg":[0,2,3],"json":3,"jusqu":3,"key":3,"l":[0,3,4],"la":[0,1,4],"laboratoir":2,"lan":1,"lanc":2,"lancer":[0,4],"lanc\u00e9":[3,4],"le":[0,1,3],"len":0,"les":[1,2,3],"lext\u00e9rieur":2,"lh":[0,4],"lien":4,"lign":[0,4],"lingbot":[2,3],"list":3,"load":0,"local":2,"log":[2,3],"logiqu":3,"lorsqu":3,"ls":[0,4],"luminosit\u00e9":3,"m":[0,3,4],"manuell":0,"map":[2,3],"marin":[1,3],"marqueur":[1,3,4],"mb":0,"million":3,"min":0,"minim":3,"minut":[3,4],"mission":[0,1],"ml":2,"mnt":[0,2,3,4],"monitor":2,"mont\u00e9":[],"moyenn":3,"mp4":[0,1,3,4],"multi":[],"m\u00eame":3,"n":[0,2,3,4],"navigateur":3,"navigu":[3,4],"ne":[0,2,3],"nettoyag":1,"network":[],"nextcloud":2,"nohup":4,"nom":2,"nomclient":2,"nopass":2,"nouveau":[2,3],"nouvell":1,"np":0,"nuag":[0,1,3],"null":4,"numpi":0,"num\u00e9ro":[3,4],"n\u00e9cessair":4,"n\u0153ud":1,"observ\u00e9":1,"ok":4,"openvpn":1,"op\u00e9rat":3,"orchestrateur":[],"order":4,"ou":[2,3,4],"outil":3,"ouvrir":4,"ovpn":2,"o\u00f9":1,"par":[0,1,4],"param\u00e8tr":3,"particularit\u00e9":3,"pas":3,"path":[3,4],"pc":[0,3,4],"pend":[3,4],"pendant":[3,4],"per_auv":[0,3],"permet":2,"permettr":0,"peut":4,"peuvent":0,"pipelin":1,"pkill":4,"pli":[1,2,3],"point":[0,1,3],"pointcloud":0,"politiqu":1,"port":[1,3],"portablessd":[0,2,3,4],"post":[0,1],"pour":[0,1,2,3,4],"poxml":2,"prend":4,"prendr":4,"primari":3,"princip":1,"principal":[],"print":4,"prochain":4,"produir":3,"profil":2,"progress":4,"proxi":2,"proxmox":2,"pr\u00e9sent":4,"py":[3,4],"python3":[0,3,4],"q":3,"qc":[0,4],"qualit\u00e9":1,"quand":3,"que":[0,3,4],"quelqu":4,"qui":3,"quittent":[0,2,3],"ram":2,"random":0,"rapid":1,"reconstruct":[0,1,2,4],"red\u00e9marr":1,"red\u00e9marrag":3,"regroup":3,"relanc":1,"relay":2,"remarqu":0,"remettr":4,"remplac":4,"replac":0,"reprend":4,"repris":[1,3],"req":2,"restart":4,"restartsec":[],"retourn":4,"revers":2,"rf":0,"rh":0,"rm":[0,4],"rout":2,"routeur":2,"row":4,"rtx":2,"run":[3,4],"r\u00e9":[0,4],"r\u00e9capitulatif":1,"r\u00e9duit":3,"r\u00e9el":[3,4],"r\u00e9pertoir":3,"r\u00e9seau":[1,3],"r\u00f4le":[2,3],"s":[3,4],"saut":0,"sauvegard\u00e9":0,"scale":3,"scanner":3,"scp":4,"script":[3,4],"sc\u00e8ne":0,"segment":[0,3,4],"select":4,"selon":4,"server":[0,2,3,4],"serveur":[0,1,3,4],"servic":2,"set":4,"seuil":3,"seul":3,"sh":0,"si":[3,4],"sign":2,"somm":0,"sont":[1,3,4],"sort":0,"sorti":3,"sourc":[2,3],"sous":[1,3],"sqlite":3,"sqlite3":4,"ssd":[2,3,4],"ssh":[0,2,3,4],"stack":2,"start":4,"status":[2,3,4],"statut":[1,2,4],"stitch":[0,1],"stitch_":[0,3],"stitch_1":[],"stitch_glob":[0,3],"stockag":1,"stock\u00e9":[1,3],"stop":4,"structur":3,"sub":0,"succ\u00e8":0,"sudo":[2,4],"suppress":0,"supprim":[0,4],"supprim\u00e9":[0,3],"sur":[1,2,3,4],"surfac":3,"surveil":1,"sy":2,"sync":2,"system":[],"systemctl":[2,4],"systemd":2,"tabl":3,"tail":2,"taill":[0,4],"target":[],"temp":[3,4],"temporel":3,"termin\u00e9":3,"text":3,"timestamp":3,"tmp":4,"top":0,"total":0,"tourn":[],"tous":[0,3,4],"tout":0,"trait":3,"traitement":3,"trait\u00e9":[0,3],"travail":[],"trimesh":[0,3],"type":0,"typiqu":0,"t\u00e9l\u00e9chargement":[0,3,4],"t\u00e9l\u00e9charger":[0,1,3],"t\u00e9l\u00e9charg\u00e9":4,"u":4,"udp":2,"un":[0,1,3],"une":[0,1],"uniqu":0,"unit":[],"updat":4,"updated_at":[3,4],"user":2,"usr":[],"util":2,"utilis":1,"v":3,"valid":0,"valid\u00e9":[0,3],"variabl":0,"vcpu":2,"ver":[2,3,4],"version":0,"vertic":0,"vf":3,"via":[0,2,3,4],"video_":[0,4],"video_0":0,"video_1":0,"video_n":3,"video_v":2,"vid\u00e9o":[0,1,3],"viewer":[2,3,4],"viser":[2,3,4],"visualis":[0,1,3],"visuel":0,"vm":1,"voir":3,"voyag":3,"vram":2,"vue":1,"v\u00e9rific":1,"v\u00e9rifier":[0,4],"wantedbi":[],"web":[0,3],"wget":[0,3,4],"worker":[0,1,3,4],"worker_frames_dir":3,"worker_ip":3,"workingdirectori":[],"x":[0,4],"y":[],"yml":4,"z620":[0,1,3,4],"\u00e0":[0,1,4],"\u00e9cart":3,"\u00e9chantillonnag":3,"\u00e9chou\u00e9":1,"\u00e9crire":3,"\u00e9tape":1,"\u00e9tat":4,"\u00eatre":0},"titles":["Donn\u00e9es \u2014 Stockage et budget disque","cosma-qc \u2014 Documentation","Infrastructure","Pipeline cosma-qc","Utilisation"],"titleterms":{"3d":3,"acc\u00e8":2,"acquisit":4,"auv":3,"base":4,"budget":0,"coll\u00e8gu":2,"complet":4,"conteneur":[],"contenu":1,"core":2,"cosma":[1,2,3],"crash":0,"cross":3,"d":3,"dashboard":4,"de":[0,3,4],"demand":3,"des":3,"dispatch":4,"disqu":0,"docker":[],"document":1,"done":0,"donn\u00e9":[0,3,4],"ensembl":3,"espac":0,"et":[0,2],"export":[0,3],"extract":3,"flux":3,"frame":[0,3],"glb":[0,3,4],"global":3,"gpu":2,"infrastructur":2,"ingest":3,"ing\u00e9rer":4,"interm\u00e9diair":0,"job":[3,4],"jpeg":0,"la":3,"lan":2,"le":4,"les":[0,4],"log":4,"marqueur":0,"mission":4,"mp4":2,"nettoyag":0,"nouvell":4,"nuag":4,"n\u0153ud":2,"observ\u00e9":0,"openvpn":2,"o\u00f9":0,"par":3,"pipelin":[3,4],"pli":[0,4],"point":4,"politiqu":0,"port":2,"post":4,"princip":2,"qc":[1,2,3],"rapid":4,"reconstruct":3,"red\u00e9marr":4,"relanc":4,"repris":0,"r\u00e9capitulatif":2,"r\u00e9seau":2,"serveur":2,"servic":[],"sont":0,"statut":3,"stitch":3,"stockag":[0,2],"stock\u00e9":0,"sur":0,"surveil":4,"systemd":[],"t\u00e9l\u00e9charger":4,"un":4,"une":4,"utilis":4,"visualis":4,"vm":2,"vue":3,"v\u00e9rific":[0,4],"web":4,"worker":2,"z620":2,"\u00e0":3,"\u00e9chou\u00e9":4,"\u00e9tape":3}})
\ No newline at end of file
diff --git a/docs/infrastructure.rst b/docs/infrastructure.rst
index 2e3cc58..ea9738d 100644
--- a/docs/infrastructure.rst
+++ b/docs/infrastructure.rst
@@ -6,49 +6,68 @@ Réseau LAN — 192.168.0.0/24
.. code-block:: text
- ┌─────────────────────────────────────────────────────────┐
- │ LAN 192.168.0.0/24 │
- │ │
- │ .82 CORE Dispatcher (systemd) + FastAPI :3849 │
- │ Gitea + Grafana + InfluxDB + Caddy │
- │ │
- │ .84 ml-stack GPU worker RTX 3090 24GB │
- │ .87 gpu GPU worker RTX 3060 12GB │
- │ │
- │ .168 z620 Proxmox host HP Z620 │
- │ SSD → /mnt/portablessd (MP4 bruts) │
- └─────────────────────────────────────────────────────────┘
+ ┌───────────────────────────────────────────────────────────────┐
+ │ LAN 192.168.0.0/24 │
+ │ │
+ │ .82 CORE Gitea + Grafana + InfluxDB + Caddy │
+ │ Reverse-proxy → cosma-vm pour /cosma-qc │
+ │ │
+ │ .83 cosma-vm Dispatcher cosma-qc (systemd) │
+ │ Dashboard FastAPI :3849 │
+ │ OpenVPN server :1194 UDP │
+ │ │
+ │ .84 ml-stack GPU worker RTX 3090 24GB │
+ │ .87 gpu GPU worker RTX 3060 12GB │
+ │ │
+ │ .168 z620 Proxmox host HP Z620 — SSD MP4 bruts │
+ │ .101 poxML Proxmox hyperviseur — héberge cosma-vm (VM 202)│
+ └───────────────────────────────────────────────────────────────┘
-Nœud core (.82)
-----------------
+Nœud cosma-vm (.83) — serveur principal cosma-qc
+--------------------------------------------------
-**Rôle :** orchestrateur central du pipeline.
+VM #202 sur Proxmox poxML (.101). 4 vCPU, 4 GB RAM, 40 GB SSD.
+User : ``cosma`` (avec docker group et sudo).
-Services actifs :
+Services :
-- **Dispatcher** — service systemd cosma-qc-dispatcher.
- Boucle principale qui dispatch les jobs aux workers GPU.
+- **Dispatcher** — ``cosma-qc-dispatcher.service`` (systemd)
+ Lance les extractions ffmpeg sur les workers GPU.
-- **Dashboard FastAPI** — conteneur Docker exposé sur le port **3849**.
- Interface web de monitoring des jobs.
+- **Dashboard FastAPI** — conteneur Docker ``cosma-qc-app``, port **3849**.
+ Accès via Caddy sur core : ``http://192.168.0.82/cosma-qc``
-- **Gitea** — dépôt source floppyrj45/cosma-qc.
-
-- **Grafana / InfluxDB** — monitoring infrastructure.
+- **OpenVPN** — ``openvpn-server@cosma.service``, port 1194 UDP.
+ Permet aux collègues daccéder au LAN depuis lextérieur.
Commandes utiles :
.. code-block:: bash
+ # SSH vers cosma-vm
+ ssh cosma@192.168.0.83
+
# Statut dispatcher
sudo systemctl status cosma-qc-dispatcher
- # Logs dispatcher temps réel
- sudo journalctl -u cosma-qc-dispatcher -f
+ # Logs dispatcher
+ tail -f /home/cosma/cosma-qc-data/dispatcher.log
- # Dashboard
- http://192.168.0.82:3849
+ # Dashboard local
+ http://192.168.0.83:3849
+
+
+Nœud core (.82)
+----------------
+
+**Rôle :** routeur et services communs.
+
+Services actifs :
+
+- **Caddy** — reverse proxy HTTPS, route ``/cosma-qc`` vers .83:3849.
+- **Gitea** — dépôt source ``floppyrj45/cosma-qc``.
+- **Grafana / InfluxDB** — monitoring infrastructure.
Nœuds GPU workers (.84 et .87)
@@ -59,7 +78,7 @@ Nœuds GPU workers (.84 et .87)
:widths: 15 25 20 40
* - IP
- - Nom
+ - Nom SSH
- GPU
- VRAM
* - .84
@@ -71,83 +90,46 @@ Nœuds GPU workers (.84 et .87)
- RTX 3060
- 12 GB
-**Rôle :** exécution de ffmpeg (extraction frames) et lingbot-map (reconstruction 3D).
-
-Répertoire de travail sur chaque worker :
+**Rôle :** exécution de ffmpeg et lingbot-map.
.. code-block:: text
/cosma-qc-frames/
- ├── job_1/
- │ ├── frame_000001.jpg … frame_NNNNNN.jpg
- │ ├── .video_0.done
- │ ├── reconstruction.ply
- │ └── reconstruction.glb (généré à la demande)
- ├── job_2/
- │ └── …
- └── stitch_1.ply
+ └── job_N/
+ ├── frame_NNNNNN.jpg
+ ├── .video_V.done
+ ├── reconstruction.ply
+ └── reconstruction.glb
-Nœud z620 (.168)
------------------
+Nœud z620 (.168) — stockage MP4
+----------------------------------
-**Rôle :** stockage des MP4 bruts GoPro.
+HP Z620 (Proxmox). SSD /mnt/portablessd avec les MP4 GoPro bruts.
+Les MP4 **ne quittent jamais** z620 — ffmpeg sy exécute via SSH-relay.
-- Proxmox host HP Z620.
-- SSD monté sur /mnt/portablessd.
-- Les MP4 **ne quittent jamais** z620 — ffmpeg s'y exécute via SSH.
-
-Accès SSH depuis core :
+SSH relay (depuis cosma-vm ou core) :
.. code-block:: bash
- ssh floppyrj45@192.168.0.168
+ ssh ml-stack "ssh z620 \\"commande\\""
-Service systemd dispatcher
----------------------------
+OpenVPN — accès collègues
+--------------------------
-Fichier de service : /etc/systemd/system/cosma-qc-dispatcher.service
+Serveur OpenVPN sur cosma-vm (.83:1194 UDP).
+Adresse externe : ``laboratoire.freeboxos.fr:1194``
-.. code-block:: ini
+Profil client : ``cosma-qc-collegue1.ovpn`` (Nextcloud sync).
- [Unit]
- Description=COSMA QC Dispatcher
- After=network.target
-
- [Service]
- User=floppyrj45
- WorkingDirectory=/home/floppyrj45/docker/cosma-qc
- ExecStart=/usr/bin/python3 app/dispatcher.py
- Restart=on-failure
- RestartSec=10
-
- [Install]
- WantedBy=multi-user.target
-
-Commandes de gestion :
+Génération dun nouveau client :
.. code-block:: bash
- sudo systemctl start cosma-qc-dispatcher
- sudo systemctl stop cosma-qc-dispatcher
- sudo systemctl restart cosma-qc-dispatcher
- sudo systemctl enable cosma-qc-dispatcher # démarrage auto
-
-
-Conteneur Docker dashboard
----------------------------
-
-Le dashboard FastAPI tourne dans un conteneur Docker.
-
-.. code-block:: bash
-
- cd /home/floppyrj45/docker/cosma-qc
- docker compose up -d # démarrer
- docker compose down # arrêter
- docker compose logs -f # logs
-
-Accès : http://192.168.0.82:3849
+ cd /home/cosma/openvpn-ca/easyrsa3
+ ./easyrsa gen-req NOMCLIENT nopass
+ ./easyrsa sign-req client NOMCLIENT
Ports réseau récapitulatifs
@@ -160,12 +142,16 @@ Ports réseau récapitulatifs
* - Host
- Port
- Service
- * - .82
+ * - .83
- 3849
- Dashboard FastAPI cosma-qc
+ * - .83
+ - 1194/udp
+ - OpenVPN server
* - .84 / .87
- 8100+N
- - Viser viewer (reconstruction job N)
+ - Viser viewer (job N)
* - .84 / .87
- 8300
- - HTTP server GLB export
+ - HTTP server GLB/PLY export
+
diff --git a/scripts/__pycache__/dispatcher.cpython-311.pyc b/scripts/__pycache__/dispatcher.cpython-311.pyc
index 88ee68d..792aa49 100644
Binary files a/scripts/__pycache__/dispatcher.cpython-311.pyc and b/scripts/__pycache__/dispatcher.cpython-311.pyc differ