Commit graph

18 commits

Author SHA1 Message Date
Adam Belkacemi
3b961209f5 complète l'article CGU disponibilité/responsabilité, dette à jour
Exclusion de responsabilité classique (dommages directs seulement, pas
de plafond chiffré) choisie par Adam. TURN-443 : test complet (UDP
bloqué) laissé en l'état pour le premier pilote, formalisé en dette.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-14 00:50:38 +02:00
Adam Belkacemi
ecdc125288 règle deux points de dette avant le pilote : alerte self-healing, image Kuma
L'alerte Prometheus du self-healing (VmPanneGenerale, VmIrreparable,
VmSurveillanceArretee) existait déjà depuis un commit suivant celui qui
l'avait notée en dette - vérifié en interrogeant Prometheus en réel,
les trois règles sont chargées et saines. Ligne retirée.

Image Uptime Kuma : le digest figé correspondait au tag flottant ":1",
qui embarque un script d'avertissement sans impact réel. Repointé vers
le digest du tag versionné 1.23.17 (même version, build différent),
redéployé, sondes conservées.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-14 00:46:44 +02:00
Adam Belkacemi
592cba9c4c sépare la vitrine de l'application : vraie coquille, barre par rôle, chat
Une fois connecté, plus aucun lien vitrine : nouvelle layouts/app (barre
du haut avec menu avatar, barre latérale par rôle, bulle de chat
Messenger, barre d'onglets mobile). Les 10 entrées de navigation
demandées sont construites en vrai plutôt qu'en renvoi "bientôt
disponible" : Ma classe, Emploi du temps, Mes devoirs, Mes cours, Mes
notes côté élève ; Mes classes, Emploi du temps, Séances en direct,
Bibliothèque, Résultats (avec Observations, la dernière fonction
fictive du tableau de bord démo) côté prof.

Chat élève <-> prof de sa classe, jamais entre élèves. Mon profil,
Paramètres (thème, taille du texte), Signaler un problème, Mes
raccourcis. /eleve vidée des faux contenus ("À faire", "Ma progression",
"Mes QCM") restés avant le chantier "vrai cockpit".

Bug trouvé en testant en réel sur le serveur (pas en local) : le
compteur de messages non lus du chat ne redescendait jamais à zéro
(FilConversation sans lu_par_prof_a/lu_par_eleve_a dans son fillable) —
corrigé avec un test de non-régression.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-13 18:21:28 +02:00
Adam Belkacemi
a41951d4e6 peuple la banque de quiz avec du vrai contenu, rangé par thème
Un quiz.gift par séquence (01 à 07, le 08 existait déjà), lu par un
nouveau service LecteurGift et synchronisé par quiz:synchroniser-banque
(même esprit que labs:synchroniser) vers un propriétaire technique
jamais archivé (BanqueOfficielle), pour ne pas reproduire la dette du
quiz partagé qui disparaît à la purge RGPD. /banque-quiz regroupe
maintenant par thème comme /bibliotheque.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-13 16:14:36 +02:00
Adam Belkacemi
bd74eaf20f ajoute la banque de quiz : partager un quiz, le dupliquer dans une autre classe
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-13 12:25:42 +02:00
Adam Belkacemi
45f8a69e26 ajoute le relais TURN sur 443 pour la visio (ADR 0006), avec coturn et le routage Nginx par nom
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-13 11:45:53 +02:00
Adam Belkacemi
f899aac48a corrige le code de classe (caractères ambigus) et fige l'image Uptime Kuma par digest
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-12 21:50:53 +02:00
Adam Belkacemi
d47e8356fc ajoute les alertes Prometheus du self-healing et installe Larastan (dette de l'étape 8, 72 erreurs corrigées à la racine)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-12 21:32:52 +02:00
Adam Belkacemi
f2649d0f8b ajoute le self-healing des VM (sonde de santé, relance automatique, stock écarté) — bloc A, semaine 6
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-12 21:12:43 +02:00
Adam Belkacemi
b054888f5a sauvegarde les bases d'OpenStack et teste leur restauration chaque semaine
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:01:50 +02:00
Adam Belkacemi
7b0a8583eb écrit le bilan de mission et note le maintien temporaire de sudo sans mot de passe (étape 16)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:04:00 +02:00
Adam Belkacemi
ec4eae3744 ajoute la visio de classe : Jitsi auto-hébergé, jetons du portail, prof seul modérateur
Jitsi (docker-jitsi-meet, version figée) derrière Nginx sur meet.syllabuslab.fr,
accès par jeton JWT signé par le portail, modération du micro, mains levées
synchronisées avec l'application. Pare-feu : UDP 10000 et pont interne
br-visio (accords d'Adam). Jicofo n'authentifie plus lui-même : il donnait
le rôle de propriétaire aux élèves. Capacité ramenée à 20 VM.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 12:35:35 +02:00
Adam Belkacemi
dd4f9c3c55 permet aux élèves de rejoindre leur classe avec son code, et les fiches en lot
L'élève saisit le code de classe et son prénom, le prof accepte, l'élève
voit une seule fois son identifiant et son code. Aucun e-mail. Le prof
peut aussi régénérer les fiches de plusieurs élèves d'un coup. Procédure
pour prouver la copie de la clé des sauvegardes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 22:18:53 +02:00
Adam Belkacemi
1ac8d4773a corrige /ide, sert Mulish depuis le portail et complète les mentions légales
/ide avait une erreur de syntaxe depuis la maquette et un aperçu hors de
son bac à sable. Mulish était encore importée depuis Google par la feuille
de thème. Nouveaux tests : syntaxe des scripts de chaque page, feuilles de
style sans import externe. public/vendor exclu du rsync.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 21:44:02 +02:00
Adam Belkacemi
e4a6aaebb1 ajoute les pages légales, la purge RGPD et sert polices et scripts depuis le portail
Pages /legal et /confidentialite réécrites d'après le système réel, purge
des classes archivées depuis 90 jours (prouvée par Pest), archivage côté
prof. Polices, xterm.js et CodeMirror ne sont plus chargés depuis Google
ni jsDelivr. Pages d'aperçu signalées, sans vrais établissements ni faux
chiffres. Journaux Laravel gardés 14 jours.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 21:07:25 +02:00
Adam Belkacemi
0a5df89201 documente la capacité, la restauration et le redémarrage (étape 13)
Capacité mesurée sur 20 VM (docs/capacite.md), restauration complète du
portail réussie, retour automatique de tous les services après redémarrage.
Retire l'unité systemd orpheline de ProxySQL, rend fidèle au navigateur la
mesure du temps d'ouverture d'un lab (2,8 s), et regroupe la dette révélée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 20:12:11 +02:00
Adam Belkacemi
424d0f6f79 journal : page de statut publique vérifiée ; précise la dette sur l'image Kuma
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 15:04:25 +02:00
Adam Belkacemi
618cd7efbe passe le portail en HTTPS sur syllabuslab.fr, avec en-têtes de sécurité et CSP
Certificat Let's Encrypt obtenu et renouvelé par certbot (authentificateur
nginx), expiration surveillée par Prometheus. TLS selon Mozilla v6.0
intermediate, HSTS, CSP stricte avec nonce sur l'application et adaptée
sur la vitrine, xterm.js servi par le portail. Page de statut prévue sur
status.syllabuslab.fr, administration de Grafana et Kuma par tunnel seul.

Corrige aussi une faille XSS dans la page de classe, la page /cours en
erreur depuis l'étape 8, et NodeSource relancé à chaque déploiement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 10:39:50 +02:00