33800 Docs

← Retour

Sujets Transverses

Conventions de nommage

Domaines

Branches Git

Environnement Branche Config
PROD main conf.prod.gouroubleu.yml
DEV develop conf.dev.gouroubleu.yml

Fichiers

Type Format
Propositions JJ-MM-AAAA-HH-MM-description.md
Tasks JJ-MM-AAAA-HH-MM-description.md
Backlog JJ-MM-AAAA-description.md
Config déploiement conf.{branch}.gouroubleu.yml

ATTENTION : Le fichier de config est conf.{branch}.gouroubleu.yml (ex: conf.prod.gouroubleu.yml, conf.dev.gouroubleu.yml), PAS conf.gouroubleu.yml sans préfixe.

Schemas PostgreSQL

Convention : 1 projet = 1 schema dédié

Projet Database Schema
NeedFinder postgres needfinder
Notifications postgres notifications
AI Orchestrator postgres public (ai_jobs table)
QwikPress postgres qwikpress
etc. postgres {nom-projet}

Avantages :

Ports standards

Service Port
Portainer 9443
Loki 3100
Grafana 3000
ntfy 8080
notif-logger 5300
connectors-api 5403 (via wireguard-sidecar, PORT=5403)
browser-connector 5404
needfinder 5200
ai-orchestrator 5501
qwik-interface-generator 5505
connectors-front 5402
claude-memory 5510
claude-memory-front 5511
ulias-org 5515
ulias-org-web 5516
dashboard-33800 (backend) 5520
dashboard-33800-frontend 5521
authentificator 8284
Ollama (win11) 11434
ComfyUI (win11) 8188

URLs importantes

Service URL
Dashboard https://dashboard.nowhere84.com
GitLab https://gitlab.33800.nowhere84.com
Grafana https://grafana.33800.nowhere84.com
Portainer https://192.168.1.12:9443
PVE https://192.168.1.4:8006
Proxmox 155 https://proxmox.33800.nowhere84.com
Connectors Hub https://connectors.33800.nowhere84.com
NeedFinder API https://needfinder-api.33800.nowhere84.com
AI Orchestrator https://ai-orchestrator.33800.nowhere84.com
QIG https://qig.33800.nowhere84.com
Dashboard Qwik https://dashboard.33800.nowhere84.com
Dashboard API https://dashboard-api.33800.nowhere84.com
Browser https://browser.33800.nowhere84.com
Ulias Org https://ulias-org.33800.nowhere84.com
Ulias Web https://ulias-web.33800.nowhere84.com
Claude Memory https://claude-memory.33800.nowhere84.com
Memory Front https://memory.33800.nowhere84.com

Environnements

PROD

DEV

Bonnes pratiques

Déploiement

  1. Code sur GitLab (jamais déployer manuellement)
  2. CI/CD build et push vers registry
  3. Smart-deploy avec health check
  4. Rollback automatique si échec

Logging

  1. Tous services → Loki
  2. Labels : env, host, type, service
  3. Rétention : 30j hot, 90j cold (O2switch)

Backup

  1. stock_8to → stock_36to (rsync horaire)
  2. GitLab → backup 6h
  3. Snapshots ZFS manuels si besoin

Sécurité

  1. SSL wildcard sur tous les services
  2. Pas de credentials en clair dans le code
  3. Secrets dans prod.env / dev.env
  4. Validation avant actions destructives

URLs dans le code (CRITIQUE)

JAMAIS d'IP:port dans le code applicatif (callbacks, webhooks, URLs internes). Toujours utiliser les domaines HTTPS *.33800.nowhere84.com. Le split-DNS Pi-hole résout vers nginx en local automatiquement. Voir pihole-split-dns.md pour détails.

Ordre des opérations (CRITIQUE)

Règle : Toujours MIGRER/SAUVEGARDER avant SUPPRIMER

Exemple migration DEV → PROD :

  1. Backup des données actuelles
  2. Créer la cible (schema PROD, etc.)
  3. Migrer les données vers PROD
  4. Vérifier que PROD fonctionne
  5. SEULEMENT APRÈS : nettoyer/supprimer DEV

JAMAIS supprimer avant d'avoir sécurisé les données ailleurs.

NE PAS CASSER CE QUI FONCTIONNE

Règle : Après une migration (DEV→PROD, changement d'IP, etc.), TOUJOURS mettre à jour :

  1. Scripts de génération dashboard (generate.d/*.sh, generate-*.sh)
  2. Configs avec IPs hardcodées
  3. Fichiers de test/monitoring

Fichiers critiques avec IPs : | Fichier | Variable | Vérifier après migration | |---------|----------|--------------------------| | generate-needfinder.sh | API_URL | IP PROD NeedFinder | | generate.d/20-ai-jobs.sh | PROD_IP | IP prod-portainer | | collect.sh | Hosts | IPs des serveurs |

AVANT de modifier un fichier qui fonctionne :

  1. Vérifier qu'on ne casse pas une fonctionnalité existante
  2. Tester localement si possible
  3. Garder une copie du fichier original

Proxy frontend → API (connectors-front)

IMPORTANT — PIÈGE RÉCURRENT : Le frontend (connectors-front.33800.nowhere84.com) et l'API (connectors.33800.nowhere84.com) sont sur des domaines différents. Toute URL relative /api/... dans le HTML rendu côté front sera résolue sur le domaine du front, PAS sur l'API.

Solution : entry.express.tsx contient un proxy Express qui forward certaines routes /api/* vers l'API backend. Quand on ajoute un nouveau endpoint API consommé par des URLs relatives dans le HTML (images, streams, fichiers), il FAUT ajouter la route proxy dans entry.express.tsx.

Routes proxy existantes :

Fichier : connectors-front/src/entry.express.tsx — fonction proxyToApi

Règle : Toute nouvelle URL relative /api/... utilisée dans un src, href, ou img côté front → ajouter dans le proxy Express.