CasaOS peut héberger un site web, mais le site web et l’interface d’administration de CasaOS doivent être considérés comme des services distincts. C’était le conseil le plus important de cette courte discussion d’octobre 2023 : exécuter un serveur web dans Docker est raisonnable, tandis qu’exposer directement le tableau de bord CasaOS sur l’Internet public est une décision différente et beaucoup plus risquée.
Pour un site statique simple, Nginx reste un excellent choix de conteneur, car l’image officielle peut servir un répertoire contenant du HTML, du CSS, du JavaScript et des images avec très peu de configuration.
Exécutez le site dans son propre conteneur
CasaOS est une couche de gestion pour Docker et les fichiers de l’hôte Linux sous-jacent. Un site web n’a donc pas besoin d’être installé dans le service de gestion de CasaOS lui-même.
Maintenez le serveur web isolé dans son propre conteneur, avec un répertoire de contenu dédié et uniquement les ports dont il a besoin.
L’image officielle Nginx peut servir directement du contenu statique
L’image Docker actuelle de Nginx prend en charge le montage en lecture seule d’un répertoire de site web local dans :
/usr/share/nginx/html
Ce modèle est idéal pour un site personnel statique, car le processus du serveur peut lire le contenu sans modifier les fichiers source.
Utilisez la structure actuelle du conteneur Nginx officiel pour le contenu statique plutôt que de copier une ancienne image tierce provenant d’un tutoriel de 2021.
Apache convient également, mais le choix ne constitue pas la frontière de sécurité
La question initiale portait sur Apache ou Nginx. Les deux peuvent très bien héberger un site web. Les décisions les plus importantes concernent la mise à jour du conteneur, l’emplacement des fichiers du site, la configuration de TLS et les ports réseau exposés.
Passer de Nginx à Apache ne rend pas sûr un tableau de bord d’administration exposé publiquement.
Gardez le tableau de bord CasaOS privé
Le membre de la communauté a explicitement déconseillé d’ouvrir CasaOS sur le web. L’interface de gestion peut contrôler les fichiers, les conteneurs et d’autres fonctions du serveur ; son exposition crée une surface d’attaque bien plus vaste que celle d’un conteneur de site web configuré de manière restrictive.
Limitez l’administration au réseau local ou placez-la derrière une solution d’accès distant privée.
Utilisez un réseau privé pour l’administration
L’utilisateur à l’origine de la question a décidé de conserver CasaOS chez lui pour Jellyfin et d’utiliser Tailscale pour l’accès distant à Nextcloud. Il s’agit d’une séparation des responsabilités pertinente : le trafic du site public peut être dirigé vers le conteneur web, tandis que les services d’administration restent accessibles uniquement via un réseau superposé privé.
Si le site doit être public, ajoutez TLS et un chemin d’accès clairement défini
Un site public a généralement besoin d’un nom de domaine, d’un certificat HTTPS et soit d’une redirection de ports sur le routeur, soit d’une architecture reposant sur un tunnel inversé authentifié. Le choix exact dépend de la disponibilité d’une adresse IP publique et de la quantité d’infrastructure que vous souhaitez gérer.
Ne publiez que les ports du serveur web requis par le site. Ne redirigez pas les ports CasaOS ou de gestion de Docker qui ne sont pas nécessaires.
Mettez à jour le conteneur web et sa pile de contenu
Un site Nginx statique minimal présente une surface d’attaque relativement réduite, mais le conteneur doit tout de même recevoir les mises à jour de sécurité. Les sites dynamiques reposant sur PHP, WordPress, Node.js ou une base de données ajoutent beaucoup plus d’éléments mobiles et doivent être mis à jour comme une pile applicative, plutôt que traités comme de simples fichiers statiques.
Sauvegardez le contenu du site séparément du conteneur
Conservez les fichiers du site dans un dossier persistant de l’hôte ou dans un dépôt. Si le conteneur est recréé, le site doit pouvoir être restauré sans reconstruire son contenu à partir du système de fichiers éphémère d’un conteneur jetable.
FAQ sur les serveurs web CasaOS
CasaOS peut-il héberger un site web ?
Oui. Un serveur Nginx ou Apache conteneurisé peut publier du contenu web indépendamment de l’interface CasaOS.
Faut-il exposer publiquement le tableau de bord CasaOS lui-même ?
La communauté à l’origine de la discussion l’a explicitement déconseillé. Gardez la gestion privée.
Quel serveur est le plus simple pour un site statique ?
L’image Docker officielle de Nginx offre une méthode simple pour servir du contenu statique.
