33800 Docs

← Retour

Session precedente (07/02/2026 soir)

Fixes Connectors + SearXNG sidecar (TERMINE)


Session precedente (07/02/2026)

Multi-GPU AI Orchestrator v3.0 (TERMINE)

Modification hardware PVE (TERMINE)


Session precedente (05/02/2026)

WS CDP Screencast ScrapperTool (PARTIELLEMENT TERMINE)


Session precedente (02/02/2026)

Fix endpoint loading API actions (TERMINE)

Fix AI Save Modal + InputSchemaBuilder - 4 bugs (TERMINE)


Session precedente (01-02/02/2026)

Boucle correction IA sur page action (TERMINE)

Fix UI Chat - 4 bugs + creation 1 clic (TERMINE)


Intent Detection Layer + Upload Fichiers Chat AI (EN COURS)

Remplacement du prompt LLM (~4500 tokens) par une detection d'intent deterministe (code pur) pour les appels aux connecteurs. Le LLM ne sert plus qu'a formater les resultats (~300 tokens).

Nouveaux fichiers :

Connecteurs testes OK : jellyfin, web-search (SearXNG), scraper (Playwright), yolo (detection objets)

Upload fichiers dans le chat :

Fix session nocturne :

Fix session matin :

Pipelines : API #640, #643-#651 success / Front #641 success Tests curl : tous OK (14/14) Tests navigateur : en attente (20 tests manuels a faire)

Task : ~/tasks/01-02-2026-00-30-intent-detection-layer-upload-fichiers.md


Session precedente (31/01/2026)

Bouton "Corriger" apres echec commande AI (TERMINE)

Ajout d'un bouton "Corriger" dans l'interface instance SSH quand le test d'une commande suggeree par l'IA echoue. Le bouton renvoie un prompt enrichi avec le contexte d'erreur (commande, exit code, stderr, stdout) pour obtenir une commande corrigee.

connectors-front :


Session precedente (29/01/2026 apres-midi)

AI Chat - Memory avancee + Sidebar pleine page (TERMINE)

Amelioration majeure de la gestion memoire et du mode d'affichage :

ai-orchestrator :

connectors-api :

connectors-front :

AI Chat Sidebar (TERMINE)

Sidebar de chat IA integree a connectors-front. Conversations persistees Supabase, generation via Ollama/ai-orchestrator.

Connecteur Google Gemini (TERMINE)

Nouveau connecteur gemini dans connector-types.ts (7 endpoints) :

CalDAV Endpoints Completes (TERMINE)

4 endpoints manquants ajoutes au connecteur CalDAV :


Session precedente (29/01/2026 matin)

Sync Connecteurs Builtin (TERMINE)

Ajout de syncBuiltinTypes() dans registry.ts : synchronise les 31 CONNECTOR_TYPES definis dans connector-types.ts vers la table config en base au demarrage.

OAuth2 Credentials Partages (TERMINE)

Systeme de credentials OAuth2 partages : un credential Google (client_id + secret + refresh_token) reutilisable sur toutes les instances Google (Drive, Sheets, Calendar, Gmail, CalDAV).

Backend :

Frontend :

Fixes appliques :

Smart-Deploy : public_paths (TERMINE)

Feature public_paths dans smart-deploy (nginx.sh + parse-yaml.sh) : permet de bypasser les restrictions IP pour certains chemins (OAuth callback, health). Utilise parse_yaml_list() pour lire les listes YAML.

Fix navigation retour test endpoint (TERMINE)

Le bouton retour depuis /connectors/[id]/test/[endpoint] ramenait sur la page connector type au lieu de la page instance. Fix : passage instance ID en query param ?instance=<id>.

Prochaines etapes


Session precedente (28/01/2026 21:00 - 22:30)

Assistant IA - Suggestion de commandes (TERMINE)

Ajout d'un assistant IA sur Connectors Hub utilisant Ollama via ai-orchestrator :

Backend (connectors-api) :

Frontend (connectors-front) :

Fix applique : format input_params ai-orchestrator (temperature/max_tokens au premier niveau, system prompt separe, lecture output_result.response)

Test OK : "voir les containers docker en cours" -> docker ps en ~300ms

Fix SFTP Windows - resolved_path (TERMINE)

resolved_path manquait du schema de reponse Elysia pour /api/ssh/sftp/list. Elysia filtrait ce champ, empechant la navigation Windows (remonter aux lecteurs).

Actions API - Verifie OK

Test creation + execution action API Jellyfin System Info : fonctionne en 119ms.

Prochaines etapes


Session precedente (28/01/2026 01:30 - 03:30)

Connectors Hub - Actions Phase 1 Frontend

Pages frontend créées pour les Actions :

Fix Connectors-API + VPN via Smart-Deploy

Probleme : Port 5400 conflit + VPN cassé après redéploiement

Solution finale :

Architecture :

wireguard-sidecar (docker-compose)
    └── expose 5403, 5410
    └── reseau supabase-prod

connectors-api (smart-deploy)
    └── network_mode: container:wireguard-sidecar
    └── SUPABASE_URL: http://192.168.1.12:8200

Pipeline #520 OK - Health: ok, Database: connected

Instances - Templates Actions par type

Page detail instance /connectors/instance/[id]/ avec :

Templates SSH : Uptime, Disk, Memory, Docker ps, Top, Logs Templates Jellyfin : Films, Séries, Récents, Sessions, System info Templates Proxmox : Nodes, VMs, Storage Templates AI : Status GPU, Tools, Jobs

Dashboard - GitLab Jobs (NOUVEAU)

Page live monitoring CI/CD : gitlab-jobs.html

URL : https://dashboard.nowhere84.com/gitlab-jobs.html

Backlog ajouté

wireguard-connectors-integration (HAUTE) :


Session precedente (28/01/2026 00:55 - 01:15)

MCP Server Claude Tools

Création d'un serveur MCP pour donner à Claude Code un accès direct aux services.

Repo : https://gitlab.33800.nowhere84.com/gouroubleu/mcp-claude-tools

Outils exposés

Outil Description
memory_search Recherche sémantique mémoire vectorielle
memory_namespaces Stats namespaces
connector_fetch Appeler APIs via Connectors Hub
connector_list Liste connecteurs/instances
ssh_execute Commandes SSH distantes
notify_send Notifications push/mail
ai_job Jobs AI Orchestrator
ai_status Status GPU/queue/outils
ai_job_status Status d'un job

Instances SSH créées

Instance Host
PVE-SSH 192.168.1.4
prod-portainer-SSH 192.168.1.12
nginx-SSH 192.168.1.104
win11-SSH 192.168.1.30
gitlab-SSH 192.168.1.196

Configuration

Pour activer : Relancer Claude Code


Session precedente (27/01/2026 23:50 - 28/01/2026 00:50)

Smart-Deploy + Claude Memory - Corrections Majeures

Fix Smart-Deploy Nginx Auto-Config

Bug : parse_yaml_section créait CFG_nginx_domain mais le code cherchait CFG_domain Impact : Toutes les configs nginx ont été créées manuellement depuis toujours

Fichier Modification
smart-deploy.sh 4x CFG_domainCFG_nginx_domain
lib/nginx.sh 1x dans resolve_domain()
lib/parse-yaml.sh Documentation convention nommage

Test : Redéploiement claude-memory-front → memory.33800.nowhere84.com.conf créée automatiquement

Fix Dashboard O2switch

Bug : Dashboard affichait "Généré le 24 janvier" malgré cron OK Cause : services-registry.json owned by root → git add échouait silencieusement Fix : Ajout chown -R gouroubleu:gouroubleu *.json data/ avant git add dans generate.sh

Fix Claude Memory Watcher

Problème Cause Solution
Watcher ne détectait rien inotify ne fonctionne pas sur NFS PollingObserver(timeout=60)
Volumes manquants conf.prod utilisé, pas docker-compose Ajout 7 volumes en format virgules
Secret non injecté Format secrets: non supporté Utiliser @VAR dans env:
Stale file handle Montage fichiers individuels Monter dossier /data/claude/

Configuration finale claude-memory

volumes: "/mnt/.../memory:/data/memory:ro,/mnt/.../claude:/data/claude:ro,..."
env:
  SUPABASE_SERVICE_KEY: "@SUPABASE_PROD_SERVICE_ROLE_KEY"

Stats finales


Session precedente (28/01/2026 00:00-01:15)

Connectors Hub - Fix Complet + extra_headers Global

Bug generateBodyTemplate corrige

Probleme : generateBodyTemplate is not defined sur pages try-it Cause : Fonction declaree avec const apres son utilisation (hoisting) Fix : Deplace la fonction avant useVisibleTask$ Commit : ba1c4a0 (connectors-front)

Instances configurees (toutes OK)

Instance Status Credentials
Proxmox OK PVEAPIToken configuré
Supabase OK Service role key
Mailjet OK API key:secret
Nextcloud OK App password Gouroubleu:LwcPr-QpJJC...

Fix Nextcloud (3 bugs identifies)

  1. Default instance non utilise : proxyFetch.execute recevait body.instance (undefined) au lieu de instanceName resolu
  2. Header OCS manquant : Nextcloud OCS API requiert OCS-APIRequest: true
  3. Colonne DB manquante : extra_headers n'existait pas dans connectors.config

Solution extra_headers globale

Demande utilisateur : "faut l'ajouter de maniere global on sait jamais d'autre pourrait en avoir besoin"

Action Detail
DB ALTER TABLE connectors.config ADD COLUMN extra_headers JSONB
Nextcloud UPDATE SET extra_headers = '{"OCS-APIRequest": "true"}'
Type Ajout extra_headers: Record<string, string> | null dans ConnectorConfig
fetch.ts if (connector.extra_headers) Object.assign(headers, connector.extra_headers)

Commits connectors-api

Commit Description
ba1c4a0 Fix generateBodyTemplate hoisting (front)
039b220 Add extra_headers support initial
64f1c61 Fix default instance credentials
40705bb Remove hardcoded header, use DB
f6f1d59 Add extra_headers to ConnectorConfig type

Tests endpoints GET - TOUS OK

Connecteur Resultat
GitHub 4/4 OK
Jellyfin 5/5 OK
Proxmox 5/5 OK
Supabase 3/3 OK
Mailjet 3/3 OK
Nextcloud 3/3 OK

Backlogs crees


Session precedente (27/01/2026 23:50-00:05)

Fix Smart-Deploy Nginx Auto-Config

Bug identifié et corrigé

Problème : Smart-deploy ne créait jamais les configs nginx automatiquement Cause : parse_yaml_section crée CFG_nginx_domain mais le code cherchait CFG_domain Impact : Toutes les configs nginx ont été créées manuellement depuis toujours

Fichiers modifiés

Fichier Modification
smart-deploy.sh 4 occurrences CFG_domainCFG_nginx_domain
lib/nginx.sh 1 occurrence dans resolve_domain()
lib/parse-yaml.sh Documentation convention nommage ajoutée

Commits

Test validé

Redéploiement claude-memory-front → memory.33800.nowhere84.com.conf créée automatiquement à 22:58

Dashboard O2switch fix

Problème : Dashboard affichait "Généré le 24 janvier" Cause : services-registry.json owned by root → git add échouait silencieusement Fix : chown gouroubleu:gouroubleu + commit manuel


Session precedente (27/01/2026 22:45-23:50)

Mémoire Vectorielle Claude - Extensions Multi-Namespace + Frontend

Multi-namespace indexé

Namespace Contenu Fichiers
claude ~/.claude/memory/*.md 23
claude-md CLAUDE.md 1
status STATUS.md 1
propositions ~/propositions/*.md ~50
tasks ~/tasks/*.md ~80
backlog ~/backlog/*.md ~30
docs ~/docs/*.md ~30
scripts ~/scripts/*.sh ~20

Stats : 3734 chunks, 235 fichiers indexés

File Watcher implémenté

Frontend claude-memory-front déployé

Fonctionnalités :

Fix notifications

Problème : Plus de notifications depuis le 25/01 Cause : notif-logger et apprise sur réseaux Docker différents Fix : docker network connect notifications_notifications notif-logger

Fix dashboard O2switch

Problème : Dashboard affichait "Généré le 24 janvier" malgré cron OK Cause : services-registry.json owned by root → git add échouait silencieusement Fix : chown gouroubleu:gouroubleu + commit manuel


Session precedente (27/01/2026 22:15-22:45)

Mémoire Vectorielle Claude - Setup Initial - TERMINE

Objectif : Remplacer grep par recherche sémantique vectorielle pour éviter perte d'info après compression contexte.

Architecture déployée

┌─────────────────────────────────────────────────────────────────┐
│                     CLAUDE MEMORY SYSTEM                         │
│                                                                   │
│  8 namespaces (memory, propositions, tasks, backlog, docs...)   │
│         │                                                         │
│         ▼                                                         │
│  ┌─────────────────┐     callbacks     ┌──────────────────┐      │
│  │  claude-memory  │◄─────────────────►│  ai-orchestrator │      │
│  │  :5510          │                   │  :5501           │      │
│  └────────┬────────┘                   └────────┬─────────┘      │
│           │                                     │                 │
│           ▼                                     ▼                 │
│  ┌─────────────────┐                   ┌──────────────────┐      │
│  │ Supabase PROD   │                   │ Ollama (win11)   │      │
│  │ claude_memory   │                   │ nomic-embed-text │      │
│  └─────────────────┘                   └──────────────────┘      │
│           │                                                       │
│           ▼                                                       │
│  ┌─────────────────┐                                             │
│  │ claude-memory-  │                                             │
│  │ front :5511     │                                             │
│  └─────────────────┘                                             │
└─────────────────────────────────────────────────────────────────┘

Composants

Service Port Description
claude-memory 5510 API recherche vectorielle
claude-memory-front 5511 Interface web Qwik
ai-orchestrator 5501 Queue jobs Ollama
supabase-rest-prod - Schema claude_memory exposé

Endpoints API

Endpoint Méthode Description
/health GET Status service
/stats GET Chunks, fichiers, dernière sync
/search POST Recherche sémantique
/namespaces GET Liste namespaces avec stats
/namespaces/{ns}/sync POST Sync un namespace (reset=true)
/watcher/status GET Status file watcher
/callback/{job_id} POST Réception résultats ai-orchestrator

URLs


Session precedente (27/01/2026 21:35-22:15)

Connectors Hub - Corrections UI - TERMINE

Commits déployés sur connectors-front :

Commit Description
0291648 Fix audit logs UUID bug - utilisait le type name au lieu de l'UUID
d1667a7 Validation des paramètres requis dans tryit form
9c7e2c9 Exemples d'utilisation adaptés au type de connecteur
375627e Terminal popup: tmux optionnel + alerte fermeture
2fda568 Terminal fullscreen (fixed positioning, z-9999)

Commit connectors-api : | 4130b13 | Remove invalid /Users/Me endpoint from Jellyfin |

Détails des corrections

  1. Tryit form - Validation paramètres requis

    • Affiche "Requis" au lieu de "Optionnel" pour les paramètres obligatoires
    • Bordure rouge sur les champs vides requis
    • Message d'erreur listant les paramètres manquants avant exécution
    • Fix les erreurs 400 sur Jellyfin /Items/Latest (userId requis) et /Search/Hints (searchTerm requis)
  2. Exemples d'utilisation par type de connecteur

    • SSH: Commande exec + exemple curl
    • Jellyfin: /Users, /System/Info, /Search/Hints
    • Proxmox: /nodes, /nodes/pve/qemu, /cluster/status
    • Portainer: /endpoints, /docker/containers/json, /stacks
    • GitLab: /projects, /user, /pipelines
  3. Terminal popup amélioré

    • tmux désactivé par défaut (optionnel via checkbox)
    • Alerte beforeunload si session active à la fermeture
    • Bouton "Reconnecter" en cas de déconnexion/erreur
    • Fullscreen avec fixed inset-0 z-[9999] - bypass le layout parent

Session precedente (27/01/2026 19:50-21:35)

VPN Profiles System - TERMINE

Objectif : Système de profils VPN WireGuard réutilisables pour instances SSH

Solution finale : Stack Docker unifiée avec network namespace partagé

┌─────────────────────────────────────────────────────┐
│ connectors-stack                                     │
│  ┌────────────────────────────────────────────────┐ │
│  │ wireguard-sidecar                              │ │
│  │  - WireGuard API :5410                         │ │
│  │  - Ports exposés: 5400, 5410                   │ │
│  │  - Tunnels: wg-{instanceId}                    │ │
│  │                                                │ │
│  │ connectors-api (network_mode: service:...)     │ │
│  │  - Partage namespace réseau du sidecar         │ │
│  │  - Accès direct aux tunnels VPN                │ │
│  └────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘

Problème résolu

L'ancienne architecture avait 2 containers séparés sur le même réseau Docker mais avec des namespaces réseau différents. Le tunnel VPN créé dans le sidecar n'était pas accessible depuis connectors-api.

Solution : network_mode: "service:wireguard-sidecar" permet à connectors-api de partager le stack réseau du sidecar et d'utiliser ses tunnels VPN directement.

Déploiement

Fichier Chemin
docker-compose.yml /home/gouroubleu/apps/connectors-stack/
.env /home/gouroubleu/apps/connectors-stack/

Test validé

# SSH via VPN vers serveur Rhinov
curl -X POST 'http://localhost:5400/api/ssh/execute' \
  -d '{"instance_id":"67beec52...","command":"whoami"}'

# Résultat: {"success":true,"stdout":"rhinov\nWireguard-Begles\n"}

Variables d'environnement importantes

Variable Usage
SSH_ENCRYPTION_KEY Chiffrement AES-256 passwords/keys
WIREGUARD_SIDECAR_URL http://localhost:5410 (même namespace)

Task : /home/gouroubleu/tasks/27-01-2026-21-30-vpn-profiles-final.md


Session precedente (27/01/2026 12:00-13:40)

WireGuard VPN per SSH Instance - DEPLOYE

Objectif : Permettre a chaque instance SSH de configurer un tunnel VPN WireGuard

Architecture : Sidecar WireGuard

connectors-api (5400) --HTTP--> wireguard-sidecar (5410) --WireGuard--> Peers

Deploiements effectues

Projet Pipeline Status
wireguard-sidecar #459 SUCCESS
connectors-api #457 SUCCESS
connectors-front #458 SUCCESS
smart-deploy (push direct) Merged

Nouveaux fichiers

Fichier Description
connectors-api/src/services/wireguard.ts Service VPN (generate keys, configure, connect, disconnect, status)
wireguard-sidecar/app.py FastAPI sidecar exposant API REST pour WireGuard
wireguard-sidecar/Dockerfile Python Alpine + wireguard-tools
connectors-front/src/components/VpnConfig.tsx UI config VPN pour instances SSH

Endpoints API VPN

Endpoint Methode Description
/api/instances/:id/vpn/generate-keys POST Genere paire de cles
/api/instances/:id/vpn PUT Configure VPN
/api/instances/:id/vpn/connect POST Demarre tunnel
/api/instances/:id/vpn/disconnect POST Arrete tunnel
/api/instances/:id/vpn/status GET Status tunnel

Ameliorations Smart-Deploy

URLs

Task : /home/gouroubleu/tasks/27-01-2026-13-30-wireguard-vpn-per-instance.md


Session precedente (27/01/2026 00:00-02:35)

Connectors - Endpoint Tester + Terminal SSH tmux

Objectif : Permettre de tester les endpoints API + terminal SSH persistant

1. Page "Try it" pour tester les endpoints

Element Details
Route /connectors/[id]/test/[endpoint]
Fonctionnalites Formulaire dynamique (Path/Query/Headers/Body), execution, resultat JSON
Bouton Ajoute sur les 3 pages (connector, public, instance)
Menu contextuel Clic droit sur endpoint -> Tester / Copier path

Fichiers modifies :

2. Terminal SSH dedie avec tmux

Element Details
Route /connectors/instance/[id]/terminal
Fonctionnalites Plein ecran, tmux pour persistance, toggle on/off
Detection Si tmux non installe -> instructions d'installation

Backend modifie :

3. Logging des commandes terminal

Incident resolu

Probleme Solution
Disque plein prod-portainer (100%) docker system prune -af --volumes -> 57%
Pipeline echouee ENOSPC Relancee apres nettoyage -> SUCCESS

Pipelines : #455 (connectors-front) SUCCESS

Task : /home/gouroubleu/tasks/27-01-2026-02-31-connectors-tryit-terminal-tmux.md


Session precedente (27/01/2026 00:00-00:55)

Connectors SSH - Debug authentification

Problème : SSH "All configured authentication methods failed" malgre credentials corrects

Cause identifiee : Le serveur SSH 192.168.1.12 avait PasswordAuthentication no dans /etc/ssh/sshd_config

Solution appliquee : Active PasswordAuthentication yes sur le serveur

Note : L'option "auto-certif" du connecteur SSH genere une cle SSH et l'installe automatiquement - plus securise que l'auth par mot de passe.

Backlog mis a jour : /home/gouroubleu/backlog/26-01-2026-ssh-improvements.md


Session precedente (26/01/2026 19:00-20:25)

Connectors - Multi-instance logs et UI

Objectif : Séparer les logs par instance (Jellyfin Perso vs Famille) + améliorations UI

Modifications API (connectors-api)

Fichier Modification
src/index.ts Audit log avec instance name + auto-résolution default
src/services/audit.ts Méthode countByInstance()
/api/user/instances Retourne logs_count par instance

Modifications Frontend (connectors-front)

Fichier Modification
routes/index.tsx Cards cliquables, affiche type, compteur requêtes
routes/layout.tsx Suppression mini-menu
routes/connectors/instance/[id]/index.tsx Accordéons endpoints/logs, filtre par instance
routes/connectors/public/[type]/index.tsx Accordéons endpoints/logs

Logs Loki

Règles CLAUDE.md ajoutées

Task : /home/gouroubleu/tasks/26-01-2026-20-23-connectors-multi-instance-logs.md


Session précédente (25/01/2026 21:00-23:30)

Connectors API - 12 connecteurs services internes ✅

Objectif : Ajouter connecteurs pour tous les services internes utilisés

Nouveaux connecteurs (6 ajoutés)

Nom Type Auth Endpoints Status
jellyfin jellyfin api_key (X-Emby-Token) 18 ✅ Testé
ai-orchestrator ai-orchestrator none 17 ✅ Testé
yolo yolo none 4 ✅ Testé
supabase supabase api_key (apikey) 15 Prêt
proxmox proxmox custom (PVE Token) 18 Prêt
nextcloud nextcloud basic 12 Prêt

Corrections apportées

Bug Fix
description: null rejeté par Elysia t.Union([t.String(), t.Null()])
Endpoints enrichis non retournés Ajout champs au schéma response
Front n'affichait pas les détails Refacto en accordéons
Appels /api/fetch non loggés Ajout audit.log() dans endpoint
Services sans auth échouaient Ajout auth_type: none

Commits GitLab (connectors-api)

58f2d19 fix: skip TLS verification for internal network URLs
91d6f37 fix: accept self-signed certificates for internal services
a8f2686 feat: add YOLO, Supabase, Proxmox, Nextcloud connector types
af9d539 feat: add auth_type 'none' for services without auth
6fff6a9 feat: log fetch.execute calls to audit trail
404deed fix: allow null description in connectors list response
238da78 feat: add Jellyfin and AI Orchestrator connectors
09b1fb4 fix: add enriched fields to endpoint response schema

Credentials configurés (gouroubleu@gmail.com)

Connecteur Status
jellyfin ✅ API key (X-Emby-Token)
ai-orchestrator ✅ Pas d'auth (none)
yolo ✅ Pas d'auth (none)
supabase ✅ service_role_key
proxmox ✅ API Token PVE
nextcloud ⚠️ User non créé

Task : /home/gouroubleu/tasks/25-01-2026-22-00-connectors-jellyfin-ai-orchestrator.md


Session précédente (25/01/2026 18:00-19:00)

Connectors API - Système de types et nouveaux connecteurs ✅

Objectif : Connecteurs typés avec endpoints prédéfinis + connecteurs automatiques (recherche web, scraper)

1. Système de types de connecteurs

Problème : Endpoints vides car découverte par user (pas global)

Solution : CONNECTOR_TYPES avec endpoints prédéfinis dans le code

Types prédéfinis (6 total) : | Type | Endpoints | Version API | |------|-----------|-------------| | github | 35 | 2022-11-28 | | linkedin | 7 | v2 (202401) | | mailjet | 17 | v3.1 | | o2switch | 20 | UAPI (cPanel 118) | | web-search | 3 | SearXNG 2024 | | scraper | 4 | Playwright 1.x |

2. SearXNG déployé

Container : searxng sur prod-portainer (port 8888) URL : https://search.33800.nowhere84.com Config : /home/gouroubleu/apps/searxng/

# Test recherche JSON
curl "https://search.33800.nowhere84.com/search?q=test&format=json"

3. Scraper générique ajouté à browser-connector

Nouveaux endpoints :

# Scrape version Node.js
curl -X POST https://browser.33800.nowhere84.com/scrape \
  -d '{"url":"https://nodejs.org/dist/index.json","jsonPath":"$[0].version"}'
# → {"data":"v25.4.0"}

# Scrape titre HTML
curl -X POST https://browser.33800.nowhere84.com/scrape \
  -d '{"url":"https://example.com","selector":"h1"}'
# → {"data":"Example Domain"}

4. CRUD endpoints custom (mode Postman)

Pour connecteurs sans type prédéfini :

Commits GitLab

connectors-api (6 commits) :

browser-connector (1 commit) :


Session précédente (25/01/2026 15:50)

Fix O2switch .htaccess - IP publique 33800 ✅

Problème : dashboard.nowhere84.com inaccessible depuis le réseau local 33800

Cause : O2switch voit l'IP publique (82.65.119.221), pas l'IP privée (192.168.1.x). Le .htaccess autorisait 192.168.1.0/24 mais c'est inutile pour O2switch.

Fix : Mis à jour sync-allowed-ips.sh pour ajouter automatiquement les IPs publiques 33800 :

Fichiers modifiés :

Test : curl -sI https://dashboard.nowhere84.com → HTTP 200 ✅

DNS complets configurés ✅

Wildcard A (IPv4) AAAA (IPv6)
*.33800.nowhere84.com 82.65.119.221 2a01:e0a:2c:a320::1
*.86000.nowhere84.com 82.67.42.47 2a01:e0a:fb8:78c0::1

Commande utilisée (UAPI cPanel) :

uapi DNS mass_edit_zone zone=nowhere84.com serial=... add-0='{"dname":"*.86000","ttl":14400,"record_type":"A","data":["82.67.42.47"]}'

Prochaines étapes pour 86000 :

Fix IPv6 33800 manquant ✅

Le préfixe IPv6 de 33800 (2a01:e0a:2c:a320::/64) n'était pas dans les IPs autorisées.

Ajouté à :


Session précédente (26/01/2026 00:00-01:00)

SÉCURISATION URGENTE + Ajout Raph (86000) ✅

Problèmes découverts et corrigés :

Problème Étendue Correction
O2switch PUBLIC dashboard, claude, status .htaccess créés
Nginx sans restriction 48 configs allow/deny ajoutés
Mémoire incorrecte pihole-split-dns.md Réécrit entièrement

Raph (ami Poitiers) ajouté :

Fichiers modifiés :

Commits :

Automatisation mise en place :

Mémoire mise à jour :

Leçon apprise :


Session précédente (25/01/2026 14:00-14:15)

Connectors API - Phases 2, 3 & 4 DÉPLOYÉES ✅

Objectif : Rendre l'API connectors-hub autonome et complète

Phases terminées :

Phase Contenu Status
Phase 2 Auto-discovery ✅ Déployé
Phase 3 Audit logs ✅ Déployé
Phase 4 Versioning endpoints ✅ Déployé

Nouveaux services :

Nouveaux endpoints : | Endpoint | Usage | |----------|-------| | POST /api/connectors/:id/rediscover | Relancer discovery | | GET /api/audit/logs | Liste logs avec filtres | | GET /api/audit/stats | Statistiques | | GET /api/connectors/:id/logs | Logs d'un connecteur | | GET /api/endpoints/:id/versions | Historique versions | | POST /api/endpoints/:id/rollback/:v | Rollback | | GET /api/endpoints/:id/diff/:v1/:v2 | Diff entre versions |

Migrations SQL :

Pipelines :

Version : 2.5.0

Prochaine étape : Phase 5 - Front Qwik séparé (connectors-front)

Proposition mise à jour : /home/gouroubleu/propositions/25-01-2026-15-00-connectors-hub-v3.md Task : /home/gouroubleu/tasks/25-01-2026-14-10-connectors-api-phases-2-3-4.md


Session précédente (25/01/2026 22:00-23:00)

POC QIG validé + Roadmap créée

Résultat : POC concluant, roadmap établie pour la suite

Documents créés :

Points clés documentés :

  1. Utilisation des docs API :

    • connectorService.getSchema() existe mais retourne souvent {}
    • Ollama déduit les colonnes depuis le sample de données (pas le schema)
    • Pour Display : schema passé mais Ollama utilise surtout le data sample
    • Pour Form : schema carrément vide ! ({} dans le code)
  2. Composants dynamiques vs fixes :

    • Composants React (FormRenderer, DisplayRenderer) = fixes
    • Contenu (champs, colonnes, types) = dynamique (généré par Ollama)
  3. Forms fonctionnels :

    • handleSubmit existe et appelle fetchService.execute
    • Non testé en production

Options identifiées pour demain : | Option | Description | Effort | |--------|-------------|--------| | A | Améliorer schema discovery (connectors-hub) | MOYEN-ÉLEVÉ | | B | Parser OpenAPI on-the-fly | MOYEN | | C | Base de connaissances API statique | FAIBLE initial | | D | Hybrid LLM + Schema hints | FAIBLE-MOYEN | | E | Focus POC simple | MINIMAL |

Recommandation : Option E + D progressif (finir POC, puis enrichir KNOWN_ENDPOINTS avec schemas)


Session précédente (25/01/2026 - suite)

QIG - Search Endpoints + DisplaySpec Normalization ✅ DÉPLOYÉ

Problèmes résolus :

  1. Recherche utilisateurs : Ollama retournait des endpoints incorrects /users/search au lieu de /search/users
  2. Affichage disparu : DisplaySpec non normalisé → colonnes mal formatées
  3. Pipeline fail health check : Réponse HTML au lieu de JSON → jq crash

Fixes appliqués :

Fichier Modification
src/lib/connector/client.ts Ajout search dans KNOWN_ENDPOINTS + resolveEndpoint gère action search
src/lib/ollama/prompts.ts Ajout search_term dans le prompt intent
src/lib/ui-spec/types.ts Ajout champ search_term dans Interface Intent
src/routes/index.tsx Ajout ?q=search_term + extraction data.items pour search results
src/lib/ui-spec/normalize.ts Normalisation colonnes {name,field} → {id,label,type}
GUIDELINES.md Documentation Search API et learnings

Commits :

Pipeline : #346 SUCCESS

Smart-Deploy - Health Check Fix ✅ DÉPLOYÉ

Problème : Le health check échouait sur les apps Qwik qui retournent du HTML sur /

Causes :

  1. jq retournait chaîne vide sur HTML (pas "unknown")
  2. store_health_data crashait avec set -eo pipefail sur jq error

Fixes : | Fichier | Modification | |---------|--------------| | lib/health.sh | Vérifie si JSON valide avant parsing, HTTP 200 = healthy si non-JSON | | lib/health.sh | store_health_data : stocke status simple si non-JSON, || true pour éviter pipefail |

Commits (smart-deploy) :


QIG - Fix Jobs API + Auth obligatoire ✅ DÉPLOYÉ (début session)

Problèmes identifiés :

  1. Erreur "Failed to submit job" → Client attendait data.job, API retourne {job_id, status}
  2. Utilisation sans auth → Interface fonctionnait sans connexion

Fixes appliqués : | Fichier | Modification | |---------|--------------| | src/lib/ollama/client.ts | Adapter structure réponse API (job_idid) | | src/routes/index.tsx | Bloquer si non auth + message warning + bouton disabled |

Commit : 0870da5 fix: API response structure + require auth Pipeline : #336 (health check timeout mais container healthy) Proposition : /home/gouroubleu/propositions/25-01-2026-00-10-qig-fix-jobs-auth.md


Session précédente (24/01/2026)

SÉCURITÉ - Option private: true dans Smart-Deploy ✅ IMPLÉMENTÉ

Problème identifié : QIG et connectors-api étaient accessibles publiquement Fix manuel appliqué : Restrictions IP ajoutées dans nginx configs

Implémentation Smart-Deploy : | Fichier | Modification | |---------|--------------| | /scripts/deploy/lib/nginx.sh | Ajout CFG_nginx_private (default: true) | | /scripts/nginx/generate.sh | Ajout paramètre $7 private | | QIG conf.prod.gouroubleu.yml | Ajout nginx.private: true | | connectors-api conf.prod.gouroubleu.yml | Ajout nginx.private: true |

Comportement :

Commits pushés :

Proposition : /home/gouroubleu/propositions/24-01-2026-21-10-smart-deploy-private-option.md → ✅ IMPLÉMENTÉ


QIG Phase 3 - Display Mode DÉPLOYÉ ✅

Commits :

Nouveaux composants :

Flux display :

"Lister mes repos GitHub" → Intent (action=list) → Fetch API → DisplaySpec → Rendu auto

Types ajoutés : DisplaySpec, DisplayType, Column, ItemTemplate, DisplayRelation, etc.


QIG v2 - Universal Interface Generator DÉPLOYÉ ✅

URL: https://qig.33800.nowhere84.com (RÉSEAU LOCAL UNIQUEMENT) GitLab: https://gitlab.nowhere84.com/gouroubleu/qwik-interface-generator Port: 5505 Container: qwik-interface-generator (prod-portainer) - healthy

Refonte complète du générateur d'interfaces :

Vision : Fin des frontends. Juste des APIs + ce générateur.

Architecture :

Input naturel → Ollama (intention) → Ollama (UISpec) → Qwik SSR → Micro-bundles
                                         ↓
                              connectors-hub /api/fetch

Fonctionnalités :

Qwik exploité correctement :

Tests Ollama Live RÉUSSIS (24/01/2026 19:30) : | Test | Temps | Résultat | |------|-------|----------| | Intent Analysis | ~20s | ✅ {"connector": "gitlab", "action": "create", "entity": "projet"} | | UISpec Generation | ~8s | ✅ Formulaire 2 groupes, 6 champs |

Commits :

Pipeline : #329 - Build OK, container healthy

Proposition : /home/gouroubleu/propositions/24-01-2026-18-22-qig-v2-architecture.md Task : /home/gouroubleu/tasks/24-01-2026-18-41-qig-v2-universal-interface.md

Prochaines étapes :


Connectors Hub v2.4.0 - SCHEMA DISCOVERY DÉPLOYÉ ✅

URL: https://connectors.33800.nowhere84.com Swagger: https://connectors.33800.nowhere84.com/swagger Pipeline: #330 SUCCESS

Hub centralisé pour authentification, proxy fetch et schema discovery.

Nouvelles fonctionnalités v2.4.0 (Phase 1 QIG):

Discovery System:

v2.3.0 (precedent):

User account créé:

Connecteurs configurés (migrés vers gouroubleu@gmail.com): | Connecteur | Auth Type | Status | |------------|-----------|--------| | github | bearer | ✅ Connecté | | mailjet | basic | ✅ Connecté | | o2switch | custom (cPanel) | ✅ Connecté | | linkedin | oauth2 | ⏳ OAuth requis |

Endpoints principaux: | Endpoint | Usage | |----------|-------| | POST /api/fetch | Proxy fetch - Appeler n'importe quelle API | | POST /api/auth/login | Connexion (retourne JWT) | | POST /api/auth/register | Inscription | | GET /api/auth/me | Profil utilisateur | | GET /api/connectors | Liste connecteurs + statut | | POST /api/user/connectors/:id/token | Définir son token |

Exemple /api/fetch:

{
  "connector": "github",
  "method": "GET",
  "path": "/user/repos"
}

Commits: b2fa8ca (auth endpoints), e2ec8bc (swagger complet)

Task: /home/gouroubleu/tasks/24-01-2026-14-50-connectors-hub-auth.md

Backlog évolution: /home/gouroubleu/backlog/24-01-2026-connectors-hub-evolution.md


Qwik Interface Generator - Phase 1 DÉPLOYÉ ✅

URL : https://qig.33800.nowhere84.com GitLab : https://gitlab.nowhere84.com/gouroubleu/qwik-interface-generator Port : 5505 Container : qwik-interface-generator (prod-portainer)

Générateur d'interfaces UI à partir de Swagger/OpenAPI.

MVP Fonctionnel :

Composants créés (pour Phase 2) :

Prochaines étapes (Phase 2) :

Task : /home/gouroubleu/tasks/24-01-2026-17-30-qig-deployment-complete.md Backlog : /home/gouroubleu/backlog/24-01-2026-qwik-interface-generator.md

Système Pause/Resume AI-Orchestrator - TESTÉ ET FONCTIONNEL ✅

Objectif : Permettre de mettre en pause le traitement des jobs IA pour libérer le GPU (gaming)

Comportement :

  1. Pause → Arrête Ollama (et autres outils) → VRAM libérée pour jouer
  2. Resume → Worker reprend → Ollama redémarre automatiquement au 1er job (~8s)

Endpoints API : | Endpoint | Usage | |----------|-------| | GET /api/worker/status | État du worker (running/paused) | | POST /api/worker/pause?stop_tools=true | Pause + arrête outils (libère VRAM) | | POST /api/worker/resume | Reprend le traitement (outils auto-start) |

Dashboard : https://dashboard.nowhere84.com/ai-jobs.html

Commits :

Incident résolu : 5232 jobs avaient échoué après un test de pause car Ollama n'avait pas redémarré → corrigé et jobs relancés

Stats NeedFinder actuelles : | Élément | Valeur | |---------|--------| | Posts analysés | 18,647 | | Needs détectés | 16,583 | | Queue restante | ~88K jobs |


Session précédente (23/01/2026 23:00)

État des lieux AI-Orchestrator + NeedFinder - TERMINÉ ✓

Objectif : Faire un état des lieux des projets récemment modifiés (webhooks, affichage)

Résultats :

AI-Orchestrator

Élément Constat
Container était unhealthy (API OK)
Cause type: "node" dans config (app Python)
Fix type: "python" → Pipeline #287 SUCCESS
Status final healthy

Webhooks ajoutés (commits récents) :

NeedFinder

Élément Valeur
Container healthy
Posts collectés 158,897
Needs détectés 510
Non traités 158,379
Sources Reddit 158K, HN 187

Système Webhook Async - DÉPLOYÉ ✅

Problème initial : 158K posts non traités, analyse synchrone (25/6h)

Solution implémentée :

Post → Submit job (status=submitted) → Webhook analyse → Need créé → Webhook traduction → FR
Endpoint Usage
POST /api/analyze/all Lance traitement complet (background)
POST /api/analyze/async?batch=N Soumet N posts
GET /api/analyze/stats Stats pending/submitted/completed/failed
POST /api/webhook/analysis Reçoit résultats analyse
POST /api/webhook/translation Reçoit résultats traduction

Commits : 9bc45a3, c4a9164, 096fd1d, fccbdab

Traitement lancé : 23/01/2026 23:50 - batch=500

Progression (24/01/2026 00:35) : | État | Count | % | |------|-------|---| | pending | 140,363 | 88.3% | | submitted | 15,638 | 9.8% | | completed | 2,262 | 1.42% | | failed | 667 | 0.4% |

Needs créés : 2,176 | Non traduits : 1,959

Traitement Parallèle - DÉPLOYÉ ✅ (Pipeline #293, ajusté #294)

Optimisation : 2 jobs Ollama en parallèle (réduit de 3 pour thermal GPU)

Critère Valeur
OLLAMA_NUM_PARALLEL 3 (configuré sur win11)
Worker parallel batch 2 jobs simultanés (était 3, réduit pour thermal)
Modèles exclus 70b, 32b, 8x7b, mixtral (restent séquentiels)

Commits : 07192dd (3 parallel), bbe2e19 (réduit à 2)

Dashboard - Affichage multi-jobs ✅

Modification : Affiche tous les jobs en cours (pas juste 1)

Fix O2switch : Permissions assets corrigées (403 sur style.css)

Fix NeedFinder Dashboard :

Fix services-registry.json : Owned by root → chown gouroubleu

Estimation : ~27h restantes (2 parallel au lieu de 3)


Session précédente (23/01/2026 13:00)

NeedFinder - Migration PROD + Dashboard Live - TERMINÉ ✓

Objectif : Migrer NeedFinder de DEV vers PROD et passer le dashboard en données live

Résultat :

Migration PROD

Étape Status
Backup données DEV (794 KB)
Création schema needfinder sur PROD
Restauration données (450 posts, 295 needs)
conf.prod.gouroubleu.yml créé
Merge develop → main
Pipeline #272 ✅ SUCCESS
Container prod-portainer:5200 ✅ healthy

Dashboard Live

Changement Avant Après
Fichier 3747 lignes (hardcodé) 707 lignes (API)
Données Statiques (générées) Live depuis API
Stats Figées Temps réel

Nettoyage DEV

Element Action
Database needfinder DROP DATABASE
Container needfinder-collector-dev docker rm

Configuration finale :

Mémoire mise à jour : ~/.claude/memory/needfinder.md


Session précédente (22/01/2026 21:00)

AI Orchestrator - Tests & Dashboard - TERMINÉ ✓

Objectif : Tests complets des 10 outils AI + améliorations dashboard

Résultats :

Tests outils (tous validés ✅)

Corrections déployées (Pipelines 249-253)

  1. stop_cmd : Kill par port au lieu de window title (VRAM libérée correctement)
  2. API Input Files : POST/GET/DELETE /api/inputs
  3. input_files tracking : Stocké en BDD, affiché dans détails

Dashboard (https://dashboard.nowhere84.com/ai-jobs.html)

Task file : ~/tasks/22-01-2026-21-00-ai-orchestrator-dashboard-improvements.md


Session précédente (22/01/2026 16:00)

Audit CI/CD Smart-Deploy - TERMINÉ

Objectif : Vérifier tous les projets Smart-Deploy et corriger les healthchecks

Résultat : Tous les containers sont maintenant healthy

Container Pipeline Status
ai-orchestrator #236 ✅ healthy
authentificator #231 ✅ healthy
browser-connector #197 ✅ healthy
connectors-api #198 ✅ healthy
notif-logger #196 ✅ healthy
qwikpress #232 ✅ healthy
qwikpress-file #237 ✅ healthy
test-deploy #229 ✅ healthy
yolo-api - ✅ healthy (déjà déployé)

Problèmes identifiés et corrigés :

  1. Healthcheck incompatible : Les containers utilisaient wget qui n'existe pas dans les images Node.js slim

    • Fix : Fonction get_healthcheck_cmd() selon le type d'image
    • node/bun/qwik/nextnode -e require('http').get(...)
    • python/customcurl -sf ...
  2. Docker networks saturés : "all predefined address pools have been fully subnetted"

    • Fix : docker network prune -f (9 réseaux supprimés)
  3. Container name conflict : qwikpress-file existait déjà

    • Fix : docker rm -f avant redéploiement

Commits Smart-Deploy :

Note yolo-api : Pipeline timeout après 1h (runner limit) mais image ~7GB nécessite 2h. Container déjà healthy, pas besoin de redéployer.

Archivage projets GitLab - TERMINÉ

Objectif : Nettoyer GitLab en archivant les projets inutilisés

Résultat :

Projets archivés :

Gardés sur demande : user-bucket, user-bucket-m, json-editor


Session précédente (22/01/2026 11:00)

Migration qwikpress vers Smart-Deploy - TERMINÉ

Résultat : CI/CD fonctionnel, app démarre mais erreur applicative

Étape Status
conf.prod.gouroubleu.yml créé
.gitlab-ci.yml Smart-Deploy
Fix lint errors (eslint + qwik)
Build Docker OK
Push registry OK
Deploy port 3002
Nginx config
Health check

Erreur applicative résolue :

Corrections ESLint apportées :

URLs :

Branche file-mode créée pour qwikpress

Deux instances en parallèle pour tester les deux modes de stockage :

Branche Mode Domaine Port Container
main Supabase qwikpress.33800.nowhere84.com 3002 qwikpress
file-mode Fichier qwikpress-file.33800.nowhere84.com 3003 qwikpress-file

Améliorations Smart-Deploy apportées :

Migration yolo-api vers Smart-Deploy - TERMINÉ

yolo-api : API de détection d'objets avec YOLOv8

Élément Valeur
URL https://yolo.33800.nowhere84.com
Port 9200
Modèle yolov8n (nano)
Status ✅ Healthy

Configuration Smart-Deploy :

Note : Image très lourde, le premier build prend ~10min, push registry peut timeout avec le défaut 1h.

Fix notifications notif-logger - TEMPORAIRE

Problème : notif-logger ne pouvait pas atteindre apprise/ntfy (réseaux Docker différents)

Fix temporaire : docker network connect notifications_notifications notif-logger

Fix permanent : Ajouter network_external: notifications_notifications dans conf.prod.gouroubleu.yml de notif-logger


Session précédente (22/01/2026 00:00)

Migration 5 projets vers Smart-Deploy - TERMINÉ

Objectif : Migrer les projets restants vers Smart-Deploy

Résultat : | Projet | Pipeline | Target | Status | |--------|----------|--------|--------| | notif-logger | #196 | prod-portainer | ✅ | | browser-connector | #197 | prod-portainer | ✅ | | connectors-api | #198 | prod-portainer | ✅ | | needfinder | #204 | dev-portainer | ✅ | | authentificator | #212 | prod-portainer | ✅ |

Corrections apportées :

Changements libs npm :

Configuration needfinder :


Session précédente (21/01/2026 22:30)

Migration CI/CD vers Smart-Deploy - ai-orchestrator

Résultat :

Corrections apportées au template :

Problème Solution
ci-templates private Changé en internal via API
docker:27 sans bash apk add bash jq curl openssh-client
Registry access forbidden docker login avec CI_JOB_TOKEN
SSH vers nginx impossible Mount /root/.ssh dans config runner
scp "hostname invalid" Redirect logs vers stderr dans nginx.sh
Check symlinks [ -e ] au lieu de [ -f ]

Session précédente (21/01/2026 18:00)

Réorganisation CLAUDE.md + Système Mémoire - TERMINÉ

Objectif : Réduire CLAUDE.md (1355 lignes) et créer un système modulaire

Résultat :

Fichiers créés :

Dashboard :

Intégration :

Backlog :


Session précédente (21/01/2026 12:50)

Smart-Deploy Phase 7 - COMPLETE

Documentation :

Health Check Enrichi :

Page Dashboard Services :

Test CI/CD Réussi :

Corrections apportées :

Services déployés via Smart-Deploy

Service Target Status URL
test-deploy prod-portainer running https://test-deploy.33800.nowhere84.com

Session précédente (20/01/2026 23:40)

Smart-Deploy Phase 6 - Notifications & Registre

Ajout système de notifications et registre des services :

lib/notifications.sh :

lib/registry.sh :

rollback.sh (nouveau script) :

smart-deploy.sh :

Corrections supplémentaires :

Tests validés :


Smart-Deploy Phase 5 - Stratégies files & remote

Améliorations des stratégies de déploiement non-Docker :

files.sh (release + symlinks pour nginx, pve, etc.) :

remote.sh (rsync/git pour o2switch) :

smart-deploy.sh :

Tests validés :


Session précédente (20/01/2026 01:30)

⚠️ INCIDENT - Perte de données NeedFinder v2

NeedFinder → AI Orchestrator Integration

Fix Docker/NFS Dependency (dev-portainer)

Outils IA stoppés (win11)

Session précédente (20/01/2026 00:10)

Fix Dashboard AI Jobs Live Refresh

Services actifs

PROD (prod-portainer)

Service Container Port Status
ntfy ntfy 8080 ✅ Running
apprise apprise 8000 ✅ Running
notif-logger notif-logger 5300 ✅ Running
connectors-api connectors-api 5400 ✅ Running
browser-connector browser-connector 5401 ✅ Running
notifications-webapp notifications-webapp 8082 ✅ Running
authentificator authentificator 8284 ✅ Running
open-webui open-webui 3001 ✅ Running
ai-orchestrator ai-orchestrator 5501 ✅ Running v2.0.0 (Queue System)
needfinder needfinder 5200 ✅ Running

DEV (dev-portainer)

Service Container Port Status Notes
supabase-db supabase-db 5432 ✅ Running PostgreSQL

Note : NeedFinder migré vers PROD le 23/01/2026

Windows 11 Gaming (win11 - RTX 3090 24 Go)

Service Port Status API Testée
Ollama 11434 ✅ Running (16 modèles)
ComfyUI 8188 ✅ Testé via Orchestrator
Fooocus 7865 ✅ Testé via Orchestrator
Wan2.1 7860 ✅ CLI mode (bypass Gradio)
Applio 6969 ✅ Full API mode (model_name requis)
Bark TTS 7866 ✅ Testé - Génération audio OK
MusicGen 7867 ✅ Testé - Génération musique OK
SadTalker 7868 ✅ CLI mode (NumPy patches)
FaceFusion 7869 ✅ CLI mode headless-run (bypass Gradio)
TripoSR 7870 ✅ Full API mode (patch PyMCubes)
Faster-Whisper CLI ✅ Installé CLI
Piper TTS CLI ✅ Installé (FR + EN) CLI

CI/CD GitLab

Projet Status Notes
notif-logger ✅ Déployé -
ffmpeg-api ✅ Déployé -
tintech-api ✅ Déployé -
ulias ✅ Déployé -
medias-api ✅ Déployé -
jellylink-api ✅ Déployé -
browser-connector ✅ Déployé -
connectors-api ✅ Déployé -
authentificator ✅ Déployé -
qwikpress ✅ Déployé Port 3002, mode Supabase, schema qwikpress
ai-front ❌ Échec code error
tintech-front ❌ Échec ESLint errors

Packages npm privés (@gouroubleu)

Package Version Projet GitLab
@gouroubleu/ulias-lib 0.0.12 65
@gouroubleu/qwikjs-lib 0.0.43 74

Dernières actions (19/01/2026)

FaceFusion - CLI mode headless-run (22:45)

Fix cleanup ciblé - Préservation outils actifs (16:00)

Fix Wan21 - UTF-8 encoding + RAM cleanup (15:30)

Investigation démarrage auto outils (15:00)

Correction Applio + SadTalker (14:00)

Dernières actions (18/01/2026)

Test Global 10 outils (22:15)

Test Queue System complet (21:25)

Test SadTalker CLI (20:50)

Test Applio Full API (18:15)

Fix Wan2.1 - Mode CLI (17:35)

Fix TripoSR + Full API executors (16:45)

Fix Notifications Push + generate.sh cleanup (01:10)

Fix Jellyfin Accès Externe (00:25)

Problème : jellyfin.33800.nowhere84.com timeout depuis 4G (depuis le 12/01)

Cause : Gateway nginx incorrecte !

AVANT : default via 192.168.1.1   ← IP INEXISTANTE
APRÈS : default via 192.168.1.254 ← Freebox

Solution :

Origine : Probablement modifié lors de l'installation Pi-hole le 12/01


Actions précédentes (17/01/2026)

AI Orchestrator - Super Dashboard + Download URLs (22:20)

AI Orchestrator - Tous Executors (21:54)

10 outils centralisés - toutes les requêtes GPU passent par l'orchestrator

Outil Catégorie Status Paramètres principaux
ollama LLM prompt, model, system, temperature
comfyui Image prompt, steps, cfg, seed
fooocus Image prompt, style, performance
wan21 Video prompt, resolution, steps
bark Audio TTS text, voice
musicgen Audio Music description, duration
applio Audio RVC 🆕 audio_file, model, pitch
facefusion Face Swap 🆕 source_file, target_file
sadtalker Talking Head image_file, audio_file
triposr Image→3D image_file, mc_resolution (patch PyMCubes)

Avantages :

À implémenter : Algorithme de groupement (éviter trop de switch si jobs similaires)

AI Orchestrator - Wan2.1 Executor (21:15)

AI Orchestrator - Fooocus Executor (20:41)

AI Orchestrator - ComfyUI Executor (18:45)

AI Orchestrator Phase 3 - Queue System (18:20)

Tests AI Orchestrator (16:45)

AI Orchestrator (Phase 1 déployée)

Installation RTX 3090 + Outils IA

Nouveaux services IA (complet)

Modèles Ollama téléchargés

Modèles Stable Diffusion

Modèles Wan2.1 (I:\Wan2.1\cache)

Points d'attention

URLs actives

Service URL
Open WebUI https://openwebui.33800.nowhere84.com
ComfyUI https://comfyui.33800.nowhere84.com
Fooocus https://fooocus.33800.nowhere84.com
Wan2.1 https://wan.33800.nowhere84.com
Applio https://applio.33800.nowhere84.com
Bark TTS https://bark.33800.nowhere84.com
MusicGen https://musicgen.33800.nowhere84.com
SadTalker https://sadtalker.33800.nowhere84.com
FaceFusion https://facefusion.33800.nowhere84.com
TripoSR https://triposr.33800.nowhere84.com
authentificator https://auth.33800.nowhere84.com
ntfy https://ntfy.33800.nowhere84.com
dashboard https://dashboard.nowhere84.com
IA Tools https://dashboard.nowhere84.com/ai-tools.html
AI Orchestrator API https://ai-orchestrator.33800.nowhere84.com
AI Orchestrator Dashboard https://dashboard.nowhere84.com/ai-orchestrator.html
AI Jobs Dashboard https://dashboard.33800.nowhere84.com/ai-jobs.html
gitlab https://gitlab.33800.nowhere84.com

Chemins outils IA (win11 I:)

Outil Chemin
Ollama modèles I:.ollama\models
ComfyUI I:\ComfyUI_clean
Fooocus I:\Fooocus
Wan2.1 I:\Wan2.1
Applio (RVC) I:\Applio
Bark TTS I:\Bark
MusicGen I:\MusicGen
SadTalker I:\SadTalker
FaceFusion I:\facefusion
TripoSR I:\TripoSR
Whisper I:\Whisper
Piper TTS I:\PiperTTS

Prochaines étapes

Notes de lancement (win11)

AI Orchestrator API

L'API permet de gérer les outils IA via REST :

# Voir les outils disponibles
curl https://ai-orchestrator.33800.nowhere84.com/api/tools

# Détecter les outils actifs
curl https://ai-orchestrator.33800.nowhere84.com/api/tools/refresh

# Status GPU
curl https://ai-orchestrator.33800.nowhere84.com/api/gpu

# Démarrer ComfyUI (arrête l'outil actif si différent)
curl -X POST https://ai-orchestrator.33800.nowhere84.com/api/tools/comfyui/start?force=true

# Arrêter un outil
curl -X POST https://ai-orchestrator.33800.nowhere84.com/api/tools/comfyui/stop

Dashboard IA Tools

Une page dédiée est disponible sur le dashboard avec documentation complète pour chaque outil: https://dashboard.nowhere84.com/ai-tools.html

AI Jobs Queue API (Phase 3)

L'API permet de soumettre des jobs IA en file d'attente :

# Créer job Bark TTS
curl -X POST https://ai-orchestrator.33800.nowhere84.com/api/jobs \
  -H "Content-Type: application/json" \
  -d '{"tool_id":"bark","job_type":"tts","input_params":{"text":"Hello","voice":"v2/en_speaker_3"}}'

# Créer job MusicGen
curl -X POST https://ai-orchestrator.33800.nowhere84.com/api/jobs \
  -H "Content-Type: application/json" \
  -d '{"tool_id":"musicgen","job_type":"music","input_params":{"description":"upbeat electronic","duration":15}}'

# Créer job ComfyUI (SDXL)
curl -X POST https://ai-orchestrator.33800.nowhere84.com/api/jobs \
  -H "Content-Type: application/json" \
  -d '{"tool_id":"comfyui","job_type":"image","input_params":{"prompt":"a sunset over mountains","steps":20}}'

# Status d'un job
curl https://ai-orchestrator.33800.nowhere84.com/api/jobs/{job_id}

# Télécharger output
curl https://ai-orchestrator.33800.nowhere84.com/api/jobs/{job_id}/output/output.png -o result.png

# Stats queue
curl https://ai-orchestrator.33800.nowhere84.com/api/queue

Dashboard jobs : https://dashboard.33800.nowhere84.com/ai-jobs.html


NeedFinder Dashboard - Restauration Live (24/01/2026 14:45)

Problème : La page needfinder.html affichait des données obsolètes (16K needs vs 20K+ réels)

Cause : Régression de version live (707 lignes, appels API) vers version statique (8566 lignes, données codées en dur)

Fix : Restauration du commit 499d4e2 avec version live

Résultat :

Commit : e2cb7c1 pushé vers O2switch

Test watcher Wed Jan 28 12:19:49 AM CET 2026

<!-- Test watcher Wed Jan 28 12:25:18 AM CET 2026 -->

<!-- Watcher test Wed Jan 28 12:39:31 AM CET 2026 -->

<!-- Final watcher test Wed Jan 28 12:45:31 AM CET 2026 -->