Le problème
La solution
Comment ça fonctionne
Le déploiement automatique
- GitHub Actions construit automatiquement une nouvelle version de l'application (une "image Docker") et la publie sur le registre GitHub (ghcr.io).
- Watchtower, un conteneur qui tourne sur le Raspberry Pi, vérifie régulièrement si une nouvelle version est disponible. S'il en détecte une, il la télécharge et redémarre l'application — sans intervention de ma part.
L'accès depuis internet
- Les ports 80 et 443 (HTTP et HTTPS) de ma box internet sont redirigés vers le Raspberry Pi.
- Nginx Proxy Manager reçoit toutes les requêtes entrantes et les redirige vers le bon conteneur en fonction du sous-domaine demandé. Il gère aussi les certificats SSL automatiquement (HTTPS).
- Duck DNS surveille mon adresse IP (qui peut changer puisque je suis chez un FAI grand public) et met à jour l'enregistrement DNS quand elle change.
- OVH gère le nom de domaine arisalexia.fr et ses sous-domaines, qui pointent vers mon IP via Duck DNS.
La supervision
Applications hébergées
- Ce portfolio — arisalexia.fr (Next.js, conteneur ARM64)
- Dozzle — centralisation des logs
- Autres applications personnelles et expérimentations
Stack technique
- Conteneurisation : Docker, Docker Compose
- Orchestration : Portainer
- CI/CD : GitHub Actions, ghcr.io, Watchtower
- Reverse proxy : Nginx Proxy Manager (SSL automatique)
- DNS dynamique : Duck DNS
- Domaine : OVH (sous-domaines en *.arisalexia.fr)
- Supervision : Dozzle (logs)
- Hardware : Raspberry Pi 4 (ARM64)
Ce que ce projet démontre
- Capacité à concevoir et maintenir une infrastructure complète de bout en bout
- Mise en place d'un pipeline CI/CD fonctionnel avec déploiement automatique
- Maîtrise du réseau : ports, reverse proxy, DNS dynamique, certificats SSL
- Autonomie sur la chaîne DevOps sans dépendance à un cloud tiers