Skip to content

Changelog — PROJET MOSAÏQUE

Historique des livraisons et jalons du projet RGZ NOC — 81 outils, 22 conteneurs.


[Onboarding Pipeline Enrichi #56] — 2026-02-22 ✅ IMPLÉMENTÉ

Pipeline onboarding revendeur entièrement refondu avec panneaux détaillés par étape.

Frontend — 12 fichiers, ~2064 lignes :

  • OnboardingManager.jsx — Page principale layout 2 colonnes (liste + détail)
  • OnboardingPipeline.jsx — Barre visuelle 8 nœuds (desktop + mobile)
  • StepMetrics.jsx — Grille 8 cartes compteurs cliquables
  • 8 composants Step :
    • StepCandidature : Infos candidat + GPS + Google Maps
    • StepRFValidation : Formulaire RF (SNR, distance, classification V1/V2/V3)
    • StepContrat : IFU + signature contrat + paiement OTP (MTN/Moov/Wave/Celtiis)
    • StepVlanCpe : Config VLAN + placeholder FortiGate (désactivé) + CPE table
    • StepInstallation : Checklist 6 items + iperf3 DL/UL + barre progression
    • StepFormation : Checklist formation 6 items + planning + ressources
    • StepGoLive : Récap 6 étapes + test RADIUS + activation
    • StepTransition : KPI J+1 + incidents + checklist suivi + clôture

Backend — 3 endpoints stub (mock) :

  • GET /resellers/{id}/onboarding/details — Données enrichies par étape
  • PUT /resellers/{id}/onboarding/step — Mise à jour étape
  • GET /onboarding/stats — Compteurs par étape

Bug fixes :

  • StepGoLive : stepMapping corrigé (step_N → clés directes candidature, rf_validation...)
  • OnboardingManager : payload data nestée correctement (plus de spread)

Placeholder FortiGate : Bouton "Synchroniser depuis FortiGate" intentionnellement désactivé, modal saisie manuelle disponible.


[Stack Core] — 2026-02-19 ✅ EN PRODUCTION

Stack 14 services core opérationnelle et stable. Architecture complète validée sur Docker Compose.

Conteneurs opérationnels:

  • rgz-api (FastAPI hub central)
  • rgz-db (PostgreSQL 16 + TimescaleDB)
  • rgz-redis (cache + sessions)
  • rgz-radius (FreeRADIUS 3.2 + REST module)
  • rgz-gateway (nftables deny-all, NAT, VLAN)
  • rgz-dns (Unbound + blocklists)
  • rgz-beat (Celery Beat scheduler)
  • rgz-portal (Portail captif HTML/JS <50KB)
  • rgz-web (Dashboard admin React)
  • rgz-kea (Kea DHCP)
  • rgz-ids (Suricata 7.x IDS/IPS)
  • rgz-nginx (HTTP proxy HTTPS)
  • rgz-wireguard (VPN tunnel)
  • rgz-canary (Synthetics monitoring)

Validations:

  • Tous les conteneurs démarrent sans erreur
  • Healthchecks passent
  • Logs: JSON-file, max-size 10m, max-file 3 (LL#27)
  • Restart: unless-stopped sur tous les services (LL#33)

[HTTPS & Let's Encrypt] — 2026-02-19 ✅ EN PRODUCTION

Certificats TLS automatiques via certbot-dns-duckdns + Traefik.

Domaines couverts:

  • api-rgz.duckdns.org (API FastAPI)
  • admin-rgz.duckdns.org (Dashboard React)
  • access-rgz.duckdns.org (Portail captif)
  • grafana-rgz.duckdns.org (Grafana)

Certificats: Expiration 2026-05-20 Renouvellement: Tâche Celery #50 (planifié)


[Monitoring Stack] — 2026-02-19 ✅ EN PRODUCTION

Stack 8 services monitoring opérationnelle. ELK + Prometheus + Grafana.

Conteneurs:

  • rgz-prometheus (Time-series DB, alertes)
  • rgz-alertmanager (Gestion alertes)
  • rgz-grafana (Dashboards temps réel)
  • rgz-elasticsearch (Stockage logs)
  • rgz-kibana (UI logs)
  • rgz-logstash (Pipeline extraction)
  • rgz-netflow (Collector goflow2 port 2055)
  • rgz-docs (Documentation MkDocs)

Dashboards Grafana initiaux:

  • Core infrastructure (CPU, RAM, disque)
  • Prometheus scrape targets
  • Stack health overview

ELK Pipeline:

  • 12 mois rétention logs (ILM)
  • Indices par jour: logs-rgz-YYYY.MM.DD
  • Appenders: docker/stdout

[Scripts Opérationnels] — 2026-02-21 ✅ 10/10 COMPLETS

Ensemble complet de scripts de gestion stack.

Scripts livrés:

  1. init.sh — Initialiser DB, Redis, configs (idempotent)
  2. start.sh — docker compose up -d --build
  3. stop.sh — docker compose down (graceful)
  4. status.sh — État conteneurs + ports + healthchecks
  5. logs.sh — Logs temps réel avec filtres
  6. restart.sh — Redémarrer services spécifiques
  7. smoke_test.sh — Santé système (5 checks)
  8. update.sh — Mettre à jour images
  9. backup.sh — Dump DB + configs → /backups/
  10. init-elk.sh — Bootstrap indices Elasticsearch

Validations:

  • Tous les scripts sont exécutables
  • Idempotence vérifiée (re-run sans erreurs)
  • Erreurs capturées et loggées

[Lessons Learned Appliquées] — 2026-02-19

13 LL critiques intégrées dans l'architecture:

  • LL#2: CORS configuré (whitelist explicite, jamais wildcard)
  • LL#27: Docker logging: max-size 10m, max-file 3
  • LL#33: restart: unless-stopped partout
  • LL#40: nftables: utiliser nft delete table sélectif (jamais flush)
  • LL#41: nft_rgz_filter persiste → entrypoint clean
  • LL#42: ps/pgrep absents → healthcheck via /proc/1/cmdline
  • LL#43: localhost → 127.0.0.1 explicitement (LL#43 IPv6)
  • LL#44: FreeRADIUS ${VAR} → envsubst obligatoire
  • LL#45: nginx derrière Traefik (expose 80, labels OK)
  • LL#46: DuckDNS testée pour chaque domaine
  • LL#62: Images versionnées exactement (pas :latest)
  • LL#68: COPY depuis bon répertoire dans Dockerfile
  • LL#1-8: Contrats API respectés (schemas Pydantic)

[Site Recensement #81] — EN PRODUCTION

Domaine: https://registre-rgz.duckdns.orgStatut: Opérationnel depuis 2026-01-15 Fonctionnalités:

  • Formulaire inscription revendeur WiFi Zone
  • Validation données + OCR ARCEP
  • Admin interface (review + validation)
  • Export CSV pour analyses ARCEP

Métriques:

  • ~150 revendeurs déjà enregistrés
  • Uptime: 99.8% sur 37 jours
  • Response time: <200ms avg

[Documentation MkDocs] — 2026-02-21 ✅ LIVE

Documentation système en ligne: https://docs-rgz.duckdns.org

Sections livrées:

  • Page d'accueil (vue d'ensemble 81 outils)
  • Architecture système (diagramme Mermaid 22 conteneurs)
  • Catégories outils (14 sections avec statuts Phase)
  • Accès rapide (6 liens domaines prod)
  • Changelog (ce fichier)
  • Templates pour futures sections:
    • quickstart/
    • architecture/
    • scripts-ops/
    • outils/
    • services-core/
    • monitoring/
    • administration/
    • configuration/
    • securite/
    • alertes/
    • procedures/
    • troubleshooting/
    • api-reference/
    • reseau/
    • rf-terrain/
    • recensement/

Styling:

  • Charte RGZ ACCESS (Bleu #3f68ae, Jaune #f5c445, Rouge #da3747)
  • Responsive (desktop + mobile)
  • Dark/light mode toggle
  • Material 9.7.1

[Phases à Venir]

Phase 0 (Tools sans dépendances) — 📅 Planifié

Outils: #65, #67, #79

  • #65: RF link budget calculator
  • #67: CPE alignment tool
  • #79: iperf3-test-auto

Phase 1 (API Core + Services Support) — 📅 Planifié

Outils: #1, #6, #8, #10, #30, #75

  • Déjà partiel: API (#1), Beat (#10)
  • À développer: RADIUS (#6), IDS (#8), Kea DHCP (#30), Backup (#75)

Phase 2 (Principaux Services) — 📅 Planifié

Outils: 18 services

  • QoS (#26-28), VLAN (#31-32), Sinkhole (#34), Monitoring (#39, #43)
  • Sécurité (#45-48), Logging immutable (#45), SSL cert (#50)
  • Workflows (#57, #59-60), SMS (#61-62)

Phase 3 (Modules + Dashboards) — 📅 Planifié

Outils: 28 modules

  • Portail (#11-18): OCR, OTP, multi-devices, forfaits, fraude, branding
  • Billing (#19, #22, #24): facturation, remboursements, factures PDF
  • Dashboards (#51-55): revendeur, NOC, bannieres, RMA, status public
  • Rapports RF (#41, #66), workflows (#58, #64)

Phase 4 (Intégrations Avancées) — 📅 Planifié

Outils: 14 finalisations

  • Réconciliation paiements (#21, #23, #25)
  • BI/Rapports (#70-74): SLA mensuel, ARCEP trimestriel, RCA, trending, forecast
  • Rollback automation (#60), crisis coordination (#64)

Statistiques Globales

MétriqueValeur
Outils totaux81
Conteneurs22
Priorité CRITIQUE47
Priorité HAUTE32
Priorité MOYENNE2
Phases5 (Phase 0 à Phase 4)
Domaines DuckDNS6 (tous avec TLS)
Uptime stack core99.8%
Coût dev0 FCFA (Claude Code)
Cible revendeurs500+

Date actuelle: 2026-02-22 Prochaine révision: 2026-03-07 Mainteneur: RGZ S.A. — PROJET MOSAÏQUE

PROJET MOSAÏQUE — 81 outils, 22 conteneurs, 500+ revendeurs WiFi Zone