Version courante
v1.1.8
publiée le 14 octobre 2026.
Ces notes de version retracent les évolutions du service jusqu’à la version stable actuelle.
Notes de version complètes
v1.1.8Actuelle
Tableau de bord : type de domaine exact et chargement rapide
Cette release affiche le bon type de chaque domaine sur le tableau de bord et accélère son chargement pour les organisations à fort trafic.
Le tableau de bord indique « DNS géré » ou « CNAME » selon le mode réel de chaque domaine, comme la page Domaines ; tous les domaines y apparaissaient comme « DNS géré ».
Les chiffres d’usage du tableau de bord sont conservés 5 minutes : la page ne prend plus jusqu’à 16 secondes pour les organisations à fort trafic.
Source: Correctifs du tableau de bord client 2026-10-14
v1.1.7Publiée
Vue utilisateur : la page Partner POP suit le compte affiché
Cette release corrige la page Partner POP qui, en vue utilisateur, montrait l’organisation de l’administrateur au lieu de celle du compte affiché.
En vue utilisateur, la page Partner POP, la page d’état d’un POP et la mise en maintenance suivent l’organisation du compte affiché, avec ses propres droits, comme les autres pages de la console.
Source: Correctif de la vue utilisateur sur la page Partner POP 2026-10-13
v1.1.6Publiée
Pages réseau privé et facturation stables pour les organisations à fort trafic
Cette release corrige la page des réseaux privés qui faisait planter PHP (erreur 502) pour les organisations à fort trafic, et accélère la page de facturation.
Les statistiques d’un réseau privé sont agrégées par heure et par pair et POP dans la base, en deux lectures au lieu de quatre, au lieu de remonter des centaines de milliers de lignes en mémoire : la page ne dépasse plus la mémoire PHP.
Les agrégats d’usage des pages réseau et facturation sont conservés 5 minutes, ce qui rend ces pages immédiates après le premier affichage.
PHP dispose de 256 Mo par requête au lieu de 128 Mo, pour qu’un dépassement donne une erreur propre plutôt qu’un worker tué.
La liste des demandes Partner POP affiche chaque POP enrôlé avec son état, à côté du lien vers sa page.
Source: Correctif de performance des statistiques d’usage 2026-10-13
v1.1.5Publiée
Accès partenaire au POP, mise en maintenance et raison des refus DNS
Cette release ouvre aux partenaires une page d’état de leur POP avec une mise en maintenance encadrée, et garde la raison donnée par un POP qui refuse une synchronisation DNS.
Les partenaires qui hébergent un POP disposent d’une page d’état : routage, disponibilité, dernier signal de présence, requêtes, bande passante et certification.
Ils peuvent mettre leur POP en maintenance (15 à 240 min, budget de 720 min sur 30 jours glissants) : le POP sort du routage, ce temps n’est pas compté dans la disponibilité, et seuls les contrôles de santé le remettent en service.
Un rapport d’agent ou un contrôle de santé ne peut plus remettre en service un POP en maintenance.
Quand un POP refuse une synchronisation DNS, sa raison (rechargement CoreDNS échoué, vérification échouée…) reste visible dans la commande et dans la console : la liste des vues est repliée et la fin du message est conservée.
Source: Accès partenaire au POP et correctif des messages de synchronisation DNS 2026-10-13
v1.1.4Publiée
Cartes des POP et des nœuds avec le fond OpenStreetMap
Cette release rétablit le fond de carte OpenStreetMap sur les cartes de la console Vuexy, qui n’affichaient que les points.
Les cartes des POP d’un domaine, des statistiques et de la localisation d’un nœud affichent de nouveau le fond OpenStreetMap sous les points, avec l’attribution.
En thème sombre, le fond de carte est assombri pour rester lisible avec les marqueurs.
Source: Correctif des cartes de la console Vuexy 2026-10-13
v1.1.3Publiée
Synchronisation DNS de toutes les zones sans dépassement mémoire
Cette release corrige l’arrêt de la synchronisation DNS de toutes les zones par manque de mémoire et affiche la raison des échecs de POP.
La charge DNS envoyée aux POP n’est plus dupliquée en mémoire pour chaque POP : une synchronisation de zone n’en garde qu’une copie, quel que soit le nombre de POP, et la commande dns:sync-zones parcourt toutes les zones sans dépasser la mémoire.
La mémoire d’une synchronisation est libérée dès la fin de l’envoi aux POP, au lieu d’attendre le ramasse-miettes.
Quand un POP refuse une synchronisation DNS, la commande affiche son message et la raison du refus, au lieu du seul code HTTP.
Source: Correctif de la synchronisation DNS de toutes les zones 2026-10-13
v1.1.2Publiée
Schéma d’origine Auto compatible avec les POP existants
Cette release n’envoie le schéma d’origine « Auto » aux POP que lorsque tous le gèrent ; sinon HTTP est utilisé, comme avant la 1.1.0.
Le schéma d’origine « Auto » n’est transmis aux POP que lorsque tous le gèrent ; jusque-là, HTTP est utilisé comme avant la 1.1.0, ce qui évite les erreurs 502 des POP non mis à jour.
Les POP annoncent la gestion du schéma « Auto » dans leurs capacités, et le mode s’active de lui-même quand la flotte est à jour.
Source: Correctif de compatibilité du schéma d’origine Auto avec les POP non mis à jour 2026-10-13
v1.1.1Publiée
Menus déroulants visibles et correctifs de la console Vuexy
Cette release corrige les menus déroulants qui s’affichaient sous la carte suivante dans la console Vuexy.
Les menus déroulants ouverts dans une carte s’affichent au-dessus des cartes suivantes, sur toutes les pages.
L’audit visuel vérifie désormais qu’aucun menu ouvert n’est recouvert.
Les enregistrements TXT de plus de 255 octets contenant des caractères accentués sont découpés sans couper un caractère, et la synchronisation DNS aboutit.
Source: Correctifs de la console Vuexy après la mise en production 1.1.0 2026-10-12
v1.1.0Publiée
Console Vuexy, origines HTTPS d’abord et exploitation edge durcie
Cette release apporte la nouvelle console Vuexy, avec les mêmes parcours sur bureau, tablette et mobile. Le mode automatique des origines essaie désormais HTTPS en premier. Le durcissement edge et l’exploitation sont renforcés.
La console passe à la mise en page Vuexy : navigation horizontale, en-têtes de page et formulaires structurés sur tous les écrans.
Les domaines ont des espaces dédiés pour le DNS, la sécurité, le WAF, les POP, les statistiques, le courrier et le SEO.
Les réseaux privés, les organisations, la facturation et le support suivent le même modèle de page.
Le monitoring, les agents, les règles d’alerte et l’observabilité admin utilisent des listes et des tiroirs homogènes.
Le mode automatique des origines essaie HTTPS en premier, puis HTTP seulement si la connexion HTTPS échoue. Le choix est mémorisé 10 minutes par origine.
Les boutons principaux ont un texte sombre sur l’orange de marque, conforme au contraste WCAG AA.
Les nombres suivent le format suisse, et les états vides indiquent l’action à faire.
Les erreurs des POP sont traduites en phrase claire, avec le détail technique disponible au besoin.
Les tableaux de domaines et de monitoring deviennent des cartes lisibles sur téléphone.
Les notes de version sont disponibles en français, anglais et allemand.
Les POP dont le panneau ne répond plus sont retirés automatiquement, et une sonde de bout en bout vérifie l’application sur chaque POP.
Le durcissement edge limite le nettoyage des fichiers temporaires Ansible et protège la convergence DNS sous charge sur les micro-POP.
Les déploiements edge utilisent Go 1.26.9 et x/net 0.60.0, qui corrigent une vulnérabilité HTTP/2 atteignable.
Source: Migration Vuexy de la console, origines en mode automatique, durcissement edge et exploitation 2026-10-11
v1.0.4Publiée
Monitoring fiable, alertes confirmées et pages de statut
Cette release consolide la cadence du monitoring, les diagnostics et la livraison des notifications, tout en séparant le brouillon de la page de statut publiée et en améliorant la lisibilité des écrans.
Les checks conservent leur cadence configurée et les tâches en attente restent récupérables après une interruption de la file de traitement.
Les diagnostics ping, HTTP, TCP et DNS détaillent les réponses, les délais et les erreurs utiles au dépannage.
Les indicateurs distinguent la disponibilité mesurée, la couverture des contrôles et les périodes sans données.
Les destinataires des canaux e-mail confirment leur adresse avant de recevoir les alertes; la confirmation peut être renvoyée.
Les liens de confirmation du monitoring fonctionnent derrière un proxy HTTPS et les liens valides déjà envoyés restent utilisables; les paramètres signés, l’expiration et le jeton du destinataire restent vérifiés.
L’abonnement aux incidents fonctionne sur les domaines de statut personnalisés et affiche la confirmation d’envoi dans la langue de la page.
Les notifications reprennent après un échec temporaire et respectent les périodes de maintenance.
La page de statut publiée reste indépendante du brouillon; un éditeur périmé ne peut plus écraser une configuration publique plus récente.
Les logos personnalisés se chargent sur le même domaine que la page affichée, aussi bien en public que dans l’aperçu du brouillon.
Les pages de statut proposent les modes clair, sombre et système.
Les sous-menus, filtres, boutons et canaux de notification restent lisibles sur desktop, tablette et mobile.
La CLI 1.0.9 respecte la cadence de chaque check et retente un envoi de résultat échoué sans attendre l’intervalle complet.
Source: Consolidation du monitoring et des pages de statut
v1.0.3Publiée
Réseaux privés, exploitation edge et expérience publique
Cette release consolide les correctifs publiés depuis la 1.0.2: les réseaux privés conservent le mode de travail choisi, la console et la carte publique gagnent en lisibilité, tandis que les déploiements edge, la distribution CLI et la facturation sont stabilisés.
Le mode avancé d’un réseau privé reste actif après l’application d’une modification, y compris lorsque le formulaire ne renvoie pas explicitement le mode courant.
Le rail de création d’un second réseau conserve une largeur exploitable et empile ses choix afin d’éviter les libellés écrasés ou les débordements.
Les rapports d’usage anciens d’un réseau privé ne bloquent plus les régularisations attendues.
Le thème sombre rétablit le contraste des contrôles, panneaux et badges de tâches sur les principaux écrans de la console.
La carte publique distingue les POPs qui partagent une position et rétablit un affichage fiable de leur disponibilité.
Les POPs partenaires peuvent afficher leur sponsor; Gland met en avant UP-NETWORK et Amiens ARYK.
La documentation client est publiée en français, anglais et allemand avec recherche, référence API et parcours produit.
Les redirections des ports publics IPv6 sont restaurées et leur rollout retrouve automatiquement le conteneur applicatif actif.
Le packaging immuable accepte les nouveaux sous-dossiers signés et reconstruit l’artefact CLI lorsqu’une source CLI vérifiée change.
L’inscription applique la facturation stable du trafic premium et la CLI 1.0.8 l’affiche sans le présenter comme un quota classique.
Détails de la version
Réseaux privés et console
Le choix guidé ou avancé est mémorisé en session puis réutilisé par les redirections après création, modification ou suppression.
La colonne de démarrage reste dimensionnée sur les écrans desktop intermédiaires; les cartes de type d’accès passent sur une seule colonne et leurs libellés peuvent se replier sans sortir du panneau.
Les statistiques de réseau ne restent plus bloquées par un rapport d’usage périmé lorsqu’une lecture plus récente doit être consolidée.
Les contrastes du thème sombre sont harmonisés sur les réglages, la facturation, le monitoring, les réseaux privés et les badges de tâches.
Carte publique, partenaires et documentation
Les POPs superposés sont regroupés visuellement et restent accessibles individuellement au clavier comme au pointeur.
La disponibilité publique repart d’une base stable et les données de carte ne masquent plus les POPs attendus.
Le branding sponsor est centralisé pour les POPs partenaires et décliné sur la console ainsi que sur le site public.
Le portail documentaire multilingue couvre les concepts, guides, recettes, intégrations, API REST/OpenAPI et procédures de dépannage.
Facturation et CLI
Les nouveaux comptes utilisent le modèle stable de facturation du trafic premium avec allocation mensuelle explicite.
La commande de facturation distingue maintenant le trafic premium facturé à l’usage d’une limite de bande passante classique.
La CLI 1.0.8 est reconstruite depuis les sources vérifiées du commit de release au lieu de réutiliser un ancien paquet.
Le téléchargement console pointe par défaut vers l’artefact CLI immuable de la release signée.
Edge et déploiement
Les règles edge rétablissent les redirections des ports HTTP et HTTPS publics sur IPv6 avec une couverture de contrat dédiée.
Le workflow de rollout identifie le conteneur applicatif réellement actif avant d’exécuter la commande de déploiement.
Le constructeur de release accepte les fichiers vérifiés dans de nouveaux sous-dossiers sans autoriser de traversée, lien symbolique ou sortie de la racine signée.
Les overlays console, tests navigateur et changements CLI sont inclus dans l’artefact opérateur correspondant au commit publié.
Source: ergonomie des réseaux privés, expérience publique et consolidation des opérations edge 2026-09-02
v1.0.2Publiée
Console multilingue, réseaux guidés et WAF harmonisé
La console devient cohérente en français, anglais et allemand; la création d’un réseau privé guide le premier accès et génère des commandes directement utilisables, tandis que le WAF gagne une structure plus lisible et robuste sur mobile.
Les écrans console, administration, monitoring, e-mails et états dynamiques disposent désormais d’une couverture de traduction vérifiée en français, anglais et allemand.
Un scanner de présentation repère les textes visibles oubliés, y compris les titres de pages Blade, et contrôle la présence des clés ainsi que leurs paramètres dans chaque catalogue.
Les textes saisis par un opérateur sur un incident automatique restent désormais strictement verbatim dans la console, la page publique et les notifications.
Le premier réseau privé présente un parcours en trois étapes, des formulaires accessibles et une commande d’enrôlement dont le chemin de sortie est explicite.
La CLI 1.0.7 documente ce parcours et conserve la compatibilité générationnelle des status-agents.
Le panneau WAF utilise une seule hiérarchie visuelle, des sections avancées repliables et un tiroir de création de règle adapté aux petits écrans.
Les badges, libellés de statut, titres de fichiers et groupes de la page de statut restent localisés sans perdre leur sémantique ni leurs icônes.
Détails de la version
Console et monitoring multilingues
Les libellés de statut et d’interface passent par des helpers centralisés afin que les valeurs métier stables ne dépendent jamais de la langue affichée.
La couverture automatique vérifie les chaînes visibles dans les vues, les messages applicatifs et les titres de pages, puis compare les paramètres de traduction dans les trois catalogues.
Les incidents distinguent maintenant la provenance de leur titre et de leur message: une modification humaine ne peut plus être retraduite ni remplacée par un événement automatique ultérieur.
Les e-mails de monitoring et d’abonnement à une page de statut utilisent la même provenance, avec un fallback de titre lui aussi localisé.
Réseaux privés et CLI
L’état vide explique le choix du POP VPN, la création de la clé d’accès et la connexion WireGuard avant d’afficher le formulaire guidé.
Les labels des formulaires sont associés à leurs champs et le nom de l’appareil est clairement distingué du nom de la clé d’enrôlement.
Les exemples de profil utilisent un fichier de sortie explicite et cohérent avec les commandes affichées par la console.
La CLI 1.0.7 publie ces corrections de documentation sans modifier les contrats API existants.
Panneau WAF
Le centre de commande, les métriques et les contrôles partagent un cadre unique et des séparateurs légers au lieu d’une accumulation de cartes imbriquées.
Les réglages challenge, règles managées, géographie, IP, règles personnalisées, rate limit et edge restent accessibles dans des sections repliables indépendantes.
La création de règle s’ouvre dans un tiroir dédié et les éditeurs géographiques, rate limit et offcanvas restent dans le viewport mobile.
Les traductions des actions, badges de synchronisation et messages de validation sont conservées dans la nouvelle structure.
Source: localisation de la console, mise en service des réseaux privés et intégration de la mise en page WAF 2026-08-25
v1.0.1Publiée
Pied de page stable et alertes administrables
La convergence DNS versionnée est activée et refuse les faux succès des anciens payloads ignorés; les fichiers et logos de monitoring retrouvent un parcours fiable, tandis que le panneau retire les dernières mentions de bêta et rend les alertes administrables.
Chaque mutation DNS envoie désormais sa révision exacte aux POPs; un HTTP 200 qui correspond à un payload ignoré n’est plus traité comme un déploiement réussi.
Un simple rafraîchissement de métriques ne déclenche plus une nouvelle révision DNS globale après l’expiration momentanée d’un heartbeat.
Un pic instantané CPU, mémoire ou disque peut toujours écarter un POP surchargé, mais son rapport métrique ne republie plus toutes les zones DNS.
Les rapports heartbeat et métriques ne peuvent plus réactiver un POP pendant la fenêtre atomique entre son retrait pour échec public et la création de l’alerte.
La décision online/offline est recalculée sur la ligne verrouillée afin qu’un rapport déjà en vol ne puisse pas annuler une transition de santé plus récente.
La fraîcheur DNS repose sur le rapport authentifié reçu par le contrôle central; un décalage d’horloge du POP ne peut plus expirer une preuve exacte et recréer en boucle toutes les révisions.
Un ancien agent qui termine une synchronisation legacy fonctionnellement vérifiée ne fait plus retirer puis réadmettre en boucle un POP déjà validé; ce chemin ne peut pas admettre un nouveau POP.
La courte phase legacy applying d’un POP déjà admis conserve également le routage tant que son verrou et son rapport restent frais; un nouveau POP et un verrou périmé restent exclus.
Un POP déjà admis qui connaît la révision suivante conserve une fenêtre persistée et non glissante de 90 secondes pour prendre le verrou; la preuve exacte ferme cette fenêtre et les transitions expirées restent exclues.
Le contrôle central et l’edge partagent désormais la même limite de verrou DNS à 240 secondes: une application valide de 210 secondes ne déclenche plus un retrait de POP ni une republication globale en boucle.
Chaque tentative réserve une part de temps à tous les POPs et deux workers empêchent une synchronisation système lente de bloquer les mutations DNS clientes.
Les transferts de fichiers appliquent les options SSH requises à Ansible, SFTP et SCP; une ancienne tâche terminale ne peut plus invalider une copie réussie.
Les logos publiés des pages de statut personnalisées sont servis depuis un chemin Nginx read-only dédié sans exposer le reste du stockage.
Le pied de page n’affiche plus de bandeau bêta: la version courante reste accessible sous forme d’un lien discret vers le changelog.
Le badge supérieur compte uniquement les alertes ouvertes qui restent à voir, affiche 99+ au-delà de la limite et conserve le total exact pour l’accessibilité.
Les administrateurs peuvent sélectionner plusieurs alertes, les marquer comme vues ou traitées et vider le compteur avec une action globale dédiée.
Aucune action de nettoyage ne supprime l’historique: les alertes ouvertes, vues et résolues gardent leurs états et leurs auteurs.
Le packaging immuable borne désormais l’installation QEMU et réécrit aussi le nouveau fichier apt-mirrors des runners GitHub afin d’éviter le miroir Ubuntu Azure défaillant.
Le smoke navigateur réutilise ce miroir corrigé et borne Playwright à dix minutes au lieu de pouvoir bloquer toute la CI.
Le déploiement borne désormais les images immuables locales à trois générations et refuse un nouveau chargement lorsque l’espace libre passe sous 8 Gio, sans toucher aux volumes ni aux images référencées.
Détails de la version
DNS, fichiers et monitoring
Le runtime immuable active le producteur de révisions DNS après validation de la capacité dns_readiness_v1 sur tous les POPs ciblés.
Le contrôle central exige l’accusé de la révision désirée et refuse tout faux succès provenant d’un ancien payload ignoré par un edge versionné.
La fraîcheur d’un heartbeat reste un signal de santé, mais n’est plus confondue avec une mutation de la topologie DNS publiée.
Les valeurs de charge restent observables et protègent la sélection locale sans faire osciller toutes les zones lorsqu’un POP franchit momentanément 99 % de ressource.
Le marqueur durable d’échec public empêche une télémétrie concurrente de remettre un POP offline en trafic avant un healthcheck public complet.
Heartbeat et métriques décident du statut depuis la ligne verrouillée, et non depuis le modèle chargé avant une transition concurrente.
Une preuve edge peut porter une horloge en retard sans sortir le POP du routage: le rapport central doit rester récent et confirmer révision exacte, série SOA, résultat ok et verrou borné.
Un POP déjà admis conserve sa dernière admission face à un rapport legacy récent uniquement si la preuve SOA existe, le résultat est ok et le verrou est inactif; un candidat neuf ou un échec reste fail-closed.
Pendant une application legacy, la même admission reste valable uniquement pour un verrou actif et borné adossé à une preuve antérieure; cette compatibilité ne peut jamais créer une première admission.
Le bref état ok/idle entre la découverte d’une révision et la prise du verrou est horodaté durablement: il ne change plus la topologie à chaque heartbeat et ne peut pas être prolongé indéfiniment.
La validation des heartbeats accepte le budget d’application edge de 210 secondes et devient fail-closed après la même limite de 240 secondes que l’agent; un verrou actif normal ne peut plus expirer artificiellement l’admission et relancer toute la topologie.
Le budget global de fan-out est réparti entre les cibles afin que tous les POPs soient tentés; deux consommateurs DNS maintiennent les domaines clients en mouvement pendant une synchronisation système.
Les copies de fichiers réutilisent le même contrat SSH pour Ansible, SFTP et SCP; les brouillons de page de statut restent distincts de la version publiée.
Nginx sert les logos publiés depuis un alias limité à status-page-logos; un garde runtime vérifie à la fois le téléchargement du logo et le refus des fichiers voisins.
La réconciliation filtre les anciennes tâches UI terminales et continue sans suivi UI si une tâche devient terminale pendant la course de dispatch.
Console et version
Les pieds de page du panneau, de l’authentification et des notes de version utilisent le même composant compact alimenté par le catalogue de releases.
La mention Bêta publique, le message d’avertissement et le grand encart orange ont été retirés de la version stable.
Le numéro 1.0.1 distingue ce correctif du tag immuable 1.0.0 déjà publié.
Centre d’alertes
La sélection porte sur les alertes ouvertes visibles et propose des actions groupées vues ou traitées, avec validation et limite de 100 identifiants.
Tout marquer comme vu acquitte le backlog sans résoudre artificiellement les incidents encore ouverts.
Les mutations sont idempotentes, réservées aux administrateurs et conservent chaque ligne d’alerte comme preuve opérationnelle.
Le rendu desktop et mobile, le badge 99+, la sélection, l’action réelle et l’absence d’erreurs console ont été vérifiés sur une base isolée.
Le bootstrap du build immuable réécrit les sources Ubuntu classiques et apt-mirrors, avec des timeouts/retries bornés afin qu’une dépendance runner indisponible échoue vite.
L’installation Playwright applique le même garde-fou de miroir et une limite ferme de dix minutes avant le smoke navigateur.
La rétention Docker conserve candidate, active et rollback, puis retire sans forcer les anciennes images CDN.PIZZA avant le prochain chargement afin d’éviter une saturation du disque PostgreSQL.
Source: v1.0.1 finitions de la console et opérations groupées sur les alertes 2026-08-18
v1.0.0Publiée
Version stable, reprise automatique et POPs dynamiques
Première version stable de CDN.PIZZA: la convergence DNS est révisionnée et bornée, les POPs restent hors trafic jusqu’à validation fonctionnelle complète, les traitements critiques sont rejouables, et la livraison repose sur des artefacts immuables avec restauration isolée.
La convergence DNS distribue une révision immuable en parallèle, isole les POPs lents et n’annonce un succès qu’après preuve autoritative de la révision servie.
CoreDNS refuse les zones invalides, conserve la dernière configuration fonctionnelle et expose une readiness qui couvre le processus, le verrou et la révision appliquée.
L’ajout, la réactivation et le remplacement d’un POP suivent le même cycle dynamique; aucun POP ne reçoit de trafic avant DNS, certificats, WAF, fichiers, politiques, runtime et télémétrie.
Les synchronisations DNS, fichiers, réseaux privés, mail, usage et monitoring disposent de limites, déduplications et d’états persistants pour reprendre sans doubles effets.
Le contrôle central est construit en CI, attesté, transporté comme artefact immuable et validé avec sauvegarde chiffrée, restauration destructive isolée et rollback.
Détails de la version
DNS autoritatif et reprise
Les états désiré, tenté et réellement servi sont distingués; une maintenance partielle ne peut plus conserver un faux succès utilisateur.
Le fan-out borné empêche un POP lent de bloquer la convergence des autres POPs et les replays anciens ou concurrents restent monotoniques.
Les payloads multi-vues sont vérifiés fonctionnellement, les TLSA invalides sont rejetés avant publication et la récupération CoreDNS conserve la dernière zone valide.
Les NS globaux restent exactement bufala.cdn.pizza et diavola.cdn.pizza, avec contrôles autoritatifs UDP/TCP et serials concordants.
Cycle de vie dynamique des POPs
Un nouveau POP ou un POP réactivé reste drainé jusqu’à l’application et la preuve de chaque service requis.
Le cycle d’admission est générique et ne contient aucune exception liée à un fournisseur, un hostname, une région ou un identifiant de POP.
Les changements de topologie persistent leur intention, resynchronisent les consommateurs concernés et n’effacent jamais la configuration autoritative lors d’une panne multiple.
Les mutations SSH partagées, déploiements et callbacks sont sérialisés ou authentifiés afin que l’ajout et le retrait restent reproductibles.
Données, files et services
La livraison de fichiers conserve un état désiré durable, des baux bornés et des accusés complets avant de publier un lien comme prêt.
Les rapports d’usage et les faits de stockage survivent aux redémarrages et restent idempotents pour éviter perte ou double facturation.
Les synchronisations mail, SSL, WAF et réseau privé réessaient les erreurs transitoires et conservent la dernière génération fonctionnelle.
La santé des files combine backlog, âge, débit utile, réservations et taux d’échec au lieu de se limiter à la présence d’un worker.
Validation et production
Les suites Laravel et PostgreSQL concurrentes, Go avec race detector et vet, CLI, runtime, permissions, déploiement et sauvegarde/restauration ont réussi sur le commit de stabilisation.
Le build principal 32018674800 a produit l’artefact immuable et le déploiement 32021193438 a terminé avec succès sur la révision d549411866a7.
La readiness de production a confirmé base, Redis, stockage et révision; la file DNS était vide et aucun job n’avait échoué dans la fenêtre finale.
Les deux NS répondaient autoritativement avec des serials concordants et la révision upnt.ch est restée stable au-delà des deux cadences qui provoquaient les duplications.
Source: v1 stabilisation de la fiabilité et mise en production 2026-08-17
v0.8.0Publiée
Stabilité, restauration et santé d’exploitation
Dernière étape avant la version stable : la restauration est bornée et vérifiable, le runtime Laravel contrôle réellement ses dépendances, les workers et le scheduler publient une santé fiable, et les entrées de build critiques sont verrouillées.
Le chemin de sauvegarde et de restauration chiffre les données, valide strictement les artefacts et restaure l’état attendu avec rollback contrôlé.
Les sondes application exécutent une vraie requête Laravel au lieu de valider uniquement un port ou une page statique.
Les workers et le scheduler sont suivis par identité de processus et heartbeat, avec budgets et files distincts.
Les dépendances, actions CI et images déjà utilisées sont contrôlées par des références reproductibles et immuables.
Le déploiement production reste volontairement bloqué jusqu’à la validation opérateur finale.
Détails de la version
Sauvegarde et restauration
Les sauvegardes couvrent PostgreSQL, Redis, Meilisearch et les fichiers privés requis sans publier de secret en clair.
Le harnais de restauration refuse les archives ambiguës, borne les ressources, contient les sous-processus et vérifie l’état final avant succès.
Les interruptions et échecs préservent un résultat explicite, nettoient le texte en clair et restaurent l’état initial quand le contrat l’autorise.
Santé du runtime
Laravel expose une liveness autonome et une readiness bornée pour la base, Redis, le stockage et la révision servie.
PHP-FPM, les workers et le scheduler reçoivent les variables d’environnement avec un accès de groupe strict, jamais avec un fichier lisible par tous.
Les healthchecks Docker interrogent Laravel et attestent le vrai processus PHP ainsi que ses heartbeats.
Fiabilité de livraison
Les références exécutables et les lockfiles sont vérifiés automatiquement pour détecter toute dérive mutable.
Les logs applicatifs et Docker disposent de limites de rétention afin d’éviter une saturation silencieuse du disque.
Le verrou de déploiement v0.8 reste actif tant que les gates finales et la validation opérateur ne sont pas terminées.
Source: v0.8 stabilisation, reprise et santé du runtime 2026-08-02
v0.7.12Publiée
Monitoring domaine, changements DNS et tâches fiables
Release de fiabilité produit et exploitation: les changements DNS deviennent révisables et atomiques, le monitoring domaine couvre tout le cycle checks/incidents/maintenances/notifications/pages publiques, et les tâches, workers et déploiements POP reflètent enfin leur état réel sans rester bloqués artificiellement en attente.
Les mutations DNS sont préparées dans des brouillons persistants, validées ensemble puis appliquées atomiquement avec une seule synchronisation POP.
La console Monitoring domaine réunit vue d’ensemble, checks, diagnostics, historique, agents, incidents, maintenances, alertes et réglages.
Les résultats managés et agents partagent un cycle de vie versionné qui rejette les générations obsolètes et préserve l’ordre des transitions.
Les incidents automatiques, maintenances récurrentes et notifications email/webhook/Slack/Discord sont corrélés et isolés par organisation.
Les pages de statut publiques disposent d’un éditeur, d’un aperçu, d’un cache de projection et d’abonnements email confirmés.
Les heartbeats workers et la santé des files distinguent activité normale, retard, indisponibilité et job réellement bloqué.
Les tâches orphelines sont rapprochées des jobs réels afin de ne plus rester indéfiniment en attente dans la console.
Les déploiements POP sont dédupliqués, suivis par phase et compatibles avec les jobs mis en file avant la mise à jour.
Le POP informal-coffee a été récupéré après déploiement du correctif et confirmé active/online.
Le runtime de déploiement conserve workers et site public, renouvelle les certificats edge et valide la configuration Nginx.
Détails de la version
Changements DNS révisables
Créations, éditions, suppressions et actions groupées produisent un change set persistant au lieu de modifier immédiatement la zone publiée.
La validation centralisée protège les références de zone, les types de records, les conflits CNAME et les changements concurrents.
La page DNS montre les changements en attente, leur effet avant/après et les confirmations adaptées au nombre de records.
L’application verrouille la zone, écrit tout le brouillon atomiquement et déclenche une seule synchronisation DNS.
Un déploiement échoué conserve un état reprenable et une action de nouvelle tentative explicite.
Monitoring domaine complet
Les checks HTTP, TCP, DNS, TLS et Ping disposent d’un état commun, de métriques historiques, de diagnostics et d’un cycle pause/reprise/reconfiguration.
Les agents peuvent être créés, enrôlés, renouvelés, suspendus et révoqués sans accepter de résultats anciens ou réaffectés.
Les incidents automatiques sont corrélés aux checks et restent cohérents pendant replay, changements de clé et fenêtres de maintenance.
L’espace incidents/maintenances fournit timeline, notes internes, communications publiques, édition versionnée et contrôles de concurrence.
Les notifications respectent les canaux configurés, horaires calmes, répétitions, déduplication et journal de livraison.
Les pages publiques et abonnements email utilisent des projections bornées, mises en cache et invalidées lors des changements visibles.
La rétention, les rollups et la suppression des données monitoring restent bornés et isolés par organisation.
Tâches, files et déploiements POP
Chaque worker publie son identité, les files couvertes, son démarrage, son dernier heartbeat et son arrêt.
La santé d’une file combine backlog, âge des jobs, réservations, délai de reprise et disponibilité réelle des workers.
Les tâches opérationnelles orphelines sont clôturées ou annulées lorsque leur job a disparu ou a été remplacé.
Un seul déploiement actif est autorisé par POP et la même tâche suit les phases Storage, Mail et Edge avec progression bornée.
Les jobs POP sérialisés avant l’ajout du suivi reçoivent des valeurs par défaut rétrocompatibles au lieu d’échouer avant Ansible.
Les workers occupés par des jobs longs restent reconnus pendant leur budget de reprise, tandis que le démarrage exige toujours un heartbeat récent.
Runtime et validation
Les boucles de workers survivent aux signaux de redémarrage et le déploiement attend le retour de chaque worker requis.
Le déploiement préserve le mount du site public, valide Nginx et enregistre la révision réellement servie.
Les certificats SSL edge expirés ou proches de l’expiration sont renouvelés avant leur synchronisation.
Suite Laravel complète avant le hotfix final: 1 470 tests, 10 431 assertions et 2 tests ignorés.
Validation finale ciblée POP/files/nodes: 38 tests et 229 assertions, plus Pint et le garde-fou permissions.
Suites Go edge-node, Jest CLI (46 tests), build Vite et validations runtime Docker/site/workers exécutés avant publication.
Production confirmée sur 1d208c07454d avec migrations à jour, conteneurs sains, tâches utilisateur vides et POP informal-coffee online.
Source: lots de changements DNS, monitoring complet des domaines et fiabilité des files et tâches 2026-07-29
v0.7.11Publiée
Réseaux privés, DNS public et garde automatique
Patch d’exploitation: les services privés synchronisent automatiquement leurs POPs VPN, le garde private-origins vérifie et répare DNS/policy toutes les 5 minutes, le DNS est poussé vers les nameservers publics réellement servis, les POPs privés obsolètes sont filtrés, le DNS système retire les AAAA proxy non garanties, et le CLI évite les AAAA publiques non joignables.
Les services privés globaux déclenchent automatiquement la préparation et la synchronisation des POPs VPN disponibles lors de leur création.
L’enrôlement CLI d’un appareil réseau privé répond immédiatement après création du peer et planifie les synchronisations POP WireGuard en queue.
Le CLI 1.0.5 privilégie les réponses DNS IPv4 pour ne plus échouer sur une AAAA publiée mais non servie par un POP.
Les profils POP privés dont le noeud n’existe plus ou n’est plus éligible sont exclus des compteurs, des validations CIDR et des payloads d’enrôlement.
La commande planifiée private-origins:guard contrôle les origines privées actives, détecte DNS manquant, AAAA dangereuse, POP non prêt ou HTTPS public cassé, puis déclenche les réparations sûres.
Les sondes publiques du garde utilisent des résolveurs configurables et testent HTTPS via l’adresse A résolue, ce qui évite les faux positifs du DNS interne Docker.
La vue GeoDNS default publie maintenant un POP privé prêt même quand le choix géographique ne peut pas sélectionner de POP localisé.
La zone système cdn.pizza ne publie plus d’AAAA CDN/WAF automatiques pour ses hosts proxifiés tant que CDN_PIZZA_BASE_PROXY_IPV6 n’est pas activé.
GeoDnsService cible maintenant les POPs serviteurs, les nodes du registre nameserver et les IP publiques réellement résolues depuis bufala.cdn.pizza et diavola.cdn.pizza.
Un POP qui confirme une configuration WireGuard prête et appliquée relance la synchronisation DNS des services privés concernés.
Les pages d’erreur CDN/console sont brandées et exposent un identifiant de requête utile au support, y compris dans le challenge WAF.
Le catalogue /releases empêche qu’une configuration APP_VERSION restée sur une ancienne version affiche deux versions comme actuelles.
La couverture de rendu admin et les notes de release sont alignées avec la consolidation finale sur main.
Détails de la version
Réseaux privés
La création d’un service privé global prépare les POPs DNS liés puis synchronise les POPs VPN déjà attachés.
Les services privés ciblés conservent leurs garde-fous et synchronisent seulement le POP explicitement choisi.
Les POPs obsolètes ne bloquent plus les changements de CIDR et ne polluent plus les états "à reprendre".
Les profils POP privés déjà appliqués ne sont plus marqués cassés quand une tentative de refresh échoue mais que la version et le hash actifs restent corrects.
DNS public
La synchronisation de zone inclut les nameservers publics vivants résolus depuis les NS globaux afin d’éviter les réponses NXDOMAIN persistantes.
Les réponses CDN/WAF automatiques de la zone de base restent en IPv4 par défaut pour éviter de publier des AAAA avant que HTTPS IPv6 soit réellement servi.
Les origines privées ne publient plus de AAAA publique tant que le chemin IPv6 privé n’est pas explicitement supporté.
La vue default reçoit un POP privé prêt en fallback, afin qu’un resolver sans métadonnée GeoDNS ne tombe plus sur NXDOMAIN pour un service privé pourtant prêt.
Les IP de nameserver non rattachées à un edge connu sont journalisées via ThrottledLog sans exposer de secret.
Les nouvelles cibles de synchronisation ne changent pas le routage GeoDNS public: ils servent la zone, mais ne sont pas injectés comme réponses si leur pool public ne le permet pas.
Garde automatique
private-origins:guard tourne toutes les 5 minutes avec withoutOverlapping et une limite configurable par exécution.
Le garde déclenche une resynchronisation DNS de maintenance quand le public ne sert pas le A attendu ou sert encore une AAAA non autorisée.
Le garde relance les synchronisations policy POP réparables, avec verrou court pour éviter d’empiler les mêmes réparations.
Les alertes private_origin_unhealthy et private_origin_dns_ipv6_unsafe sont ouvertes seulement si le problème reste visible, puis résolues automatiquement au retour à l’état sain.
Diagnostic et exploitation
Les appels API du CLI utilisent l’ordre DNS IPv4 en premier, ce qui évite les erreurs ECONNREFUSED quand une IPv6 publique est annoncée avant d’être servie sur HTTPS.
Les pages d’erreur disposent d’un rendu CDN.PIZZA cohérent pour les statuts console et edge courants.
Les erreurs edge et WAF transportent un identifiant de requête visible afin de raccourcir le diagnostic support.
Le test de rendu admin couvre davantage de pages console critiques avant publication.
Validation
Suite Laravel complète: 910 tests passants et 2 ignorés.
Suite Jest CLI complète: 43 tests passants, avec couverture du fallback IPv4.
Tests ciblés pour la propagation DNS des réseaux privés, le garde private-origin, les POPs obsolètes, la base-zone/default GeoDNS, les pages d’erreur, les notes de version et le rendu admin.
Validation live des services privés upnt.ch: A public présent, aucune AAAA publique et HTTP 200 via le CDN.
Pint, git diff --check, tests/build du site public et scripts/check-permissions.sh exécutés avant push.
Source: propagation DNS des réseaux privés, automatisation des gardes, pages d’erreur aux couleurs de la marque et consolidation de main 2026-07-23
v0.7.10Publiée
Publication globale, site public et finitions de la console
Release de publication: le train récent est poussé ensemble avec le site public généré depuis website-src, l’attribution d’inscription minimale, les finitions Sécurité et accès, et les notes complètes des lots CLI, CDN, réseaux privés et edge DNS.
La branche publiée regroupe les lots récents: analytique domaine, cockpit CDN, réseaux privés guidés, CLI 1.0.4, quarantaine POP par origine et durcissement edge DNS.
Le site public quitte website-dev pour une source canonique website-src et une sortie statique complète sous website/.
La vitrine dispose de pages FR/EN/DE, canonical/hreflang, sitemap, robots, JSON-LD, Open Graph/Twitter card et assets locaux versionnés.
Les CTAs de création de compte portent une attribution first-party minimale, conservée sans identifiant visiteur ni donnée sensible.
Docker/Nginx sert maintenant le site public via un vhost dédié et un healthcheck séparé de la console.
La page Sécurité et accès gagne une mise en page plus lisible, des textes harmonisés, des pluriels propres et un responsive sans débordement.
Les notes publiques /releases et le CHANGELOG GitHub sont alignés sur cette publication complète.
Détails de la version
Site public généré
website-src devient la source de contenu, templates, SEO et génération statique du site public.
website/ contient les pages publiées, les alias de compatibilité et les assets locaux nécessaires au vhost public.
Les pages produit, réseau, développeurs, prix, sécurité et sponsors existent en français, anglais et allemand avec switcher de langue.
Les anciennes pages .html et features deviennent des redirections/noindex pour préserver les liens sans dupliquer le contenu.
Le JavaScript public hydrate le statut réseau, les POPs, les prix TLD et les liens utiles depuis /api/public/site-data avec cache local résilient.
Attribution et inscription
Les liens d’inscription générés transportent src, page, cta et lang pour comprendre le funnel public.
WebAuthController filtre ces valeurs en session puis les persiste dans les settings de l’organisation créée.
Le conteneur de page est limité à une largeur lisible sur grands écrans tout en restant fluide.
Le hero utilise une surface plus douce, des badges cohérents et un bloc de dernière connexion moins massif.
Les cartes identité, mot de passe, sessions et accès API sont visuellement alignées avec le reste de la console.
Les panneaux Vue d’ensemble, WebAuthn, TOTP, mot de passe, notifications, sessions et tokens gardent des rayons de 8px et une ombre légère.
Les libellés ambigus ou trop techniques ont été remplacés par des formulations plus naturelles pour les utilisateurs francophones.
Les sessions actives, autres sessions et tokens API utilisent trans_choice pour afficher correctement zéro, un ou plusieurs éléments.
Les fichiers de langue anglais, allemand et français contiennent les nouvelles chaînes affichées par la page.
Publication du train complet
Les lots 0.7.7 à 0.7.9 restent détaillés dans leurs entrées dédiées et sont embarqués dans la branche publiée.
Le changelog GitHub et le catalogue /releases couvrent le CLI 1.0.4, le cockpit CDN, l’analytique, les réseaux privés, la santé POP et les changements edge.
AGENTS.md rappelle de ne pas développer sur le serveur de production et de pousser les changements avant validation/déploiement.
Validation
ReleaseNotesPageTest et ProfileSecuritySettingsTest passent avec 28 tests et 260 assertions.
Le smoke Playwright connecté vérifie que /settings reste rendu sans retour login ni erreur client.
Un contrôle Playwright desktop/mobile vérifie le rendu, l’absence de débordement horizontal et la navigation entre onglets privés.
Les traductions JSON, git diff --check et scripts/check-permissions.sh ont été exécutés.
La validation globale attendue pour la branche complète couvre Laravel, CLI, edge-node, website-src, docker compose et la syntaxe Ansible.
Source: publication complète de l’arbre de travail, générateur du site public et finitions de la console 2026-07-21
v0.7.9Publiée
Analytique domaine, cockpit CDN et réseau privé guidé
Patch produit et exploitation: la console domaine gagne une analytique période-aware avec revue de configuration, le pilotage CDN sort du DNS, les réseaux privés deviennent guidés/éditables, et les nodes/edges durcissent leur santé et leur synchronisation CoreDNS.
La page statistiques domaine supporte 24h, 7j et 30j avec requêtes, bande passante, trafic facturable, cache hit, visiteurs uniques, erreurs et latences p95.
Un avis global analyse erreurs origine, bruit 4xx, cache, latence et répartition POP sans afficher les IP visiteurs brutes.
La revue de configuration cdn.pizza propose des réglages applicables ou manuels et peut appliquer les actions sûres HTTPS visiteur et cache standard.
La configuration CDN dispose d’un onglet dédié pour origine/cache, purge, diagnostic et santé origine par POP.
La page DNS se concentre sur les records et ajoute actions groupées, proxy bulk et TTL personnalisés bornés.
Les réseaux privés gagnent un mode guidé, une administration avancée par onglets, des ACL CIDR éditables et des services privés mieux cadrés.
Les checks de santé nodes réessayent les sondes, résolvent les alertes obsolètes et évitent de remettre online un POP encore en alerte.
Le sync DNS edge prune les anciennes vues, vérifie le rechargement CoreDNS, tente un redémarrage contrôlé et supprime les blocs récursifs publics hérités.
Détails de la version
Analytique et configuration domaine
DomainStatsService centralise les métriques rollup et logs pour la page web et l’API /api/zones/{id}/stats.
Les métriques couvrent requêtes, bande passante, billable bytes, cache HIT/MISS/BYPASS, pays, méthodes, statuts HTTP, chemins lents, chemins en erreur, référents, user agents et requêtes récentes.
Les longues périodes gardent les lectures détaillées bornées et n’exposent pas d’adresse IP brute dans la vue.
DomainConfigurationAdvisor produit une note de configuration et distingue les recommandations applicables automatiquement des vérifications manuelles.
CDN et DNS
Nouvel onglet CDN pour piloter origine/cache, purger une URL, purger tout le cache et afficher le diagnostic opérationnel.
La santé origine par POP affiche les POPs sains, dégradés ou en quarantaine avec la dernière erreur utile.
La page DNS renvoie vers la politique CDN au lieu de mélanger cache/origine et records DNS.
Les actions groupées peuvent supprimer des records sélectionnés ou activer/désactiver le proxy uniquement sur les types compatibles.
Les TTL personnalisés sont acceptés dans la plage supportée et ne polluent plus les types qui n’utilisent pas la priorité.
Réseaux privés
Le mode guidé expose les prochaines actions, le plan de mise en service, les ressources réseau et les commandes CLI attendues.
La vue avancée regroupe vue d’ensemble, services privés, POPs VPN, accès appareils, sécurité et paramètres.
Les règles réseau personnalisées stockent CIDR source/destination, sont éditables, et restent en brouillon tant que les POPs ne confirment pas l’application ACL.
Les modèles LAN privé, ping diagnostic, web interne et admin vers réseau privé créent des règles idempotentes et activables quand l’infrastructure est prête.
Les services privés clarifient la différence entre création et annonce CDN, synchronisent les POPs prêts et bloquent les détachements dangereux.
Santé nodes et edge DNS
nodes:check-health réessaie les sondes HTTP/TCP, ignore le port DNS public pour les POPs drainés et résout les alertes offline périmées.
Les heartbeats et métriques node ne peuvent plus effacer implicitement une alerte offline non résolue.
L’admin peut réactiver un POP drainé et la suppression de nodes retire les tokens, désactive le pool public et marque la retraite avant suppression logique.
Le handler DNS edge supprime les anciennes vues de zone, vérifie le SOA après rechargement, tente un redémarrage CoreDNS contrôlé si le rechargement est insuffisant, puis rollback si la vérification échoue.
Le playbook edge installe le droit sudo minimal pour rechargement/redémarrage CoreDNS et le vhost Docker sert le site public statique séparément de la console.
Validation
Tests Laravel analytique domaine, revue de configuration, page CDN, actions DNS groupées, TTL personnalisés, réseau privé guidé/avancé, ACL, services privés, santé nodes et notes de version.
Tests Go edge-node pour logs enrichis, host_header, vues DNS, pruning de zone, rechargement/redémarrage CoreDNS vérifié et absence de log CoreDNS managé.
Tests Playwright console étendus pour les parcours connectés et la mise en page WAF.
Source: analytique des domaines, pilotage CDN, parcours guidé des réseaux privés et durcissement du DNS edge 2026-07-18
v0.7.8Publiée
CLI 1.0.4 et référence API
Patch développeur: le CLI 1.0.4 ajoute les commandes fichiers, facturation, réseau privé et status-agent attendues, durcit les garde-fous d’exploitation et aligne la page console CLI/API avec le package publié.
Le CLI ajoute files, file:show, file:delete, network:show, status-agent:key, billing:plans et billing:checkout.
Les commandes de lecture principales acceptent --json pour CI, scripts et diagnostics opérateur.
La purge globale demande désormais --all, avec --yes pour les usages non interactifs.
logout distingue le token stocké localement de CDN_PIZZA_TOKEN afin d’éviter une révocation accidentelle en CI.
Les uploads valident les chemins locaux et exposent cache_ttl, direct_public_link et storage_nodes.
status-agent:run sérialise ses cycles afin d’éviter des heartbeats ou résultats concurrents.
La page /cli documente la nouvelle surface CLI/API et le tarball @cdn.pizza/cli 1.0.4.
Détails de la version
Commandes CLI
files, file:show et file:delete couvrent les endpoints fichiers déjà publics côté API.
network:show expose les détails du réseau privé et la disponibilité WireGuard avant création de clés connector.
status-agent:key crée les clés cps_... depuis la CLI et complète status-agent:enroll/status/run.
billing:plans et billing:checkout couvrent la consultation des plans et la création d’une session Payrexx.
Fiabilité opérateur
config affiche l’URL API effective, la source du token et l’état de connexion sans afficher le bearer token.
logout ne révoque CDN_PIZZA_TOKEN que si --revoke-env est passé explicitement.
Les options numériques et les préfixes de tokens cpn_/cps_ sont validés avant les appels API.
Le package npm utilise une whitelist de fichiers afin de ne plus publier les tests.
Documentation et distribution
La référence console /cli liste les nouvelles commandes, les endpoints status-agent, facturation checkout et fichiers.
Le fallback version CLI du control-plane et le package npm sont alignés sur 1.0.4.
Les traductions EN/DE de la page CLI/API sont complétées.
Validation
Suite Jest CLI complète: 42 tests passants.
CliPageTest couvre les nouvelles commandes affichées sur /cli.
Source: fiabilité de la CLI et couverture des commandes 2026-07-12
v0.7.7Publiée
Quarantaine POP par origine
Patch d’exploitation: les POPs qui cassent une origine précise sont désormais mis en quarantaine uniquement pour la zone concernée, sans drainer tout le POP, avec sondes automatiques et resynchronisation DNS.
Les erreurs origine répétées via un POP déclenchent une quarantaine par zone/POP au lieu d’une intervention manuelle globale.
Le mode CDN Auto respecte la quarantaine dans GeoDNS, le refresh du pool Auto et la bascule vers le mode Auto.
La commande planifiée zones:check-origin-health teste uniquement les hosts proxifiés et ignore les records DNS-only comme les CNAME GitBook docs.
La restauration automatique réactive le POP pour la zone après sondes sains et expiration de la quarantaine.
La version publique, les données live et le fallback statique du site exposent maintenant la version produit 0.7.7.
Détails de la version
Routage POP par zone
zone_pops stocke l’état de santé origine, les compteurs de succès/échec, la dernière erreur et la fin de quarantaine.
GeoDnsService filtre les POPs en quarantaine origine avant de générer les vues country, nearest, continent et fallback.
DomainEffectiveState signale une raison zone-spécifique quand un POP est filtré pour origine en erreur.
Automatisation
zones:check-origin-health force la résolution du host vers chaque POP afin de tester le chemin visiteur réel POP vers origine.
Deux échecs consécutifs placent le POP en quarantaine pour la zone et dispatchent SyncDnsZone sur la queue dns-maintenance.
Deux succès après expiration restaurent le POP et redéclenchent une synchronisation DNS.
Les records non proxifiés restent hors scope, ce qui préserve docs.up-network.ch et les CNAME GitBook DNS-only.
Version publique
L’API /api/public/site-data utilise une clé cache versionnée afin qu’un ancien payload 0.7.6 ne puisse plus masquer la release courante.
Le site statique charge site-lunoz.js?v=88, renouvelle son cache local en v4 et affiche v0.7.7 même si les données live sont temporairement indisponibles.
Validation
Tests Laravel ajoutés pour la quarantaine après Bad Gateway répétés, la restauration après sondes sains et l’exclusion des records DNS-only.
Tests GeoDNS et Domain POPs étendus pour empêcher le mode Auto de republier un POP en quarantaine origine.
Validation live up-network.ch: 95 sondes origine, aucune dégradation persistante, apex HTTPS 200 et docs HTTPS 200 via GitBook.
Source: quarantaine de santé des origines POP par zone et durcissement de la migration CDN up-network.ch 2026-07-12
v0.7.6Publiée
Statut du domaine, moniteurs ping et rechargement edge
Patch correctif: les pages de statut par domaine routent correctement via le host canonique, les POPs edge valident le rechargement CoreDNS avant de publier les métadonnées d’origine, et les moniteurs publics gagnent un check Ping ICMP.
Les hostnames status personnalisés servent la bonne page tenant via status.cdn.pizza sans boucle HTTPS ni exposition du mauvais tenant.
Le provisionnement du hostname status est transactionnel afin d’éviter un état partiel enabled=true sans record DNS synchronisable.
Les edge nodes redémarrent CoreDNS uniquement quand le rechargement ne prouve pas le nouveau SOA, puis publient les métadonnées d’origine après vérification.
Les moniteurs publics acceptent maintenant le type Ping ICMP avec validation des cibles publiques avant exécution.
Les pages de statut avec checks publics ne montrent plus un placeholder de composants vides quand aucun composant global n’est publié.
Le patch a été validé en live sur les 23 POPs actifs pour status.up-network.ch.
Détails de la version
Statut par domaine
GeoDNS route les hostnames status vers le fallback status canonique avec Host status.cdn.pizza et conserve le hostname public dans un header interne.
Le middleware status lit ce header uniquement depuis le host canonique afin de sélectionner la page tenant sans accepter un spoof direct sur les autres hosts.
La sauvegarde de la page de statut et le provisioning DNS partagent une transaction pour éviter les pages activées partiellement après erreur.
Edge et DNS
Le modèle d’origine edge supporte host_header et transmet X-CDN-Pizza-Forwarded-Host au fallback status.
La synchronisation DNS vérifie le SOA local après rechargement CoreDNS et bascule sur un redémarrage contrôlé si le rechargement laisse une ancienne zone en mémoire.
Les métadonnées origins.json ne sont persistées qu’après validation du rechargement ou du redémarrage.
Monitoring
Nouveau type de moniteur public Ping ICMP dans la console domaine.
Les cibles ping passent par MonitorTargetGuard comme HTTP/TCP/TLS afin de refuser les hosts privés, réservés, locaux ou non résolus.
Le runner ping utilise un timeout borné et stocke le host demandé, l’IP validée et le code de sortie.
La page publique masque le placeholder de composants vides dès que des checks publics sont publiés.
Validation
Tests Laravel ajoutés pour le provisioning status transactionnel, le routage status via host canonique et le moniteur Ping ICMP.
Test public ajouté pour éviter la régression No public components configured sur les pages de statut avec checks.
Tests Go ajoutés pour host_header edge, header forwarded-host et fallback redémarrage CoreDNS après échec de vérification rechargement.
Validation live status.up-network.ch: sync DNS 23/23, HTTPS 200 sur chaque POP actif et authoritative DNS bufala/diavola.
Source: correctif du routage des hôtes de statut par domaine, moniteur ping ICMP et repli du rechargement CoreDNS 2026-07-03
v0.7.5Publiée
Mise en service DNS, registrar géré et durcissement
Patch d’exploitation et de sécurité: import DNS depuis un export zone file, DNSSEC registrar automatisé pour les domaines gérés cdn.pizza, routage DNS/SSL plus robuste, Partner POP post-approbation corrigé et site public mieux indexable.
L’ajout de domaine peut importer un export DNS BIND/zone file et pré-sélectionner les records importables.
Le mode CNAME est présenté comme mode réduit afin de pousser le mode NS complet quand import DNS, DNSSEC, wildcard SSL, status domaine et records automatiques sont nécessaires.
Les domaines enregistrés et renouvelés via cdn.pizza affichent un badge Domaine géré basé sur une détection registrar centralisée.
DNSSEC publie et retire automatiquement le DS chez InternetBS pour les domaines gérés par cdn.pizza, avec rollback local ou état de revue si la confirmation registrar est ambiguë.
GeoDNS émet les réponses AAAA des POPs quand elles existent et synchronise aussi les noeuds attachés au registre nameserver.
Les échecs ACME ne font plus perdre un wildcard SSL encore valide.
Les origines de streams actives sont résolues et rejetées si elles pointent vers une IP privée, réservée ou un POP cdn.pizza.
Le parcours Partner POP approuvé permet de créer un token d’enrôlement depuis la console ou l’API via un service centralisé.
Les webhooks Payrexx ne prennent plus les anciennes références abonnement héritées.
Le site public ajoute Open Graph/Twitter card, JSON-LD, FAQ, contenu SEO et sitemap enrichi.
Détails de la version
DNS et registrar
Nouveau parseur DnsZoneFileImporter pour records A, AAAA, CNAME, MX, TXT, NS, SRV et CAA.
Les SOA et NS apex hérités sont ignorés lors de l’import pour garder la délégation cdn.pizza propre.
Les records proxy par défaut ne sont pas ajoutés automatiquement quand un import complet est sélectionné.
Le panneau DNSSEC indique quand cdn.pizza publie automatiquement le DS chez InternetBS.
InternetBsClient sait pousser ou vider les DNSSEC DS via Domain/Update et marque ces mutations comme ambiguës si la confirmation distante n’est pas certaine.
Routage, SSL et edge
GeoDNS ajoute les AAAA pour les records proxy et apex quand les POPs disposent d’une IPv6.
Le sync DNS cible aussi les noeuds du NameserverRegistry afin que bufala.cdn.pizza et diavola.cdn.pizza restent servis.
IssueWildcardSslCertificate conserve un état actif lorsqu’un certificat valide existe encore après un échec ACME.
Les sections CoreDNS managées ne réactivent plus le logging par requête.
Sécurité applicative
StreamProxyService résout les origines actives et bloque IP privées, réservées, locales et boucles vers les POPs.
NodeController limite la liste des nodes à l’organisation authentifiée, refuse les métriques négatives et vérifie les POPs autorisés par zone.
ResetPasswordNotification reconstruit une URL absolue depuis APP_URL.
WafMiddleware affine les signatures .env, .env.* et .git pour réduire les faux positifs sans relâcher les blocages sensibles.
PayrexxCheckoutController retire le support des références d’abonnement héritées.
Partner POP et site public
PartnerPopEnrollmentTokenService centralise la création des tokens à usage unique 24h.
La console affiche la prochaine étape post-approbation et permet de copier la commande d’enrôlement.
Les routes API et web utilisent le même contrôle canCreateEnrollmentToken.
Le site public enrichit titres, descriptions, Open Graph, Twitter card, JSON-LD, FAQ et sitemap lastmod/changefreq/priority.
Validation
Tests Laravel import DNS, formulaire DNS, DNSSEC registrar, SSL auto, streams, API hardening, nodes uptime, Partner POP, Payrexx, réinitialisation du mot de passe, zones API et GeoDNS.
Tests Go edge-node pour empêcher le retour du log CoreDNS dans les zones managées.
Tests unitaires InternetBS DNSSEC et NameserverRegistry.
Source: import des fichiers de zone DNS, DNSSEC chez le registrar géré, inscription aux POP partenaires et durcissement de la sécurité 2026-07-03
v0.7.4Publiée
Promotion publique et SSL système
Patch de promotion bêta publique: messages d’inscription alignés sur une bêta ouverte, site public multilingue pointé vers les bons parcours du panneau et SSL système renforcé.
La note d’inscription n’est plus formulée comme une bêta privée.
Les mises en page auth, console et notes de version utilisent un vocabulaire public cohérent.
Les liens login/register et le sitemap du site public FR/EN/DE sont alignés sur les URLs de production.
Le setup de zone cdn.pizza et le seed DNS de base évitent les incohérences autour du domaine système.
La synchronisation SSL système est mieux couverte et évite les réécritures inutiles.
Détails de la version
Inscription et site public
Renommage du partial beta-note pour refléter la bêta publique.
Messages d’inscription FR/EN/DE mis à jour dans les vues auth et console.
Pages publiques et sitemap harmonisés vers console.cdn.pizza.
SSL système
SetupCdnPizzaZone et BaseDnsRecordsSeeder alignés sur les hostnames système.
SystemSslCertificateSyncService durci pour mieux préserver l’état attendu.
Validation
Tests SetupCdnPizzaZoneCommand et SystemSslCertificateSyncService.
Tests auth, tableau de bord et notes de version ajustés.
Source: messages d’inscription à la bêta publique, promotion du site public et durcissement du SSL système 2026-06-25
v0.7.3Publiée
Préparation bêta publique et sécurité navigateur
Patch de préparation bêta: en-têtes navigateur centralisés, sessions durcies, actions admin nodes mieux contrôlées et données publiques plus cohérentes pendant le rollout.
La console applique un middleware d’en-têtes de sécurité centralisé.
La configuration session est vérifiée pour la surface web publique.
Les actions groupées admin nodes sont couvertes par une suite dédiée.
Les données publiques et pages de statut/domain POPs suivent mieux l’éligibilité réelle des noeuds.
Les dépendances CLI et control-plane sont réalignées avec les versions livrées.
Détails de la version
Sécurité console
EnsureSecurityHeaders et SecurityHeaders ajoutent des en-têtes cohérents sur la console.
La session Laravel garde des réglages plus stricts pour la bêta publique.
Exploitation des nœuds
NodeAdminController supporte les actions groupées nécessaires à l’exploitation.
DomainEffectiveState, GeoDNS et WAF tiennent mieux compte des POPs éligibles.
Validation
Tests ConsoleSecurityHeaders, SessionSecurityConfig, NodeBulkActions, DomainPopsPage, PublicStatusPage, GeoDNS et API publique.
Source: préparation de la bêta publique, en-têtes de sécurité de la console et exploitation des nœuds 2026-06-25
v0.7.2Publiée
Clarté Sponsor POP et parcours du panneau
Patch de clarté Partner/Sponsor POP: ressources et portée réseau explicites, parcours sponsor ramené dans le panneau et rendu status plus stable.
Les pages Partner POP exposent les ressources attendues et la portée réseau avant certification.
Les demandes Sponsor POP du site public passent par le panneau pour garder un workflow traçable.
La page de statut public normalise ses graisses typographiques.
L’admin et l’API Partner POP exposent les informations utiles pour la certification.
Détails de la version
POP partenaires et sponsors
Copies FR/EN/DE clarifiées sur ressources, réseau et sponsor.
Partial service-scope ajouté pour éviter les divergences entre vues.
Liens sponsor du site public redirigés vers la console.
Validation
Tests Partner POP admin, API et web étendus.
Test status page pour figer le rendu typographique.
Source: exigences de ressources des POP partenaires, routage du site sponsor et typographie des statuts 2026-06-23/24
v0.7.1Publiée
Certification Partner POP automatisée
Patch Partner POP: certification automatisée, état admin/API plus visible et publication contrôlée des POPs partenaires dans les données publiques.
Ajout du modèle, service et job de certification Partner POP.
Les demandes Partner POP stockent les champs nécessaires au suivi de certification.
L’admin peut suivre l’état de certification et déclencher le contrôle.
L’API publique ne publie que les POPs partenaires certifiés.
La documentation agent contient le design et le plan d’implémentation Partner POP.
Détails de la version
Certification
RunPartnerPopCertification orchestre les contrôles post-approbation.
PartnerPopCertificationService centralise l’évaluation et les messages.
StatusPageService et PublicSiteDataController tiennent compte des POPs partenaires certifiés.
Validation
Migration Partner POP automation ajoutée.
Tests Partner POP admin, API, web et PublicSiteDataApi.
Source: conception de l’automatisation des POP partenaires et du workflow de certification 2026-06-23
v0.7.0Publiée
Statut du domaine, DNSSEC et e-mails localisés
Nouvelle surface produit et durcissement bêta: chaque domaine peut publier sa page de status, lancer des moniteurs, enrôler un agent léger, activer DNSSEC sur les zones NS, recevoir les notifications/mails dans sa langue et exploiter une console WAF/SSL plus explicite.
Chaque domaine peut avoir une page de status isolée avec titre, sous-titre, composants, incidents et moniteurs publics.
Les zones gérées en NS peuvent provisionner automatiquement leur hostname status proxifié; les zones CNAME restent sans mutation DNS automatique.
Les moniteurs HTTP, TCP, DNS et TLS s’exécutent sur une queue dédiée avec latence, état courant et détection des runs bloqués.
Le nouvel agent cdn-pizza peut être enrôlé sur une machine légère pour remonter heartbeat, configuration et résultats sans exposer de secret.
Les zones DNS gérées par CDN.PIZZA peuvent activer DNSSEC depuis la page DNS, avec DS à publier, signature de zone et vérification du DS parent.
La console et les mails transactionnels suivent maintenant la locale utilisateur FR/EN/DE jusque dans les notifications facturation, sécurité et invitation.
L’inscription bêta est ouverte sans code d’invitation et demande la langue par défaut utilisée ensuite par la session, le profil et les mails.
Le WAF montre l’effet réel des règles, notamment le mode Surveillance, et les certificats SSL générés peuvent être exportés en bundle PEM.
Les cibles publiques sont filtrées contre les réseaux locaux, privés et réservés afin de réduire le risque SSRF.
Le rollout est tolérant au schéma et le déploiement Docker/Nginx/CoreDNS évite les 500/502 persistants ou les reloads DNS non restaurés.
Détails de la version
Pages status domaine
Nouvelle page de gestion depuis le domaine pour activer, personnaliser et prévisualiser le status.
Rendu public isolé par hostname afin qu’un domaine ne puisse pas voir les composants ou incidents d’un autre.
Provisioning DNS automatique limité aux zones en mode NS, avec record A proxifié vers l’origine fallback cdn.pizza.
Les domaines en mode CNAME affichent une limite explicite et ne déclenchent pas de changement DNS côté plateforme.
Monitors et files
Création de moniteurs HTTP, TCP, DNS et TLS avec intervalle, timeout, seuils HTTP et visibilité publique configurables.
Résultats historisés avec statut, latence, erreur normalisée et horodatage de check.
Nouveaux jobs et commandes pour dispatcher les checks dus, marquer les runs stale et surveiller la queue moniteurs.
Worker Docker dédié aux moniteurs afin de ne pas mélanger les sondes de santé avec les queues déploiement/default.
Agent status
Commandes CLI status-agent: enroll, status et run.
Enrollment par token court et à usage limité, stockage local sous ~/.cdn-pizza/status-agents avec permissions strictes.
Heartbeat et publication de résultats via bearer token hashé; l’API ignore les identités envoyées dans le body.
Configuration agent renvoyée seulement pour la page de statut et l’organisation authentifiées.
DNSSEC domaine
Nouveau panneau DNSSEC pour les zones gérées par les nameservers CDN.PIZZA: activation, désactivation, état signé et DS à transmettre au registrar.
Génération de clés KSK/ZSK et signature des zones avant synchronisation vers les edge nodes.
Vérification du DS parent afin d’indiquer si la délégation publiée chez le registrar correspond au DS attendu.
Les records DNSSEC techniques DS et DNSKEY sont exclus du formulaire DNS standard pour éviter des configurations partielles ou contradictoires.
Les domaines en mode CNAME affichent une explication dédiée: DNSSEC reste géré chez le fournisseur DNS externe.
Localisation et mails
Locales centralisées dans config/locales.php et App\Support\SupportedLocales pour français, anglais et allemand.
Inscription avec choix de langue par défaut, persistance users.locale, réhydratation de session au login, TOTP et WebAuthn.
Les modèles User implémentent HasLocalePreference afin que NotificationSender applique la locale du destinataire.
Les notifications facturation et sécurité résolvent maintenant titres, corps, labels de contexte et actions au moment du rendu mail.
Les invitations envoyées à une adresse anonyme portent explicitement la locale de l’inviteur.
Scanner translations:scan étendu avec --strict, --locale et --path pour garder les catalogues FR/EN/DE complets.
Console WAF, SSL et exploitation
La page WAF présente l’état effectif du trafic, le mode appliqué, la readiness challenge, le filtrage pays, le rate limit et l’ordre d’évaluation.
Le mode Surveillance journalise les blocklists pays côté edge au lieu de bloquer, et la console affiche cet effet réel.
Export PEM disponible pour les certificats SSL automatiques actifs, générés et déjà poussés sur les POPs.
Le health-check des POPs CDN vérifie aussi le port 53 pour retirer du DNS les noeuds dont le DNS public ne répond plus.
Le sync CoreDNS privilégie systemctl reload, restaure après rollback et évite un redémarrage complet quand un rechargement suffit.
Logo CDN.PIZZA harmonisé sur console, releases et vitrine générée.
Sécurité et rollout
Blocage des cibles locales, privées, réservées, documentation, multicast et liens locaux pour les moniteurs publics.
Aucun token, endpoint interne ou détail privé de node n’est rendu dans la page de statut publique.
Garde de compatibilité dans le service status pour éviter un 500 si /api/public/site-data est appelé avant la fin des migrations.
Migrations appliquées pour les pages de statut, moniteurs, résultats, clés d’enrollment et agents.
Image Laravel reconstruite avec ldns-tools pour générer et signer les zones DNSSEC dans les conteneurs applicatifs.
Nginx résout désormais dynamiquement l’upstream app via le resolver Docker afin de ne pas garder une ancienne IP de conteneur après recreate.
Validation
Tests Laravel pour pages de statut domaine, moniteurs, API agent, page publique et rollout /api/public/site-data.
Tests Jest CLI pour l’agent status, les tokens et les sorties sans secret.
Tests mail/localisation pour session FR/EN/DE, rendu réel via NotificationSender, facturation, sécurité et invitations anonymes.
Tests WAF pour état effectif, mode Surveillance, mise en page progressive et comportement edge des blocklists pays.
Tests SSL export, santé POP DNS :53 et rechargement/rollback CoreDNS.
Tests Laravel DNS/DNSSEC/GeoDNS pour résolution DS, formulaire DNS, activation DNSSEC, signature de zone et sync signée.
Endpoint /api/public/site-data vérifié en 200 après migration et cache clear.
Binaire ldns-keygen et ldns-signzone vérifiés dans les conteneurs applicatifs après rebuild Docker.
Console vérifiée en 200 sur /login après correction Nginx et redémarrage/recreate des services applicatifs.
Source: pages de statut par domaine, moniteurs, agent de statut léger, DNSSEC et e-mails localisés 2026-06-23
v0.6.2Publiée
Préparation console bêta et cache CDN
Version de préparation bêta: console plus testée, navigation simplifiée, cache HTTP edge configurable par domaine et interface DNS clarifiée pour comprendre ce qui passe réellement par le CDN.
La console dispose de nouvelles validations bêta: test de fumée Playwright authentifié, données de démonstration sandbox et tests BaseDNS, SSL, facturation, Payrexx, fichiers, purge et GeoDNS.
La navigation console est regroupée en catégories Services, Opérations et Paramètres, avec le compte et les réglages mieux alignés à droite.
Le CDN HTTP peut maintenant mettre en cache les réponses d’origine sûres avec modes, TTL POP, TTL navigateur et stratégie query string par domaine.
Les edge nodes évitent automatiquement de cacher les requêtes sensibles: Authorization, Cookie, Range, Set-Cookie et directives privées/no-store/no-cache.
La page DNS présente un bloc CDN HTTP clair qui sépare origine web, cache edge et portée des records Proxy actif.
Le site public de développement a été poli pour la bêta avec une section console réelle et un carrousel du panneau plus stable.
Détails de la version
Console bêta
Ajout d’un environnement Playwright console avec utilisateur sandbox, base SQLite dédiée, serveur de test et teardown propre.
Renforcement des parcours testés: facturation, dépôts Payrexx, fichiers, purge cache, BaseDNS admin, certificats SSL admin, GeoDNS et endpoint nodes.
Les jobs de purge et de synchronisation fichiers transportent mieux le contexte zone et node pour éviter les actions ambiguës.
Navigation console
Regroupement des entrées secondaires en menus déroulants Services, Opérations et Paramètres.
Réduction du poids visuel de la navbar sur desktop et vérification du comportement mobile authentifié.
Déplacement logique du bloc compte/réglages vers la droite afin de séparer navigation produit et actions utilisateur.
Cache CDN
Nouveaux réglages domaine: mode cache, TTL edge, TTL navigateur, query string incluse ou ignorée et bypass cookies.
Les payloads DNS sync transmettent la politique cache aux edge nodes pour les hostnames proxyfiés.
Le cache edge ne stocke que les réponses HTTP sûres et sert les HEAD depuis le cache sans peupler de nouvelles entrées.
Les purges restent disponibles via API et les stratégies par domaine sont couvertes par tests Laravel, Go et API zones.
DNS et interface cache
Le bloc DNS “CDN HTTP : origine et cache” explique que les records DNS-only restent de simples réponses DNS.
Les réglages sont séparés entre Origine web et Cache edge, avec libellés explicites pour connexion origine, HTTPS visiteur, TTL POP et cache navigateur.
Correction CSP de la page DNS grâce au nonce sur le script dynamique du formulaire DNS.
Site public dev
Section console réelle et carrousel du panneau ajustés pour mieux montrer le produit sans inventer d’interface.
Amélioration responsive et réduction des répétitions visuelles dans les pages de préparation bêta.
Contrôles des données publiques pour éviter les valeurs frontend incohérentes.
Validation
Tests Laravel ciblés sur DNS/cache, notes de version et parcours bêta.
Tests Go edge-node pour cache HTTP, sync DNS et règles de bypass.
Validation Playwright desktop/mobile de la navigation et du panneau DNS/cache, sans erreur console/CSP.
Pint et garde-fou permissions exécutés sur les changements livrés.
Source: préparation de la console bêta, regroupement de la navigation et cache CDN configurable 2026-06-21
v0.6.1Publiée
Clarté WAF et mode Surveillance
Patch de clarté WAF: la console distingue l’action configurée de l’effet réel, et l’edge applique une sémantique Surveillance cohérente pour le filtrage pays.
La page WAF expose un état de protection effectif avant les réglages.
Les actions Bloquer et Challenge affichent leur effet réel en Surveillance.
Le filtrage pays côté edge respecte désormais le mode Surveillance et journalise au lieu de bloquer.
Les libellés des actions custom, managed, géo et rate limit sont harmonisés.
Détails de la version
Console WAF
Ajout d’un bloc État de protection avec trafic protégé/non protégé, mode effectif, challenge, géo, rate limit et ordre d’évaluation.
Affichage explicite Action configurée / Effet maintenant pour éviter de promettre un blocage lorsque le WAF est en Surveillance.
Copies clarifiées sur les listes pays et IP pour rappeler que l’effet dépend du mode WAF.
Edge WAF
Le filtrage géographique utilise la même résolution d’action que les autres règles WAF.
En mode Surveillance, les pays blocklistés sont journalisés au lieu d’être bloqués.
Validation
Tests Go edge WAF pour les blocklists pays en Surveillance.
Tests Laravel de rendu WAF pour trafic non protégé, Surveillance et protection active.
Validation Playwright desktop/mobile et garde-fou permissions.
Source: clarté du WAF et cohérence du mode Surveillance 2026-06-21
v0.6.0Publiée
Préparation de la bêta publique
Version de préparation à la bêta publique: site public complet, vraie vitrine de la console, réseau live plus crédible, branding cdn.pizza et données publiques alignées avec le produit réel.
Le site public présente désormais les surfaces clés pour la bêta: fonctionnalités, réseau live, CLI/API, sponsors, prix, sécurité et pages multilingues FR/EN/DE.
La page d’accueil remplace les aperçus inventés par un carrousel de captures réelles du panneau issues d’un compte sandbox isolé, sans données client.
La page réseau utilise une carte Leaflet fondée sur les coordonnées réelles des POPs, avec flags robustes et inventaire public cohérent.
Les données publiques exposent les tiers POP réels Margherita/Diavola et évitent les valeurs frontend hardcodées.
Le branding public a été consolidé autour du logo cloud + pizza, des icônes Lunoz/Boxicons et du crédit UP-NETWORK Sàrl.
Détails de la version
Site public
Pages publiques structurées pour la bêta: accueil, fonctionnalités, réseau live, développeurs, sponsors, prix et sécurité.
Versions statiques FR, EN et DE avec URLs propres, liens hreflang/canonical et sitemap public.
Suppression des notes internes/SEO visibles au profit d’un contenu public orienté produit.
Console et preuve produit
Carrousel de captures réelles du panneau: tableau de bord, domaines, DNS, WAF, fichiers et réseaux privés.
Captures labellisées comme sandbox isolée afin de rendre la console tangible sans exposer de données client.
Mise en scène de la page d’accueil plus compacte pour la bêta publique, avec contrôles accessibles et états actifs.
Réseau live et données publiques
Carte Leaflet sombre avec coordonnées POP réelles, markers/flags stabilisés et regroupement plus lisible.
Inventaire POP public aligné avec les données backend: statut, régions, tiers et prix par GB.
Cartes POP plus denses: statuts compacts et suppression des répétitions de données manquantes.
Branding et exploitation
Logo cloud + pizza appliqué au site public, à la console et aux variantes statiques.
Remplacement des décorations emoji par les icônes Lunoz/Boxicons adaptées au style cdn.pizza.
Version console et changelog remis à jour pour suivre la préparation de sortie bêta publique.
Source: préparation de la bêta publique et commits du site public 2026-06-19/20
v0.5.3Publiée
Sécurité des dépôts Payrexx
Patch sécurité billing: les webhooks Payrexx ne créditent un wallet que si la transaction confirmée correspond au dépôt local attendu.
Les dépôts Payrexx sont liés à leur référence locale avant tout crédit wallet.
Le montant, la gateway et la devise attendus sont vérifiés contre les données confirmées par Payrexx.
Les rejouements ou transactions externes ne peuvent plus créditer un dépôt en attente sans correspondance.
La console expose ce durcissement dans le changelog public et le pied de page de version.
Détails de la version
Facturation
Le webhook refuse les transactions confirmées qui ne pointent pas vers le dépôt pending correspondant.
Les écarts de montant, monnaie ou passerelle restent en attente au lieu de créditer automatiquement le wallet.
Les tests de régression couvrent le binding transaction/dépôt et les cas de spoofing webhook.
Console
Version bêta mise à jour en v0.5.3 dans le pied de page console et auth.
Entrée changelog publique ajoutée pour tracer le correctif de sécurité Payrexx.
Source: durcissement de la sécurité des webhooks Payrexx
v0.5.2Publiée
Durcissement ACL, facturation et déploiements
Patch de préparation développement: enforcement ACL default-deny, cohérence facturation, sécurité dépendances et hygiène de déploiement.
Les policies réseau default-deny couvrent aussi les routes privées configurées côté edge.
Les règles ACL personnalisées invalides restent en brouillon et ne cassent plus l’application edge.
Les coupons trafic sont réconciliés lors des corrections de consommation à la baisse.
Les builds et playbooks évitent d’exposer les secrets dans les images ou logs de déploiement.
Détails de la version
Sécurité réseau
Application nftables sérialisée côté edge pour éviter les courses entre pushes de policy.
Default-deny appliqué même sans règle active afin d’éviter les échecs ouverts.
Activation ACL bloquée tant que les règles ne disposent pas de données CIDR appliquables.
Facturation et exploitation
Allowance premium 100 GB alignée entre API, console et configuration.
Crédits coupons restaurés quand une relance journalière corrige la consommation à la baisse.
Docker, CoreDNS, GitHub Actions et templates Ansible durcis pour une reprise de développement propre.
Source: arbre de travail 2026-06-04
v0.5.1Publiée
Confirmations du panneau et alertes intégrées
Patch UI/sécurité: les confirmations destructives et alertes du panneau ne dépendent plus des popups navigateur désactivables.
Les formulaires data-confirm ouvrent un dialogue intégré au panneau Lunoz via SweetAlert2.
Les alertes JS visibles sur nodes, POPs, renouvellement registrar et actions groupées utilisent le même helper panneau.
Les confirm/alert natifs sont bannis des vues Blade actives par test automatique.
La suppression groupée des nodes conserve la confirmation serveur confirm_bulk_delete et les protections nameservers critiques.
Détails de la version
Interface
Chargement global des assets SweetAlert2 du template Lunoz et styles compatibles dark mode.
Libellés de confirmation centralisés et traduits depuis la mise en page applicative.
Fallback Bootstrap fermé si SweetAlert2 n’est pas disponible, sans soumission silencieuse.
Sécurité et accessibilité
Messages injectés en texte, pas en HTML, afin de limiter les risques XSS.
Suppression des handlers inline onclick/onsubmit confirm pour rester compatible CSP.
Contrats de tests ajoutés pour empêcher le retour de window.confirm, alert ou confirm natif dans le panneau.
Source: arbre de travail 2026-06-01
v0.5.0Publiée
Sécurité, compatibilité edge et origines privées
Lot courant de durcissement et compatibilité: audit sécurité, contrat de build edge, gate des origines privées et visibilité admin des versions nodes.
Les edge nodes reportent version, commit, date de build et capabilities dans heartbeat et health.
Le control-plane stocke la compatibilité des nodes et bloque les métadonnées private-origin sur les builds qui ne prouvent pas le support.
Commande d’audit nodes:audit-compatibility et badges admin fleet pour repérer les nodes unknown/incompatible.
Passe sécurité: SSRF IPv6 transition, WebDAV, réinitialisation du mot de passe, BYOC, webhooks, chaîne d’approvisionnement PHP/Go et action GitHub de déploiement.
Détails de la version
Compatibilité edge
Capability requise: private_origin_metadata_v1.
Statuts normalisés: compatible, incompatible ou unknown selon les métadonnées reçues.
Les fingerprints DNS tiennent compte du support capability afin de resynchroniser après upgrade ou downgrade.
Sécurité
SafeOutboundHttpClient bloque les formes IPv6 de transition vers des cibles privées ou réservées.
Les URLs webhook loggées sont nettoyées de userinfo et query string.
La réinitialisation du mot de passe révoque les tokens et sessions database existants.
Origines privées et BYOC
Les POPs sans capability private-origin ne reçoivent plus de métadonnées d’origine privée.
Les nodes BYOC sont rattachées à l’organisation courante et la rotation de token exige la clé actuelle.
Les stats et messages multi-tenant évitent d’exposer des POPs, réseaux ou CIDR d’autres organisations.
Edge et chaîne d’approvisionnement
Le stockage public edge ne sert plus l’espace interne .metadata/.
La sync DNS edge purge les hôtes managés hors zone au rechargement/sync.
Go, dépendances PHP et images Docker edge sont mis à jour avec versions plus explicites.
Source: audit de sécurité 2026-05-29 et contrat de compatibilité des nœuds edge 2026-05-29
v0.4.2Publiée
Changelog public et pied de page de version
Version de cohérence pour rendre le numéro du pied de page cliquable et documenter tout l’historique bêta.
Pied de page console et auth relié au changelog public.
Catalogue centralisé des versions bêta avec dates, statut, sources et détails.
Page publique /releases avec définition de versioning et historique complet.
Détails de la version
Gestion des versions
La version courante est reconstruite depuis le catalogue et retombe sur la dernière entrée si APP_VERSION est vide ou obsolète.
Les versions précédentes restent visibles avec leur date de publication locale et leur source documentaire.
Interface
Le badge v0.4.2 du pied de page devient un lien accessible vers le changelog.
La page publique reste disponible sans authentification pour les pieds de page des écrans de login.
Source: arbre de travail 2026-05-29
v0.4.1Publiée
Consolidation du socle de release
Consolidation de main après les branches agent, garde-fou de permissions et validation complète du lot publié.
Branches codex consolidées dans main sans travail unique restant.
Garde-fou permissions ajouté avec scripts de contrôle/correction et hook pre-commit.
Contraste de la mise en page Laravel corrigé pour les tables en mode sombre.
Validation complète Laravel, Go, CLI, permissions et diff Git.
Détails de la version
Exploitation
La suite du développement repart explicitement de main.
Les scripts de permissions protègent les fichiers suivis sans relâcher storage, cache, .env ou secrets runtime.
Validation
Laravel: 545 tests et 3202 assertions.
Edge-node: go test ./... validé.
CLI: 6 suites Jest et 15 tests validés.
Source: mise à jour documentaire 2026-05-26
v0.4.0Publiée
Console, edge et sécurité
Grand lot console/control-plane/edge: WAF, réseau privé, DNS, webhooks, CLI et facturation à l’usage.
Protection dev par mot de passe et personnalisation du challenge WAF.
Synchronisation réseau privée plus stricte entre control-plane et edge nodes.
Webhooks customer, client HTTP sortant sûr et protections SSRF.
Pages Organisation/Facturation alignées avec le wallet à l’usage.
Détails de la version
Réseau et edge
Policies réseau vérifiées par hash, node, profil POP et statut réel de l’applier.
Edge-node renforcé pour WireGuard, WAF dev auth, DNS CoreDNS et redémarrages robustes.
Console
Page CLI enrichie avec commandes, endpoints API, erreurs HTTP et notes de sécurité.
Navigation console refactorisée avec barre supérieure, menu horizontal et corrections mobile.
Sécurité
Validation des URL webhooks et SEO via SafeOutboundHttpClient.
Détails de facturation masqués aux rôles non managers.
Source: mise à jour documentaire 2026-05-23
v0.3.0Publiée
Patch plateforme et sécurité compte
Patch plateforme autour de l’authentification, du registrar, du DNS, du routage POP et du durcissement edge.
WebAuthn/passkeys pour la 2FA et durcissement des tokens API.
Coupons trafic, registrar en queue et renouvellement des domaines gérés.
Jobs DNS/registrar visibles dans les tâches opérationnelles.
Edge management protégé par CIDR et proxy origin durci.
Détails de la version
Compte et admin
Création de tokens API protégée par mot de passe courant.
Mode admin protégé par 2FA avec gestion utilisateurs enrichie.
DNS et POPs
Synchronisation DNS, suppression DNS et base-zone déplacées en jobs.
Sélection des POPs actifs et sondes de latence dédiées à la queue latency.
Source: mise à jour documentaire 2026-05-19
v0.2.0Publiée
Socle produit privé
Première consolidation applicative large: organisations, support, registrar, mail, fichiers, WAF et POPs.
Organisations avec rôles, invitations et remplacement d’organisation personnelle vide.
Support client avec tickets, réponses, notes internes et pièces jointes.
Registrar Internet.bs, mail géré, WebDAV et stockage répliqué.
WAF avec presets, listes pays/IP, challenge et synchronisation edge.
Détails de la version
Produit
Pages POP/réseau remaniées avec routage intelligent et sondes de qualité inter-noeuds.
Audits SEO avancés sandboxés avec débit wallet et artefacts.
Technique
Middleware de rôle organisation sur les mutations customer.
Nouvelles migrations pour tickets, invitations, mail, SEO, sondes et codes d’invitation.
Source: mise à jour documentaire 2026-05-17
v0.1.0-betaBase
Import initial cdn.pizza
Base Laravel/control-plane, edge-node Go, CLI et site public importés dans le dépôt.
Structure initiale du control-plane Laravel.
Edge-node Go et CLI séparés du control-plane.
Site public statique et premières conventions de dépôt.
Détails de la version
Base
Point de départ de l’historique bêta avant les notes de mise à jour datées.