33800 Docs

← Retour

Mémoire Claude - Infrastructure 33800

⚠️ RÈGLES OBLIGATOIRES (À RESPECTER EN PREMIER)

⚠️ LIRE ET APPLIQUER CES RÈGLES - PAS D'EXCUSE

Ces règles existent car Claude les a déjà violées. Si une règle est écrite ici, c'est qu'elle DOIT être respectée. Ne PAS ignorer ces règles puis s'excuser après. RELIRE ce fichier avant chaque action importante.

  1. TOUJOURS proposer avant de faire → créer fichier .md dans /home/gouroubleu/propositions/
  2. ATTENDRE validation de l'utilisateur avant d'exécuter
  3. Documenter dans /home/gouroubleu/tasks/ avec mise à jour de l'avancement
  4. Reporter dans /home/gouroubleu/backlog/ si nécessaire
  5. Nommage fichiers : JJ-MM-AAAA-HH-MM-description.md
  6. Code = GitLab → Tout code doit etre versionne sur GitLab AVANT deploiement
  7. Services = Dashboard → Tout nouveau service doit etre ajoute au dashboard
  8. Logs = Loki → Tout service doit envoyer ses logs vers Loki (voir section Logging)

⛔ INTERDICTIONS ABSOLUES (ajouté 18/01/2026, màj 20/01/2026)

  1. JAMAIS de grep pour modifier des fichiers → Lire le fichier ENTIER avec Read avant d'éditer
  2. JAMAIS de modifications en masse sans comprendre → Éditer ligne par ligne, une modif à la fois
  3. Dashboard = O2switch UNIQUEMENT → URL: https://dashboard.nowhere84.com (PAS dashboard.33800)
  4. generate.sh ne déploie PAS sur nginx → Il génère dans le repo et push vers O2switch, c'est TOUT
  5. Pas de nav.js ou autres "améliorations" non demandées → Faire uniquement ce qui est demandé
  6. JAMAIS remettre la faute sur les autres → Assumer mes erreurs, ne pas blâmer l'utilisateur ou le système
  7. JAMAIS déployer manuellement → Push vers GitLab, la pipeline CI/CD build et deploy automatiquement
  8. JAMAIS changer ce qui fonctionne → Ne modifier QUE ce qui est explicitement demandé
  9. JAMAIS supprimer du code fonctionnel en "nettoyant" → Lire TOUT le bloc avant de supprimer, vérifier chaque ligne
  10. Notification generate.sh OBLIGATOIRE → À la fin: nombre de pages + lien https://dashboard.nowhere84.com
  11. JAMAIS de rm -rf sur des données → INTERDIT de supprimer des dossiers data/, db/, volumes/ ou toute donnée persistante
  12. JAMAIS "réparer" en supprimant → Si un service ne démarre pas, DEMANDER à l'utilisateur, ne JAMAIS supprimer de données
  13. JAMAIS d'action destructive sans validation EXPLICITE → Toute commande rm, drop, truncate, delete nécessite accord écrit
  14. TOUJOURS git push après modification d'un projet GitLab → Même sans CI/CD, le code DOIT être versionné sur GitLab
  15. APRÈS AUTOCOMPACT → RELIRE LA MÉMOIRE → Après une compaction de contexte, TOUJOURS relire CLAUDE.md et credentials.md AVANT de continuer. Les erreurs post-compaction viennent du manque de contexte.
  16. 1 demande = 1 action → Ne PAS faire plusieurs appels API/tests quand l'utilisateur en demande un seul. Pas de "debug" avec des appels supplémentaires.
  17. JAMAIS d'IP:port dans le code → Toujours utiliser les domaines HTTPS *.33800.nowhere84.com. Pi-hole split-DNS résout en local. Voir pihole-split-dns.md
  18. Supabase GRANT obligatoire → Toute nouvelle table dans le schema connectors DOIT avoir GRANT ALL ... TO anon, authenticated, service_role. Sinon les requêtes échouent silencieusement.

🔧 Outils MCP Disponibles (UTILISER EN PRIORITÉ)

Config : ~/.claude/settings.json Server : /stock_8to/33800-stack/projects/mcp-claude-tools/server.py

Outil Description Usage
memory_search Recherche sémantique mémoire vectorielle Trouver infos dans docs/memory
memory_namespaces Stats namespaces mémoire Voir ce qui est indexé
connector_fetch Appeler APIs via Connectors Hub GitHub, Jellyfin, Proxmox, Supabase, Mailjet, Nextcloud
connector_list Liste connecteurs/instances Voir APIs disponibles
ssh_execute Commandes SSH distantes Exécuter sur PVE, prod-portainer, nginx, win11, gitlab
notify_send Notifications push/mail Alerter l'utilisateur
ai_job Jobs AI Orchestrator Lancer tâches IA (whisper, yolo, ollama)
ai_status Status GPU/queue/outils Vérifier disponibilité IA
ai_job_status Status d'un job Suivre progression job IA

Instances SSH préconfiguré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

IMPORTANT : Préférer les outils MCP aux commandes bash quand possible. Ils sont authentifiés et intégrés.


📦 Projets GitLab sans CI/CD (push manuel obligatoire)

Ces projets n'ont PAS de pipeline automatique (0 pipeline sur GitLab). Après modification → git add + commit + push :

Projet Chemin local Usage
smart-deploy /stock_8to/33800-stack/scripts/deploy Scripts déploiement
ci-templates - Templates CI/CD
infra-configs - Configs infra
nginx-configs - Configs nginx
mcp-claude-tools /stock_8to/33800-stack/projects/mcp-claude-tools Outils MCP Claude

Vérifié le 16/02/2026 via GitLab API (source de vérité = GET /api/v4/projects/:id/pipelines) Les autres projets (needfinder, dashboard-33800, ulias-lib, qwikjs-lib, json-editor, user-bucket, user-bucket-m) ont tous des pipelines CI/CD actives.

Procedure de fin de tache (OBLIGATOIRE)

Avant de terminer une tache ou session :

Rotation et maintenance (23/02/2026)


📚 Système de Mémoire (3 niveaux)

Niveau Dossier Usage
Core CLAUDE.md Règles + pointeurs (~300 lignes)
Index ~/.claude/index/*.md Données LIVE (auto-générées par generate.sh)
Memory ~/.claude/memory/*.md Documentation détaillée

Fichiers memory/ disponibles

Fichier Contenu
architecture-reseau.md Réseaux vmbr0/vmbr1, IPs, mDNS
pihole-split-dns.md Pi-hole Split-DNS, IPs autorisées, architecture sécurité
freebox.md Freebox Ultra, API, VPN WireGuard, port forwarding
acces-reseau.md RÉFÉRENCE ACCÈS : IPs autorisées, snippet nginx, Raph, VPN Rhinov
architecture-stockage.md Pools ZFS, structure /stock_8to, rsync
vms-details.md Hyperviseurs PVE/155, détails VMs
docker.md Config Docker, conf.gouroubleu.yml, scheduler.json
ci-cd.md Pipeline GitLab, Registry, Smart-Deploy
credentials.md Tous les credentials (SSH, API, etc.)
logging.md Loki, Promtail, Grafana
monitoring.md Dashboard, crons, scripts
services-actifs.md Stacks PROD, endpoints, notifications
workflows.md Commandes SSH, ZFS, déploiement
docs.md Index documentation ~/docs
scripts.md Index scripts ~/scripts
claude-workflow.md Propositions, tasks, backlog détaillé
sujets-transverses.md Conventions, ports, URLs, bonnes pratiques
qwik-auth-pattern.md Pattern Auth Qwik : plugin@auth.ts, sharedMap, SSR sans flash

Fichiers index/ (auto-générés par generate-claude-index.sh)

Fichier Contenu
services.md Containers Docker actifs
machines.md Serveurs et VMs
urls.md Sites nginx
stacks.md Stacks Docker
zfs.md Status ZFS
credentials-index.md Index credentials (sans valeurs)
propositions.md Liste propositions récentes
tasks.md Liste tasks récentes
backlog.md Liste backlog + prioritaires

🌍 Fédération Multi-Stack (Vision)

┌─────────────────────────────────────────────────────────────────────────────┐
│                           FÉDÉRATION STACKS                                  │
│   ┌─────────────────┐                          ┌─────────────────┐          │
│   │     33800       │◄────── WireGuard ───────►│     86000       │          │
│   │   (Bordeaux)    │      IP à IP direct      │   (Poitiers)    │          │
│   │ 82.65.119.221   │      Freebox Ultra       │   IP publique   │          │
│   └─────────────────┘                          └─────────────────┘          │
│           │                                            │                    │
│           └──────────────► O2SWITCH ◄──────────────────┘                    │
│                         (backup/dashboard)                                  │
└─────────────────────────────────────────────────────────────────────────────┘
Pattern Stack IPv4 IPv6
*.33800.nowhere84.com Bordeaux 82.65.119.221 2a01:e0a:2c:a320::1
*.86000.nowhere84.com Poitiers (Raph) 82.67.42.47 2a01:e0a:fb8:78c0::1
*.nowhere84.com O2switch 109.234.161.246 -

🌐 Architecture Réseau (résumé)

Réseau Bridge Plage Débit Usage
Principal vmbr0 192.168.1.0/24 1G Services, SSH, mDNS
Stockage vmbr1 10.10.10.0/24 10G NFS + SMB dédié

Détails complets : memory/architecture-reseau.md


🗄️ Architecture Stockage (résumé)

Pool Config Capacité Rôle
stock_8to RAIDZ1 (3x4To) 7.2 To Données PROD
stock_36to RAIDZ2 (5x12To) 33 To Backup + Médias
stock_1to Mirror (2xSSD) 928 Go DEV + GitLab

Détails complets : memory/architecture-stockage.md


📁 Structure 33800-STACK

/stock_8to/33800-stack/
├── docker/                    # Configuration Docker
│   ├── prod/                  # data-root Docker PROD
│   ├── dev/                   # data-root Docker DEV
│   ├── secrets/               # prod.env, dev.env
│   ├── shortcuts/             # Dockerfiles templates
│   └── stacks/                # Compose files
├── scripts/                   # Scripts d'automatisation
├── claude/                    # Historique Claude (persistant)
│   ├── propositions/
│   ├── tasks/
│   ├── backlog/
│   └── CLAUDE.md
├── monitoring/                # Dashboard monitoring
└── docs/                      # Documentation infra

🖥️ Machines principales

Machine IP Rôle
PVE 192.168.1.4 Hyperviseur principal + Claude
prod-portainer 192.168.1.12 Docker PROD
nginx 192.168.1.104 Reverse Proxy
gitlab 192.168.1.196 GitLab CE
win11 192.168.1.30 Windows + RTX 3090 + RTX 2070 Super

Détails complets : memory/vms-details.md


🔑 Credentials (accès rapide)

Service User Info
SSH Linux gouroubleu MyUlia75$w
SSH Windows gouro MyUlia75$w
Proxmox gouroubleu@pam MyUlia75$w
GitLab Gouroubleu Token: glpat-yaowLwWBJhXfzJEC8UBC
Portainer gouroubleu API: ptr_8B9+nxAyk...

Credentials complets : memory/credentials.md


🤖 Workflow Claude

"Prendre connaissance de la stack" (OBLIGATOIRE quand demande)

Lire TOUS ces fichiers en parallele, SANS EXCEPTION :

  1. Tous les fichiers memory/ :
    • memory/vms-details.md — Hyperviseurs (2 Proxmox!) et VMs
    • memory/architecture-reseau.md — Reseaux vmbr0/vmbr1
    • memory/architecture-stockage.md — Pools ZFS
    • memory/services-actifs.md — Stacks et services PROD
    • memory/docker.md — Config Docker, conf.gouroubleu.yml
    • memory/ci-cd.md — Pipelines, Smart-Deploy, Registry
    • memory/pihole-split-dns.md — Split-DNS, securite
    • memory/acces-reseau.md — IPs autorisees, nginx, VPN
    • memory/freebox.md — Freebox Ultra, API, port forwarding
    • memory/logging.md — Loki, Promtail, Grafana
    • memory/monitoring.md — Dashboard, crons
    • memory/credentials.md — Tous les credentials
    • memory/workflows.md — Commandes SSH, ZFS, deploiement
    • memory/scripts.md — Index scripts
    • memory/docs.md — Index documentation
    • memory/sujets-transverses.md — Conventions, ports, URLs
    • memory/claude-workflow.md — Propositions, tasks, backlog
    • memory/qwik-auth-pattern.md — Pattern Auth Qwik
  2. STATUS.md — Contexte temps reel
  3. backlog/00-INDEX-BACKLOG.md — Priorites

PAS de resume partiel. Lire TOUT puis resumer. Ne JAMAIS resumer a partir d'un seul fichier.

Au debut de chaque session (si pas de demande specifique)

  1. Lire STATUS.md : /home/gouroubleu/STATUS.md contient le contexte temps reel
    • Services actifs et leur etat
    • Derniers incidents
    • Travaux en cours
  2. Consulter les 3 derniers tasks : /home/gouroubleu/tasks/ (tries par date)
  3. Verifier backlog prioritaire : Grep "HAUTE" ou "CRITIQUE" dans backlog/

Pendant une session

En fin de session

Conventions fichiers

Dossier Usage Format nom
propositions/ Plans avant execution JJ-MM-AAAA-HH-MM-description.md
tasks/ Travaux realises JJ-MM-AAAA-HH-MM-description.md
backlog/ A faire plus tard JJ-MM-AAAA-description.md ou descriptif

Symlinks Claude

Chemin court Cible reelle
~/propositions /stock_8to/33800-stack/claude/propositions
~/tasks /stock_8to/33800-stack/claude/tasks
~/backlog /stock_8to/33800-stack/claude/backlog
~/docs /stock_8to/33800-stack/docs
~/scripts /stock_8to/33800-stack/scripts
~/STATUS.md /stock_8to/33800-stack/claude/STATUS.md

📚 Références rapides

Sujet Fichier memory/
Docker, conf.gouroubleu.yml docker.md
CI/CD, GitLab, Registry ci-cd.md
Logging Loki/Grafana logging.md
Dashboard, Crons monitoring.md
Services PROD, Notifications services-actifs.md
Commandes SSH, ZFS, Déploiement workflows.md