Dossier · Développement
Ce site
Portfolio public et cockpit privé dans la même app Astro SSR, derrière Authelia.
Ce site est à la fois une vitrine publique et un cockpit d'administration privé, servis par la même application. Je l'ai écrit autant pour avoir un portfolio que pour appliquer chez moi ce que je demande ailleurs.
Stack
- Front / SSR : Astro en rendu serveur, adaptateur Node standalone.
- Données : SQLite via
node:sqlite, contenu éditable depuis le cockpit. - Déploiement : Docker en non-root, derrière Traefik et Authelia.
Le modèle d'accès
L'authentification réelle, c'est Authelia. Mais l'application ne lui fait pas confiance aveuglément : elle n'ouvre l'espace privé que si un secret partagé injecté par le reverse proxy est présent et que l'identité transmise correspond au compte attendu. Sans secret, elle refuse — y compris moi.
Le proxy vide par ailleurs tous les en-têtes d'identité entrants avant de router : sans ça, n'importe qui pourrait les fabriquer.
Le reste
- CSP avec hachage des scripts, en-têtes de sécurité, protection CSRF en double-submit.
- Markdown assaini à l'affichage, même si je suis le seul à pouvoir en écrire.
- Sauvegarde automatique de la base, hors du volume Docker — parce qu'une sauvegarde qui disparaît avec ce qu'elle protège n'en est pas une.
- CI sur chaque push : types, tests unitaires, audit des dépendances de production, build de l'image.
Rien d'extraordinaire pris séparément. C'est justement le propos : ce sont les mesures de base, réellement appliquées.