Commit graph

23 commits

Author SHA1 Message Date
riricdev
008eefbb3f portfolio: terminal Debian plein ecran, sans components — prompt/input dans le flux de sortie 2026-09-08 21:36:55 +02:00
riricdev
fa21a16f90 portfolio: alias 'about' + cache bust v2 2026-09-08 12:40:39 +02:00
riricdev
f16e6ddde1 feat: page portfolio de style terminal Linux présentant Riric (DotRiric)
- public/portfolio/ (FR + EN) : terminal Debian interactif (prompt dotriric@zektyc:~$, historique, commandes help/whoami/cat/neofetch/contact/sudo/exit/clear...)
- Corrige un bug CSP-critique : String.prototype.link faisait traiter toutes les lignes texte comme des liens (A undefined) ; makeRich exige désormais typeof item.link === 'string'
- Nav : lien Portfolio ajouté (components.js v=8, i18n nav.portfolio)
- Sitemaps FR/EN : /fr/portfolio et /en/portfolio
2026-09-08 12:29:49 +02:00
rinrin
a2952080fd fix(licence): §6 takedown — retrait de l'affirmation trop forte 'vaut notification L.512-1/réputée suffisante' ; les plateformes imposent leurs propres formalités (DMCA/notice-and-takedown), le document sert d'étai mais ne dispense pas ; idem dans LICENSE.md 2026-09-08 11:23:41 +02:00
rinrin
83977fb6d3 feat(securite+licence): hardening infra (Bun bind 127.0.0.1, systemd non-root+NoNewPrivileges, DB 600) + licence maison stricte (page /licence FR+EN, lien footer, TOS §10, LICENSE.md/README dépôt, sitemap) 2026-09-08 11:17:07 +02:00
riricdev
25fa3e5cf0 fix(api): retrait du rate-limit applicatif sur /api/maxspeed (seule la limite anti-DoS nginx 30 r/s s'applique), suppression du champ 'dir' (chemin FS interne) dans les métadonnées, doc §4 mise à jour 2026-09-07 16:05:44 +02:00
riricdev
4279eb0f6d fix(docs): contenu factuel — couverture Europe uniquement (pas 'planet'), vintage mi-août 2026, disclaimer 'à titre indicatif, non garanti à 100 % (surtout en ville)', suppression des mentions hebdomadaire non fondées ; fix overflow mobile docs (flex column stretch + table/pre scroll). 2026-09-07 15:55:12 +02:00
riricdev
b65db0be44 fix(csp): docs + 418 sans style/script inline — CSS/JS externalisés, header/footer injectés par components.js (#h/#f), playground API déplacé dans docs-playground.js et docs.css 2026-09-07 15:34:23 +02:00
riricdev
1482c6aaf0 feat: easter egg théière 418 + Konami obfusqué via global.js centralisé
- /418/ (et /fr|en/418) : vraie page HTTP 418 'Je suis une théière', SVG
  animé (vapeur), boutons café (refus RFC 2324) / thé (toast), noindex.
- Nouveau public/js/global.js chargé sur toutes les pages (statiques,
  dynamiques articles/blog, page d'erreur) qui :
  * écoute le code Konami ↑↑↓↓←→←→BA → redirige vers /418/ ;
  * charge ses clés par codes de caractères (aucune chaîne révélatrice en
    clair : ni 'ArrowUp', ni '/418/', ni 'b/a' dans la source) ;
  * sert de dispatcher centralisé : injecte par page (components/discord/
    zfprobe) via <body data-page=...> ou règles de chemin, sans doublon.
- easter.js supprimé au profit de global.js unique sur 22 pages statiques.
2026-09-07 15:16:20 +02:00
riricdev
a95a287327 fix(priv): textes factuels — Forgejo couvert (comptes/sessions/tokens/dépôts section 4.1), durée de conservation et sécurité mises à jour, footer ne prétend plus 'aucun cookie' mais cookie de langue unique sans suivi, et nuance sur le tunnel Tailscale (TLS local, sans CDN). 2026-09-07 14:30:28 +02:00
riricdev
537478d016 fix(lang/priv): textes factuels sur le cookie de langue ; le site pose désormais un unique cookie de préférence de langue (zektyc-lang) et non 'aucun cookie' 2026-09-07 14:14:33 +02:00
riricdev
88adcb1590 feat(seo): sitemap aligné sur les canoniques des pages (slashes) et hreflang ajouté aux pages dynamiques (articles, blog) 2026-09-07 13:18:01 +02:00
riricdev
f2f1bd41e1 feat(lang): supprime l'écran Redirection…, 302 serveur par Accept-Language/cookie, et traductions par fichier de langue (data/i18n/{fr,en}.json, éditables via Forgejo) 2026-09-07 12:55:35 +02:00
riricdev
fc366811f7 chore(scripts): retire les scripts d'exploitation et data/maxspeed du dépôt (conservés sur disque pour les services systemd) 2026-09-07 12:15:17 +02:00
riricdev
7b9d0be9ac chore(secrets): retire les webhooks Discord et l'état runtime du git avant hébergement public
- scripts antiflood/ipwatch/uptime-check chargent désormais leur webhook depuis
  scripts/.webhooks (gitignoré) au lieu d'un token en dur
- suppression scripts/antiflood.sh.bak-before-cpu-removal (doublon mort)
- untrack + gitignore des fichiers d'état runtime (.ipwatch-state/offset, .synbase,
  .synstate, .uptime-state) contenant des IP opérationnelles
2026-09-06 16:38:49 +02:00
riricdev
56ae9cf5d1 fix(lang): redirect par langue reste sur l'hôte courant (.onion compris) + détection langue fiable
- base mailto hote courant via Host header (http pour .onion, https sinon) :
  canonical/hreflang restent sur le domaine actuel, plus de fuite vers le Funnel
- meta refresh rendu relatif et différé à 1.5s pour laisser le JS choisir la langue
- localStorage isolé dans son propre try/catch : la détection navigator s'exécute
  même quand le stockage est bloqué (Tor), plus de Français systématique
2026-09-06 16:28:37 +02:00
riricdev
370b3d8752 feat(lang): routage préfixé /fr/ et /en/ avec redirect JS langue sur les chemins non préfixés
- page-redirect sur / et tous les chemins sans préfixe : localStorage zektyc-lang
  puis navigator.language, défaut fr ; fallback FR si la page n'a pas de version EN
- /en/ sert enfin la home EN (public/en/), fix de LANG_ROUTES.en
- home EN générée à partir d'i18n.json (ld+json Organization/FAQPage valides)
- i18n.js/components.js : switch de langue par préfixe + liens préfixés
- anciennes URLs /zmap/en/* : 301 vers /en/zmap/* ; pages EN zmap déplacées
  vers le layout <page>/en/ standard
- canonicals/hreflang fr-en-x-default sur toutes les pages statiques + sitemaps
  (équipe, zmap, archives, vitesses-par-route ajoutées) ; suppression du domaine
  obsolète zektyc.duckdns.org (robots, sitemap index, security.txt)
2026-09-06 16:12:16 +02:00
riricdev
bf9b3ccf69 feat: minification serveur à la volée (terser + fallback Bun) et cache immutable
- import terser/Bun.Transpiler (fallback si terser indisponible)
- minifySrc(): CSS via regex, JS via terser.minify (compress+mangle) sinon source
- buildFileCache asynchrone, etag stable sha1(content), cache de minification hashé
- Cache-Control: html no-store, assets ?v= immutable 1 an, sinon must-revalidate
2026-09-06 14:48:11 +02:00
riricdev
02125e473d perf(zfprobe): purge code mort et répare la fermeture du hero
Suppression des clés i18n jamais utilisées `run` et `finalRun`
(fr/en). Id fantôme `ft-hero` référé en JS mais absent du HTML :
l'id est ajouté aux 2 pages pour que le héros se masque bien en fin
d'analyse multi-passes (répair du comportement prévu). Cache v14→v15.
2026-09-06 13:17:35 +02:00
riricdev
aa68a97fd3 style(vitrine): palette chaude papier/encre + accent rouille, fini le noir pur
Le monochrome noir/blanc type « template IA » est remplacé par une
identité plus humaine : papier chaud (#faf8f3) / encre (#201b14), un
accent rouille unique (cohérent avec les tags ambre existants), serif
éditorial pour les titres (sans webfont externe), hero sans grille
technique (halo chaud organique) et micro-labels dé-shoutés (héros,
contact, team) sans uppercase ni letter-spacing agressif. Les blocs
team/tor qui codaient du blanc en dur passent sur les variables (ils
cassaient en thème clair). Cache style.css v7→v8 sur les 21 pages.
2026-09-06 13:14:30 +02:00
riricdev
1a1d6a4fe2 textes(fingerprint): hero-badge humain, sans jargon AI
Avant: «Premier projet Zektyc · 100 % côté client» / «First Zektyc
project · 100% client-side» — auto-promotion + jargon qui sent l'IA.
Après: «Rien ne quitte votre navigateur» / «Nothing leaves your
browser» — promesse claire et humaine, dans les 2 langues.
2026-09-06 13:11:37 +02:00
riricdev
efc6fc07d2 feat(social): supprime le code Social mort (jamais branché)
- suppression social-core/views/auth/privacy/css (0 référence dans src/, aucune page)
- suppression branches isSocial() mortes dans components.js
- nettoyage isFpTest() mort + footer-back CSS orphelin
- simplification isTorBrowser() (suppression debug logs + conditions redondantes)
2026-09-06 13:06:34 +02:00
riricdev
d7ec32a458 chore: checkpoint initial — Zektyc dataset, avant humanisation
- site vitrine + fingerprint test + zmap + z-panel
- remplacement duckdns -> riricdev.tail5ea5cd.ts.net (canonical/og/alternates/docs)
- suppression du token DuckDNS (plus utilisé)
2026-09-06 13:03:25 +02:00