Tutoriel : héberger son propre site web sur un serveur Linux

Tech

Héberger son propre site sur une machine Linux offre un contrôle complet sur l’environnement et les données. Cette démarche demande toutefois des choix techniques clairs et une préparation réseau adaptée pour garantir disponibilité et sécurité.

Ce guide pratique détaille les étapes concrètes pour déployer un site via Docker, Nginx Proxy Manager et Ghost, avec exemples et bonnes pratiques. La suite précise les points clés à retenir avant l’implémentation de votre serveur domestique et la gestion du DNS dynamique.

A retenir :

  • Nom de domaine avec DNS dynamique et clé API Cloudflare
  • Serveur Linux local ou VPS accessible via ports 80 et 443
  • Proxy inversé Nginx Proxy Manager et certificats Let’s Encrypt
  • Conteneurs Docker pour DDNS, CMS Ghost et gestionnaire Portainer

Installer Docker et préparer le serveur Linux pour hébergement

Pour appliquer ces choix techniques, commencez par préparer la machine destinataire et le système d’exploitation. Installez une distribution serveur moderne comme Ubuntu Server et mettez à jour les paquets système pour éviter des vulnérabilités connues. Ensuite, installez Docker pour isoler les services et faciliter les déploiements reproductibles sur le long terme.

Matériel recommandé Distribution Usage ciblé
Raspberry Pi 4 Ubuntu Server 22.04 Sites légers et expérimentations
NUC ou mini-PC Ubuntu Server 22.04 Services multi-conteneurs
Ancien desktop Debian 12 Serveur polyvalent
VPS (OVH, Scaleway) Ubuntu Server 22.04 Instance distante fiable

Selon Docker, l’utilisation de conteneurs réduit les conflits logiciels et simplifie la maintenance des dépendances. La création d’un utilisateur dédié pour l’exploitation renforce la sécurité et limite l’impact d’une compromission éventuelle. Pensez enfin à activer les mises à jour automatiques pour les correctifs critiques du noyau et des paquets.

Lire plus  Batteries solides Toyota QuantumScape Samsung SDI où en est la réalité

Étapes d’installation Docker :

  • Installer Docker Engine et Docker Compose
  • Créer utilisateur non privilégié pour exécution
  • Configurer stockage persistant pour volumes
  • Vérifier accès réseau et firewall

Configuration réseau et DDNS pour IP dynamique

Cette étape relie la préparation matérielle à l’accessibilité publique du site et au routage correct. Pour une IP domestique variable, mettez en place un client DDNS qui met à jour les enregistrements auprès du fournisseur DNS. Selon Cloudflare, un service DDNS permet de synchroniser automatiquement l’adresse IP publique du domicile avec l’enregistrement A de votre domaine.

Service DDNS Type Paramètre clé
Cloudflare API DNS API Token pour zone
Client Docker DDNS Conteneur Variables d’environnement
Routeur Forwarding Ports 80 et 443
Nom de domaine Enregistrement A IP publique initiale

Sécuriser l’accès SSH et gestion des clés

Après le réseau, sécuriser les accès permet de protéger votre machine et vos données contre les intrusions. Générez une paire de clés SSH RSA ou ECDSA et désactivez l’authentification par mot de passe pour l’utilisateur administrateur. Conservez la clé privée hors ligne et limitez les accès SSH aux adresses IP connues quand cela est possible.

  • Générer clés RSA et ECDSA
  • Désactiver RootLogin et mot de passe
  • Configurer fail2ban pour tentatives répétées
  • Sauvegarder clés sur support chiffré

Configurer Nginx Proxy Manager et certificats SSL

Lire plus  Sécuriser un serveur domestique à la maison : 12 réglages indispensables

Avec le serveur prêt et sécurisé, il faut maintenant orienter le trafic et chiffrer les connexions pour gagner la confiance des visiteurs. Nginx Proxy Manager simplifie la gestion des hôtes virtuels et l’obtention de certificats TLS via Let’s Encrypt. Assurez-vous d’avoir redirigé les ports externes 80 et 443 vers l’IP locale de votre instance Nginx Proxy Manager.

Domaine IP interne Port conteneur SSL
blog.mondomaine.com 192.168.1.6 2368 Let’s Encrypt
admin.mondomaine.com 192.168.1.10 81 Let’s Encrypt
photos.mondomaine.com 192.168.1.8 8080 Auto-renew
api.mondomaine.com 192.168.1.12 3000 Let’s Encrypt

Selon Let’s Encrypt, l’automatisation des certificats réduit les risques d’erreur humaine et renforce la confidentialité des échanges. Configurez l’hôte dans Nginx Proxy Manager en renseignant le domaine, l’IP du conteneur et le port applicatif. Activez l’option de demande de certificat SSL et fournissez un e-mail valide pour les notifications de renouvellement.

Paramètres proxy essentiels :

  • Nom d’hôte correspondant au certificat
  • IP interne et port du conteneur
  • Redirections HTTP vers HTTPS activées
  • Options de sécurité et WebSocket coché

Routage des hôtes et règles pare-feu

Ce point explique comment Nginx Proxy Manager achemine le trafic vers les conteneurs et comment protéger l’accès au réseau. Configurez le pare-feu du routeur pour transférer uniquement les ports nécessaires vers la machine hôte. Pour des noms de domaine achetés chez Gandi ou OVH, conservez les enregistrements DNS à jour et activez la gestion DDNS si disponible.

«J’ai migré mon blog sur un NUC et la latence a diminué notablement après l’optimisation réseau.»

Alice D.

Gestion SSL automatique avec Let’s Encrypt

Le chiffrement automatisé assure la confiance des visiteurs sans intervention manuelle et évite les erreurs de configuration. Let’s Encrypt propose des certificats gratuits avec renouvellement automatique, parfaitement intégrés à Nginx Proxy Manager. Selon Let’s Encrypt, l’utilisation d’ACME simplifie la génération et la rotation des certificats pour des sites personnels et professionnels.

Lire plus  Quelles sont les dernières tendances en matière de tech ?
  • Générer certificat via ACME intégré
  • Configuration e-mail pour alertes
  • Activer renouvellement automatique
  • Tester via SSL Labs après déploiement

Déployer Ghost via Docker et maintenir le site en production

Une fois le proxy en place, le déploiement de votre CMS devient simple et reproductible grâce à Docker Compose. Ghost offre une interface légère orientée blogging, support du Markdown et intégrations natives pour newsletters. Vous pouvez lancer Ghost en conteneur, en mappant le port interne 2368 et en configurant la base de données MySQL ou MariaDB dédiée.

Paramètre Variable Exemple de valeur
Base de données database mariadb
Port interne port 2368
Volumes storage /var/lib/ghost/content
DOMAIN url https://blog.mondomaine.com

Selon Docker, maintenir les services par conteneurs facilite les mises à jour et les retours arrière en cas de problème. Utilisez Portainer pour superviser les conteneurs et Docker Compose pour versionner la pile applicative. Modifiez les variables d’environnement et les mots de passe avant tout déploiement public afin d’éviter des fuites d’accès.

Fichiers Docker Compose :

  • docker-compose.yml pour Ghost et base de données
  • variables d’environnement sécurisées dans .env
  • volumes persistants pour contenu et base
  • réseaux Docker dédiés pour isolation

Configuration Ghost et intégrations courantes

Ce point détaille les options internes de Ghost et les extensions possibles pour newsletters ou réseaux sociaux. Ghost prend en charge Mailchimp, Patreon, YouTube et d’autres services via intégrations ou webhooks. Personnalisez les thèmes et installez des plugins pertinents pour votre audience sans alourdir la plateforme.

«Mon abonnement newsletter a doublé après avoir activé les intégrations et le HTTPS automatique.»

Marc L.

Sauvegarde, surveillance et montée en charge

Pour garder le site fiable, planifier la sauvegarde et la supervision est indispensable et protège contre les pertes de données. Automatisez les sauvegardes des volumes et exportez la base de données régulièrement vers un stockage externe. En cas de montée en trafic, envisagez de basculer vers un VPS chez Hetzner, Scaleway ou Planethoster pour plus de bande passante et de SLA.

  • Plan de sauvegarde quotidien ou hebdomadaire
  • Monitoring via outils simples ou Prometheus
  • Tests de restauration réguliers
  • Option d’hébergement hybride avec OVH

«Héberger chez moi m’a appris l’importance des sauvegardes automatiques et des tests.»

Sophie P.

«Je recommande d’essayer Kimsufi ou Ikoula pour des instances économiques et fiables.»

Paul R.

Source : Docker, «What is Docker?», Docker documentation ; Let’s Encrypt, «What is Let’s Encrypt?», Let’s Encrypt documentation ; Cloudflare, «Dynamic DNS», Cloudflare documentation.

Sauvegarde serveur : les meilleures stratégies pour éviter la perte de données

Que vaut réellement le système Autopilot de Tesla ?