Introduction

Important

Cet article de blog présente mon infra à l’instant T. Un autre, à jour, sera publié lors de modification majeures. Cet article sera ensuite catégorisé obsolète.

Dans cet article, je vais vous présenter l’infrastructure que j’ai mise en place pour auto-héberger mes services. Ce tour d’horizon vous donnera une idée des équipements matériels et logiciels que j’utilise, ainsi que des raisons qui m’ont poussé à faire ce choix.

Pourquoi j’ai choisi l’auto-hébergement

J’ai choisi d’héberger mes services pour plusieurs raisons :

Contraintes

Je n’ai pas beaucoup d’argent à mettre dans des factures d’électricité, il était et est important que le matériel choisi ne soit pas trop énergivore. Parallèlement, du matériel peu énergivore devrait produire moins de chaleur, et je n’aime pas la chaleur.

Mon infrastructure

Matériel

Note

J’utilise un SSD pour le dossier /var pour préserver les cartes SD et l’eMMC, en conservant une vitesse correcte.

Dû à des contraintes budgétaires qui sont bientôt résolues, je n’utilise plus qu’un Raspberry Pi 4 et j’ai dû enlever certains éléments comme le monitoring.

Logiciel

Je n’utilise que Docker ainsi que quelques outils système sur mon Raspberry. Voici quand même ma liste de “Must-Have” :

Je dockerise ensuite de nombreux services, les principaux étant :

Ainsi que tous les autres services qui ne sont pas utiles à la gestion de l’infra, que je détaillerai dans d’autres articles.

Sécurité

Accès

Je n’expose que les ports requis pour les services que je souhaite rendre accessibles, à savoir 80 et 443 pour le HTTP et le HTTPS. Si un service requiert que j’expose un autre port (comme mon serveur IRC), je l’expose si je souhaite y accéder depuis l’extérieur.

L’accès en SSH à la machine se fait depuis le réseau local ou via mon VPN.

SSL

Pour avoir le HTTPS sur mes services, j’utilise un certificat wildcard ainsi qu’un certificat standard (*.millefeuille42.fr et millefeuille42.fr). Mon registrar (OVH) me permet de les obtenir et de les renouveler via leur API, le tout gratuitement.

Dans le cas où je ne peux pas (Namecheap et Scaleway), j’utilise le resolver Let’s Encrypt de Traefik pour les obtenir et les renouveler automatiquement et dynamiquement.

Forward Proxy

Pour protéger mes services qui n’ont pas vocation à être publics (et/ou qui ne fournissent pas d’authentification d’eux-mêmes, comme Homer), j’utilise le mode Forward Proxy de Authentik avec Traefik. Ça me permet de gérer les accès à ces services depuis un seul endroit.

Déploiement des services clés

Pour alléger cet article, je détaillerai le déploiment des outils clés (Traefik, Authentik, Portainer, Gitea), dans un autre article. Je mettrais le lien ici lorsque ce sera fait.

Pilotage d’autres infrastructures

Les services présentés me permettent de gérer d’autres serveurs, notamment pour des proches. Pour Portainer, il me suffit d’ajouter un agent sur le serveur, et Authentik permet un branding selon le domaine d’accès. Il me reste à installer et configurer Traefik sur le point d’entrée désiré. La gestion des utilisateurs d’Authentik me permet d’isoler les utilisateurs des différents serveurs.

Conclusion

L’auto-hébergement est une aventure enrichissante qui permet de reprendre le contrôle sur ses données et d’acquérir de nombreuses compétences techniques. Bien que cela demande du temps et des efforts, les avantages en termes de confidentialité, de contrôle et de satisfaction personnelle en valent largement la peine. Si vous êtes passionné par la technologie et que vous aimez les défis, je vous encourage fortement à essayer l’auto-hébergement. Vous ne le regretterez pas.