PROJECT 03 • INFRASTRUCTURE • SELF-HOSTED
Personal Home Server
A practical self-hosted environment built around Synology, Docker, networking and secure remote access — used as the foundation for applications and data projects such as the household receipt system.
PROJET 03 • INFRASTRUCTURE • AUTO-HÉBERGEMENT
Serveur personnel auto-hébergé
Un environnement auto-hébergé basé sur Synology, Docker, la réseautique et l’accès distant sécurisé, servant de fondation à des applications et projets de données comme le système de reçus du foyer.
Why I built it
I wanted to better understand how the services I use every day actually work behind the scenes. Building my own server gave me a place to configure, break, troubleshoot and improve real services instead of learning infrastructure only in theory.
Pourquoi je l’ai construit
Je voulais mieux comprendre ce qui se passe derrière les services que j’utilise au quotidien. Construire mon propre serveur m’a donné un environnement où configurer, casser, diagnostiquer et améliorer de vrais services plutôt que d’apprendre l’infrastructure uniquement en théorie.
What I worked on
Ce que j’ai travaillé
Containers & services
Deploy and maintain self-hosted applications with Docker while learning container networking, persistent storage and configuration.
Déployer et maintenir des applications auto-hébergées avec Docker tout en travaillant le réseau des conteneurs, le stockage persistant et la configuration.
Networking
Work through DNS, routing, ports, HTTPS and reverse-proxy behavior to make services reachable in controlled ways.
Travailler le DNS, le routage, les ports, HTTPS et le comportement du proxy inverse afin de rendre les services accessibles de façon contrôlée.
Remote access
Use Tailscale and other controlled access paths rather than exposing management services directly to the public Internet.
Utiliser Tailscale et d’autres chemins d’accès contrôlés plutôt que d’exposer directement les services d’administration à Internet.
Web hosting
Host this portfolio and learn how document roots, certificates, HTTPS redirects, security headers and custom error pages work in practice.
Héberger ce portfolio et apprendre concrètement le fonctionnement des racines Web, certificats, redirections HTTPS, en-têtes de sécurité et pages d’erreur personnalisées.
Troubleshooting
Trace application, DNS, routing, certificate and configuration problems across several layers instead of assuming the first visible error is the root cause.
Remonter les problèmes d’application, de DNS, de routage, de certificat et de configuration à travers plusieurs couches au lieu de considérer la première erreur visible comme la cause réelle.
Foundation for data projects
Use the infrastructure as the platform for PostgreSQL, document processing, workflow automation and other household/data experiments.
Utiliser l’infrastructure comme plateforme pour PostgreSQL, le traitement documentaire, l’automatisation des flux et d’autres projets de données.
Public-site security work
Because the portfolio is served from the NAS, I separated its public document root from Docker application data and hardened the public site without exposing administration services.
- Public portfolio files are isolated from Docker application/configuration directories.
- The Web Station service only needs read access to the static site.
- HTTP redirects permanently to HTTPS; HSTS is enabled after validating the redirect.
- A restrictive Content Security Policy blocks inline scripts/styles, third-party scripts and browser-side connections.
- connect-src 'none' prevents the public portfolio from making browser-side API/WebSocket connections to NAS services.
- Custom error pages avoid exposing server or infrastructure details.
Sécurisation du site public
Comme le portfolio est servi depuis le NAS, j’ai séparé sa racine publique des données d’applications Docker et renforcé le site public sans exposer les services d’administration.
- Les fichiers publics du portfolio sont isolés des répertoires d’applications et de configuration Docker.
- Le service Web Station n’a besoin que d’un accès en lecture au site statique.
- HTTP redirige de façon permanente vers HTTPS; HSTS a été activé après validation de la redirection.
- Une Content Security Policy restrictive bloque les scripts/styles intégrés, les scripts tiers et les connexions initiées par le navigateur.
- connect-src 'none' empêche le portfolio public d’établir des connexions API/WebSocket côté navigateur vers les services du NAS.
- Les pages d’erreur personnalisées évitent d’exposer des détails sur le serveur ou l’infrastructure.
Security boundary
Limite de sécurité
What I learned
Working across storage, containers, DNS, routing, certificates, access controls and application configuration made troubleshooting much more systematic. It also gave me a better understanding of how application projects depend on infrastructure decisions underneath them.
Ce que j’ai appris
Travailler avec le stockage, les conteneurs, le DNS, le routage, les certificats, les contrôles d’accès et la configuration des applications a rendu mon approche du dépannage beaucoup plus systématique. Cela m’a aussi permis de mieux comprendre comment les projets applicatifs dépendent des choix d’infrastructure sous-jacents.