33800 Docs

← Retour

Services Actifs (PROD)

Source : CLAUDE.md lignes 1070-1192

Stack Notifications (bridge network)

Service Container Port Usage
ntfy ntfy 8080:80 Push notifications
apprise apprise 8000 Gateway multi-canal
notif-logger notif-logger 5300 API logging + dispatch

Stack Supabase

Service Port Usage
supabase 8001 BDD PostgreSQL + API
redis 6379 Cache

Stack Connectors (Multi-API Hub)

Service Container Port Usage
connectors-api connectors-api 5403 (via wireguard-sidecar) Hub API multi-connecteurs
connectors-front connectors-front-blue 5402 (blue-green) Interface Qwik
browser-connector browser-connector 5404 Playwright automation + Scraper
searxng connectors-api-searxng 8888 Meta search engine

ATTENTION : connectors-api écoute sur port 5403 (env PORT=5403). Le wireguard-sidecar expose 5403 + 5410 (API WireGuard).

Domaines :

GitLab repos :

Connectors Hub (maj 29/01/2026)

Swagger : https://connectors.33800.nowhere84.com/swagger

User account : gouroubleu@gmail.com / MyUlia75$w

Architecture Multi-Instance (26/01/2026) :

extra_headers (28/01/2026) :

Sync builtin types (29/01/2026) :

OAuth2 Credentials Partages (29/01/2026) :

Système de types :

Connecteurs configures (31 types builtin) : | Connecteur | Type | Auth | Endpoints | Status | |------------|------|------|-----------|--------| | github | github | bearer | 35 | Connecte | | mailjet | mailjet | basic | 17 | Connecte | | o2switch | o2switch | custom | 20 | Connecte | | linkedin | linkedin | oauth2 | 7 | OAuth requis | | jellyfin | jellyfin | api_key | 18 | 2 instances | | ai-orchestrator | ai-orchestrator | none | 17 | Public | | yolo | yolo | none | 4 | Public | | supabase | supabase | api_key | 15 | Connecte | | proxmox | proxmox | custom | 18 | Connecte | | nextcloud | nextcloud | basic | 12 | Connecte (app pwd) | | ssh | ssh | password/key | 8 | tmux + SFTP | | gmail | gmail | oauth2 | - | OAuth Google | | google-drive | google-drive | oauth2 | - | OAuth Google | | google-sheets | google-sheets | oauth2 | - | OAuth Google | | google-calendar | google-calendar | oauth2 | - | OAuth Google | | + 16 autres types | ... | ... | - | Builtin sync |

Endpoints principaux : | Endpoint | Méthode | Description | |----------|---------|-------------| | /api/fetch | POST | Proxy fetch - Appeler n'importe quelle API | | /api/auth/login | POST | Connexion (retourne session.access_token) | | /api/auth/register | POST | Inscription | | /api/connectors | GET | Liste connecteurs (types) | | /api/user/instances | GET | Liste instances user (avec logs_count) | | /api/user/instances/:id | GET | Détails instance | | /api/user/instances/:id/default | POST | Définir comme défaut | | /api/audit/logs | GET | Logs d'audit (filtrable par instance) | | /api/oauth/providers | GET | Liste providers OAuth (Google) | | /api/oauth/credentials | GET/POST | CRUD credentials OAuth | | /api/oauth/credentials/:id | DELETE | Supprimer credential | | /api/oauth/credentials/:id/authorize | GET | URL autorisation OAuth2 | | /api/oauth/callback | GET | Callback OAuth2 (public, bypass IP) |

Exemple /api/fetch :

{
  "connector": "jellyfin",
  "instance": "Jellyfin Perso",
  "method": "GET",
  "path": "/Users"
}

Si instance omis → utilise l'instance par défaut du user pour ce connector.

Chat AI (connectors-front) - maj 01/02/2026 :

Frontend (connectors-front) - maj 27/01/2026 :

Connecteur SSH + VPN (maj 27/01/2026)

Architecture VPN :

connectors-api (network_mode: service:wireguard-sidecar)
       ↓
wireguard-sidecar (tunnels WireGuard)
       ↓
VPN Server → Réseau distant (192.168.11.0/24, etc.)

Stack unifiée : /home/gouroubleu/apps/connectors-stack/

Fonctionnalites : | Feature | Description | |---------|-------------| | Execution commande | POST /api/ssh/execute avec instance_id | | Terminal WebSocket | wss://connectors.../api/ssh/shell?instance_id=...&tmux=true | | SFTP | Liste, upload, download, mkdir, delete | | Auto-certif | Generation + installation cle SSH automatique | | Jump Host | Support bastion (ProxyJump) | | tmux | Session persistante (survit a la fermeture navigateur) | | VPN WireGuard | Connexion auto avant SSH si profil configuré |

VPN Profiles :

Endpoints SSH : | Endpoint | Methode | Description | |----------|---------|-------------| | /api/ssh/execute | POST | Executer commande | | /api/ssh/shell | WS | Terminal interactif (WebSocket) | | /api/ssh/sftp/list | POST | Lister fichiers | | /api/ssh/sftp/upload | POST | Upload fichier | | /api/ssh/sftp/download | POST | Download fichier | | /api/ssh/sftp/mkdir | POST | Creer dossier | | /api/ssh/sftp/delete | POST | Supprimer fichier/dossier | | /api/ssh/setup-key | POST | Installer cle SSH auto |

Endpoints AI Assistant (28/01/2026) : | Endpoint | Methode | Description | |----------|---------|-------------| | /api/ai/suggest-command | POST | Suggerer commande via Ollama (mistral:latest) | | /api/ai/test-command | POST | Tester commande sur instance SSH |

Endpoints VPN Profiles : | Endpoint | Methode | Description | |----------|---------|-------------| | /api/vpn/profiles | GET | Liste profils user | | /api/vpn/profiles | POST | Créer profil | | /api/vpn/profiles/import | POST | Importer .conf WireGuard | | /api/vpn/profiles/:id | GET/PUT/DELETE | CRUD profil |

Audit actions SSH :

Complement SSH Connector (fusionne depuis ssh-connector.md - 23/02/2026)

Endpoints SSH supplementaires : | Endpoint | Methode | Description | |----------|---------|-------------| | /api/ssh/instance | POST | Creer instance SSH (endpoint dedie) | | /api/ssh/test | POST | Tester connexion sans sauvegarder (retourne fingerprint) | | /api/ssh/upload | POST | Upload fichier texte (content + remote_path + mode) | | /api/ssh/download | POST | Download fichier (avec option tail: N lignes) |

Body detaille /api/ssh/execute :

{
  "instance_id": "uuid",
  "command": "ls -la",
  "cwd": "/home/user",
  "timeout": 30000,
  "force": false
}
// Response: { success, stdout, stderr, exit_code, duration_ms }

Commandes dangereuses detectees : rm -rf, mkfs, dd if=, > /dev/, chmod -R 777, shutdown, reboot, systemctl stop sshd. Ajouter "force": true pour passer outre.

Messages WebSocket /api/ssh/shell :

Client → Server: { type: "input", data: "ls\n" } | { type: "resize", cols: 120, rows: 40 }
Server → Client: { type: "output", data: "..." } | { type: "ready" } | { type: "close" } | { type: "error" }

SFTP details : Upload/download en base64 (content_base64). Limite: 50MB (env SFTP_MAX_SIZE).

Securite credentials SSH : Chiffrement AES-256-CBC, format iv_hex:encrypted_hex, cle dans env SSH_ENCRYPTION_KEY.

BDD : Config SSH dans user_connectors.token_metadata (JSONB) : host, port, username, auth_method, password_encrypted, fingerprint, jump_host (avec sous-champs).

Endpoints VPN WireGuard detailles : | Endpoint | Methode | Description | |----------|---------|-------------| | /api/instances/:id/vpn/generate-keys | POST | Genere paire cles WireGuard | | /api/instances/:id/vpn | PUT | Configure VPN (endpoint, peer, allowed_ips, address, dns) | | /api/instances/:id/vpn/connect | POST | Demarre tunnel | | /api/instances/:id/vpn/disconnect | POST | Arrete tunnel | | /api/instances/:id/vpn/status | GET | Status (connected, transfer, handshake) | | /api/instances/:id/vpn/config | GET | Config sans cle privee | | /api/instances/:id/vpn | DELETE | Supprime config VPN | | /api/vpn/active | GET | Liste tunnels actifs |

Sidecar WireGuard : Python/FastAPI (port 5410), image Alpine + wireguard-tools, capabilities NET_ADMIN + SYS_MODULE, max 5 tunnels/user.

Fichiers sources :

Endpoints browser-connector : | Endpoint | Description | |----------|-------------| | GET /api/linkedin/login | Connexion LinkedIn | | GET /api/linkedin/profile | Profil complet | | GET /api/linkedin/messages | Messages recents | | GET /api/linkedin/connections | Liste connexions | | POST /api/linkedin/message | Envoyer message |

Stack QIG (Qwik Interface Generator)

Service Container Port Usage
qwik-interface-generator qwik-interface-generator 5505 Générateur UI depuis Swagger

Domaine : qig.33800.nowhere84.com

GitLab : https://gitlab.nowhere84.com/gouroubleu/qwik-interface-generator

Fonctionnalités MVP :

Auth : Utilise connectors-api pour authentification

Stack NeedFinder

Service Container Port Usage
needfinder needfinder 5200 Collecte Reddit/HN + Analyse IA

Domaine : needfinder-api.33800.nowhere84.com

GitLab : https://gitlab.nowhere84.com/gouroubleu/needfinder

Dashboard : https://dashboard.nowhere84.com/needfinder.html (live)

Traitement async : Utilise AI Orchestrator via webhooks

Stats actuelles : ~85K jobs en queue (analyse + traduction)

Stack AI Orchestrator

Service Container Port Usage
ai-orchestrator ai-orchestrator 5501 Gestion outils IA win11 + Queue

Domaine : ai-orchestrator.33800.nowhere84.com

GitLab : https://gitlab.33800.nowhere84.com/gouroubleu/ai-orchestrator

Endpoints Tools : | Endpoint | Méthode | Description | |----------|---------|-------------| | /api/tools | GET | Liste tous les outils | | /api/tools/refresh | GET | Détecte les outils actifs | | /api/tools/{id} | GET | Status d'un outil | | /api/tools/{id}/start | POST | Démarre un outil (force=true pour switch) | | /api/tools/{id}/stop | POST | Arrête un outil | | /api/gpu | GET | Status GPU (VRAM, temp, usage) |

Endpoints Jobs (Queue System) : | Endpoint | Méthode | Description | |----------|---------|-------------| | /api/jobs | POST | Créer job (avec callback_url optionnel) | | /api/jobs | GET | Lister jobs (limit, offset) | | /api/jobs/{id} | GET | Status d'un job | | /api/jobs/stats | GET | Stats globales (completed, failed, etc.) | | /api/queue | GET | Stats queue (pending, current_job) | | /api/inputs | GET/POST/DELETE | Gestion fichiers input |

Endpoints Worker Control (24/01/2026) : | Endpoint | Méthode | Description | |----------|---------|-------------| | /api/worker/status | GET | État du worker (running/paused) | | /api/worker/pause?stop_tools=true | POST | Pause worker + arrête outils (libère VRAM) | | /api/worker/resume | POST | Reprend le traitement (outils auto-start) |

Webhooks : Supporte callback_url dans job creation pour notification async

Système de Priorité :

# Soumettre un job haute priorité
curl -X POST https://ai-orchestrator.33800.nowhere84.com/api/jobs \
  -H "Content-Type: application/json" \
  -d '{"tool_id":"ollama","job_type":"chat","priority":1,"input_params":{...}}'

Traitement Parallèle (24/01/2026) :

Outils gérés : Ollama, ComfyUI, Fooocus, Wan2.1, Applio, Bark, MusicGen, SadTalker, FaceFusion, TripoSR

Patches win11 (à préserver lors de mises à jour) :

Outil Fichier Patch Raison
Wan2.1 I:\Wan2.1\wan\modules\model.py from .attention import attention as flash_attention Flash Attention non dispo Windows
TripoSR I:\TripoSR\tsr\models\isosurface.py Utilise mcubes au lieu de torchmcubes Évite compilation CUDA

Notes techniques :

Compose files

Stack Chemin
notifications /stock_8to/33800-stack/docker/stacks/notifications/
supabase (docker run direct, voir tasks)
ai-orchestrator /stock_8to/33800-stack/projects/ai-orchestrator/

Notifications

Architecture

[Script/App] → POST /api/notify/push → [notif-logger:5300]
                                              ↓
                                    [apprise:8000] → ntfy + mail

Endpoints notif-logger

Endpoint Methode Usage
/api/notify/push POST Envoi push (ntfy)
/api/notify/mail POST Envoi email
/api/notify/all POST Push + mail
/health GET Healthcheck

Payload

{
  "title": "Titre notification",
  "body": "Corps du message",
  "level": "info|warning|critical"
}

Test rapide

curl -X POST "http://192.168.1.12:5300/api/notify/push" \
  -H "Content-Type: application/json" \
  -d '{"title": "TEST", "body": "Message test"}'