Le self-hosting : héberger ses applications chez soi
Le self hosting, ou auto-hébergement, consiste à faire tourner chez soi les applications que l’on confie habituellement à des services en ligne : stockage de fichiers, gestionnaire de mots de passe, dépôts Git, streaming vidéo, agrégateur de flux… Plutôt que de louer un service, vous l’hébergez sur votre propre machine et en gardez le contrôle total. Ce guide pose la philosophie, passe en revue les applications les plus utiles, explique comment les déployer avec Docker et — le point le plus délicat — comment les exposer et les sauvegarder sans se mettre en danger.
La philosophie : reprendre la main
Le self-hosting répond à une question simple : à qui appartiennent vos données ? Quand vous utilisez un cloud grand public, vous acceptez ses conditions, sa politique de confidentialité et son modèle économique. En auto-hébergeant, vous décidez.
Les motivations sont concrètes :
- Souveraineté : vos fichiers, vos photos, vos mots de passe restent physiquement chez vous.
- Pas d’abonnement : le logiciel est libre, vous ne payez que le matériel et l’électricité.
- Apprentissage : administrer ces services enseigne le réseau, Linux et les conteneurs mieux que n’importe quel cours.
La contrepartie doit être dite franchement : vous devenez responsable de la disponibilité, des mises à jour et des sauvegardes. Si le service tombe, personne ne le relèvera à votre place. Le self-hosting est un loisir exigeant autant qu’une prise de contrôle.
Les applications qui valent le détour
L’écosystème libre est riche. Voici les incontournables pour débuter, par usage.
- Nextcloud : la référence pour remplacer un cloud de fichiers. Synchronisation, partage, agenda, contacts, le tout dans une interface web soignée.
- Jellyfin : un média-center pour diffuser films et séries sur tous vos écrans, sans abonnement.
- Vaultwarden : un gestionnaire de mots de passe compatible avec les clients Bitwarden, hébergé chez vous.
- Gitea ou Forgejo : votre propre forge Git, légère, pour héberger vos dépôts en privé.
- Immich : une sauvegarde de photos avec reconnaissance et albums, très proche de l’expérience des galeries mobiles commerciales.
- Pi-hole : un bloqueur de publicités à l’échelle de tout le réseau.
Le conseil de démarrage : n’installez qu’une seule de ces applications au début. On maîtrise mieux un service que cinq à moitié configurés.
Docker : le socle de l’auto-hébergement
La quasi-totalité de ces applications se déploie aujourd’hui avec Docker. L’intérêt est majeur : chaque service tourne isolé, avec ses dépendances, sans polluer le système hôte. On l’installe, on le met à jour, on le supprime proprement. Si Docker vous est étranger, commencez par notre guide Docker pour débutants, qui explique images, conteneurs et volumes pas à pas.
Voici, à titre d’exemple, le déploiement d’un gestionnaire de mots de passe via un fichier docker-compose.yml :
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
volumes:
- ./vw-data:/data
ports:
- "8080:80"
On lance ensuite tout en une commande :
# Démarrer le service en arrière-plan
docker compose up -d
# Vérifier qu'il tourne
docker compose ps
Le service répond désormais sur http://IP-du-serveur:8080. Le dossier vw-data conserve les données même si le conteneur est recréé : c’est le principe des volumes, à ne jamais oublier sous peine de tout perdre à la première mise à jour.
Exposer ses services à Internet (avec prudence)
Tant que vos applications restent sur le réseau local, elles sont inaccessibles depuis l’extérieur — ce qui est le plus sûr. Mais on veut souvent accéder à son Nextcloud depuis le train. Trois briques permettent cette exposition.
Le reverse proxy. On ne veut pas ouvrir un port différent par service, ni exposer chacun en clair. Un reverse proxy comme Nginx (ou Caddy, Traefik) place une porte d’entrée unique, gère le HTTPS et distribue le trafic vers le bon service. Notre guide du reverse proxy avec Nginx détaille cette configuration essentielle.
Le DNS dynamique. Votre connexion domestique a le plus souvent une adresse IP qui change. Un service de DNS dynamique (DynDNS) associe un nom de domaine à votre IP et le met à jour automatiquement quand elle change. Vous accédez alors à https://cloud.mondomaine.fr plutôt qu’à une adresse mouvante.
La redirection de port. Sur votre box, vous redirigez le port 443 (HTTPS) vers votre reverse proxy. C’est cette étape qui rend votre serveur visible depuis Internet — et donc des robots qui scannent le web en permanence.
Une alternative plus sûre existe et mérite d’être connue : le VPN. Avec un serveur WireGuard chez vous, vous vous connectez à votre réseau domestique à distance sans exposer aucun service au public. Moins pratique à partager, bien plus sûr.
Les sauvegardes : le pilier qu’on oublie
Un service auto-hébergé sans sauvegarde n’est pas de l’auto-hébergement, c’est un pari. Un disque meurt, une mise à jour tourne mal, une mauvaise manipulation efface tout. Adoptez la règle 3-2-1 : trois copies, sur deux supports différents, dont une hors du domicile.
Concrètement, la plupart des services stockent leurs données dans des volumes Docker. Un script simple peut les archiver :
# Arrêter proprement, archiver les données, redémarrer
docker compose stop
tar czf sauvegarde-$(date +%F).tar.gz ./vw-data
docker compose start
Automatisez ensuite cette sauvegarde avec une tâche planifiée (cron) et copiez l’archive ailleurs (un disque externe, un stockage distant chiffré). Testez la restauration au moins une fois : une sauvegarde jamais restaurée n’est qu’une hypothèse.
Sécurité : les règles non négociables
Exposer un service, c’est accepter que des robots tentent d’y entrer. Quelques mesures réduisent drastiquement le risque.
# Pare-feu : n'ouvrir que HTTPS et SSH
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable
# Installer fail2ban pour bloquer les tentatives répétées
sudo apt install -y fail2ban
Au-delà du pare-feu : mots de passe forts et uniques, authentification à deux facteurs partout où c’est proposé, mises à jour régulières des images Docker, et surtout n’exposez que ce qui doit l’être. Un service qui n’a pas besoin d’être accessible de l’extérieur reste sur le réseau local.
Organiser plusieurs services proprement
Dès que vous dépassez deux ou trois applications, l’improvisation atteint ses limites. Prenez de bonnes habitudes tôt. Regroupez chaque service dans son propre dossier, avec son docker-compose.yml et ses volumes à côté, pour savoir en un coup d’œil où vivent les données :
# Une arborescence claire, un dossier par service
~/services/
├── nextcloud/
│ ├── docker-compose.yml
│ └── data/
├── vaultwarden/
│ ├── docker-compose.yml
│ └── vw-data/
└── jellyfin/
├── docker-compose.yml
└── config/
Documentez au fur et à mesure : quel port utilise quoi, quel service dépend de quel autre, comment restaurer une sauvegarde. Un simple fichier texte suffit, mais il vous sauvera la mise le jour d’un incident, six mois plus tard, quand vous aurez tout oublié. C’est la différence entre un self-hosting durable et une pile de conteneurs que l’on n’ose plus toucher.
Les limites, en toute honnêteté
Le self-hosting n’est pas magique. Votre disponibilité dépend de votre connexion Internet et de votre électricité : une coupure et vos services tombent. La bande passante montante domestique est souvent limitée, ce qui bride le streaming vers l’extérieur. Et le temps d’administration est réel : mises à jour, incidents, veille de sécurité. Pour un usage professionnel critique, un hébergeur reste plus pertinent — voyez notre comparatif du meilleur hébergeur web pour développeurs. Pour apprendre, expérimenter et reprendre la main sur ses données, l’auto-hébergement est difficile à battre.