Autohébergement de tes applications web

Et si tu devenais ton propre fournisseur !

Dans cet article, je vais te présenter les options pour faire l’autohébergement de tes applications web.

Je t’informe des coûts, des connaissances nécessaires, des plateformes populaires à installer sur son serveur et de tes nouveaux pouvoirs et responsabilités !

Nous allons pratiquer ce qui s’appelle couramment l’autohébergement (self-hosting), où tu deviens ton propre fournisseur d’hébergement.

Atelier de groupe:
25 novembre – Autohébergement avec Yunohost

Un atelier pour découvrir l’autohébergement avec la plateforme Yunohost.

Date: Le lundi 25 novembre 2024 de 13h30 à 16h30, heure de Montréal

Où: Atelier en ligne sur la plateforme Zoom

Objectif de la formation: Dans cet atelier, tu auras l’occasion d’expérimenter l’autohébergement. À la fin, tu auras les connaissances nécessaires pour configurer un serveur avec la plateforme Yunohost, y installer des applications et faire des sauvegardes.

Pourquoi s’autohéberger ?

La plupart des sites web sont hébergés sur des plateformes dites mutualisées. Essentiellement, une entreprise d’hébergement loue un espace sur ses serveurs à travers une plateforme de type CPanel. Tu peux ensuite y installer un gestionnaire de contenu tel que WordPress pour construire ton site web et y installer d’autres applications.

Ces fournisseurs offrent souvent un nom de domaine, des certificats HTTPS et un service de sauvegarde. Par contre, le niveau de fiabilité et la disponibilité du support sont variables. On le découvre souvent trop tard lors des pannes ou incidents de sécurité. Les mises à jour ne sont pas toujours faites. Bien souvent, tu dois composer avec d’anciennes versions des logiciels qui n’incluent pas les nouvelles fonctionnalités et les correctifs de sécurité.

Plusieurs situations d’hébergeurs qui perdent des données de dizaines, voir de milliers de sites web sont survenues dans les dernières années, au Québec ou ailleurs.

S’autohéberger permet d’avoir le contrôle sur l’ensemble de la pile logicielle, du système d’exploitation aux versions des modules d’extension. Ça permet aussi de se conformer plus facilement aux lois de souveraineté des données, comme le RGPD ou la loi 25 au Québec. C’est aussi un beau défi, stimulant et enrichissant, qui te rendra plus résilient·e sur le web.

Par contre, ça vient aussi avec des responsabilités. C’est ce qu’on va voir ensemble. Mais avant ça, explorons les coûts en lien avec cette option.

Ça coûte combien, autohéberger ses applications web ?

Pour s’autohéberger, il y a deux principales options disponibles: louer un serveur physique ou un serveur virtuel, ou l’acheter et l’héberger à la maison ou en colocation. C’est de là que vont provenir la majorité des coûts

Il y a aussi une option intermédiaire qui fait partie des offres cloud: louer un serveur privé virtuel (appelé généralement VPS) qui représente une fraction d’un serveur physique. Ce dernier est généralement partagé à l’aide d’un logiciel spécialisé appelé hyperviseur.

Les différentes options varient d’environ 10$ par mois jusqu’à plusieurs centaines de dollars par mois.

Un serveur physique à la maison

Choisir ton serveur

Un serveur physique peut coûter entre 1000$ et 3000$ à l’achat pour un matériel récent, et a une durée de vie d’environ 10 ans. Il y a des options intéressantes dans l’usagé aussi à considérer, que tu peux trouver à partir de 500$. Regarde toujours pour des marques réputées pour leur matériel commercial, telles que Dell, HP ou Lenovo. L’important ici, c’est le grade de qualité du serveur qui doit être commercial. Oublie les ordinateurs du Best Buy ! C’est important parce qu’il va fonctionner 24 heures par jour, durant toute l’année.

Tu vas souvent voir des montages avec des ordinateurs légers de type Raspberry Pi. C’est amusant pour des projets de type hobby, mais je ne conseille pas pour un usage en entreprise. Surtout parce que c’est lent, et que le système est plus sensible aux pannes. Ce n’est pas la bonne place pour économiser.

Bien t’installer

Si tu héberges le serveur chez toi, il faut penser à une alimentation électrique d’urgence de type UPS avec deux piles à décharge rapide. C’est environ 200$ pour les modèles de base de l’entreprise APC, Costco en ont souvent en promotion. Il te faudra aussi un climatiseur en été, parce que ça dégage beaucoup de chaleur (10$ par mois de juin à septembre). En hiver, par contre, ça contribue à ton chauffage ! il faut aussi penser à la sécurité physique, car ton serveur pourrait être volé. Donc, idéalement, tu veux avoir un rack métallique. Un serveur standard va coûter environ 5$ d’électricité par mois auprès d’Hydro-Québec.

Si tu veux une bonne performance au niveau de la connexion au réseau Internet, tu dois avoir un service de fibre optique tel que Bell Fibre ou un forfait commercial de cable. Les forfaits résidentiels de cable ou de téléphonie ADSL ne sont généralement pas suffisants.

Un serveur physique en colocation

Un espace en colocation dans un centre de données va coûter autour de 100$ par mois pour y installer ton propre serveur. C’est une option intéressante si tu as acheté une bête à plusieurs milliers de dollars, pour une entreprise en croissance. Mais pour le commun des mortels, en particulier les petites entreprises, ça peut être dispendieux pour démarrer. Tu dois fournir ici ton serveur physique et le câble d’alimentation électrique. Tu pourrais aussi avoir à fournir un commutateur réseau (switch). Par contre, tout le reste est pris en charge, incluant la sécurité physique, l’alimentation de secours et l’accès internet.

Un serveur privé virtuel (VPS)

Le choix le plus populaire pour l’autohébergement d’applications web, en particulier les sites, est la location de serveurs dédiés ou de serveurs virtuels VPS dans un centre de données. Les VPS sont disponibles chez les hébergeurs en libre-service à partir d’environ 10$ par mois. Un serveur avec un processeur et 2 Gigaoctets de mémoire est en masse suffisant pour un site web d’entreprise ! Il y a beaucoup d’offre sur le web, et au Québec, tu pourras en trouver chez Planet Hoster, OVHCloud et WHC.

Les serveurs VPS ont généralement une très bonne bande passante. Par contre, ils ont souvent un stockage limité, ce qui n’est pas vraiment important de toute façon, parce que ça occupe peu d’espace disque, à moins d’utiliser une application spécialisée dans le stockage comme Seafile ou Nextcloud.

Si tu as un besoin d’héberger de grandes quantités de données, on va plutôt regarder vers des systèmes de NAS tel que OpenMediaVault basés sur FreeBSD.

Un serveur dédié en location

Si tu comptes faire l’autohébergement de plusieurs autres applications en plus de ton site web, tu peux aussi regarder pour des tailles de serveur plus grandes, ou regarder pour un serveur dédié. Cette option te permet d’avoir accès à toutes les ressources d’une machine physique.

La location permet de ne pas te soucier de l’entretien, de l’alimentation électrique, de la climatisation et de la sécurité physique. Tu peux trouver des serveurs dédiés bas de gamme usagés à partir de 40$ par mois , notamment chez OVHCloud, dans la gamme Eco. Mais généralement, les coûts de location d’un serveur dédié moderne débutent autour de 90$ par mois.

De mon côté, j’utilise un serveur dédié usagé, avec une vingtaine d’applications web, ainsi qu’un serveur VPS pour mon site web, qui a une meilleure bande passante.

L’infonuagique en mode Infrastructure (IaaS)

Les fournisseurs d’infonuagique tel que Google Cloud, Microsoft Azure, Amazon Web Services offrent aussi un service similaire dans leur offre de « Calcul » de type Infrastructure disponible au Québec (souvent appelé Canada East), avec des tarifs réduits pour des abonnements d’un an ou plus.

Mais ici, tu vas recevoir une facturation basée sur l’usage, à l’heure, avec souvent des mauvaises surprises. Le téléchargement et le trafic web sur ton site n’est pas inclus et est imprévisible. C’est intéressant surtout pour gérer des charges de travail importante, mais pour un site web à faible trafic, c’est « overkill » pas mal.

Quelles sont les connaissances nécessaires ?

Pour se lancer dans l’autohébergement de ses appliations web, je dirais que la principale motivation c’est d’avoir le goût d’apprendre, de faire les choses par soi-même et d’être capable de demander de l’aide. Il y a peu de services commerciaux, étant donné que c’est un peu contraire à la philosophie DIY. Je vais te partager un peu plus loin dans cet article les différents types d’offres commerciales.

C’est souvent possible d’avoir accès à de l’expertise technique sur demande pour résoudre des enjeux techniques. Tu peux aussi recourir à des firmes d’infogérance qui vont s’occuper de tout pour toi. Mais on parle ici de services qui peuvent coûter plusieurs centaines de dollars par mois. Tant qu’à faire, à ce prix là, tu as avantage à te former !

Les serveurs web fonctionnent pour la grande majorité sur le système d’exploitation Linux. C’est un système libre basé sur la philosophie UNIX où chaque application a un seul usage et est perfectionnée au niveau technique. Dans Linux, tout est configuré dans des fichiers texte, ce qui favorise la transparence et le partage de connaissances.

Par contre, ça demande plus de minutie et c’est plus facile de faire des conneries. C’est pourquoi il faut prendre son temps, lire la documentation et expérimenter.

Quels sont les éléments techniques requis pour s’autohéberger ?

Les éléments requis pour autohéberger ses applications web sont simples:

  • Un nom de domaine qu’on peut configurer nous-même au niveau des enregistrements DNS chez notre registraire (par exemple, GoDaddy, SquareSpace, Gandi, Namecheap …)
  • Un serveur physique ou virtuel Linux qu’on peut accéder depuis Internet ou à la maison.
  • Une plateforme logicielle conçue pour l’autohébergement d’applications web. Ces plateformes automatisent beaucoup de tâches répétitives.

Quelles sont les plateformes populaires pour autohéberger tes applications web?

Heureusement, tu n’as pas besoin de développer une expertise en Linux pour avoir ton propre serveur, parce qu’il existe des plateformes qui vont prendre en charge la majorité du travail en offrant une configuration sécuritaire de base.

Mon premier choix: Yunohost

Ma plateforme préférée pour l’autohébergement de mes applications web est Yunohost, développé par un collectif basé en Union européenne. Yunohost est basé sur Debian et automatise beaucoup de tâches d’installation. La communauté est très active et les mises à jour de sécurité sont rapidement disponibles. La dernière version du système, basée sur Debian 12, est sortie à l’automne 2024.

Les autres plateformes disponibles

Il est aussi possible d’utiliser les plateformes d’autohébergement suivantes pour ses applications web:

  • Sandstorm: Une des premières plateformes de type auto-hébergement avec Yuhonost.
  • Univention: Un serveur davantage axé pour la gestion d’entreprise avec des comptes utilisateur, une authentification LDAP compatible Active Directory, mais qui offre aussi des capacités intéressantes d’auto-hébergement
  • Cloudron: Une offre propriétaire avec un support commercial, similaire à Cozy Cloud (qui n’est plus disponible en mode autohébergement).
  • Umbrel: Une offre qui provient de l’univers du Web3, incluant des logiciels pour miner de la cryptomonnaie et utiliser des services sur le réseau du dark web TOR (c’est aussi possible avec Yunohost, c’est pas sorcier, mais terriblement lent !)
  • StartOS: Un système développé par l’entreprise Start9, dans la même lignée qu’Umbrel.
  • CapRover: Un système davantage axé sur le développement d’application et l’utilisation de conteneurs. Je ne conseille pas pour débuter parce que ça demande de connaître Docker entre autres. Je l’ai utilisé comme serveur de développement pendant un bout de temps avant de passer à Coolify. J’en ai parlé ici: Développement en continu libre et PaaS
  • Coolify: Une plateforme de type PaaS conçue pour rendre très simple le déploiement d’application dans des conteneurs Docker. LA plateforme se positionne comme une version livre de Netlify, Vercel et Heroku. C’est ce que j’utilise maintenant pour mes applications en conteneurs.

Quelles sont tes libertés et responsabilités en autohébergement d’applications web ?

Comme auto-hébergeur, tu as la liberté de gérer toi-même toute la couche logicielle, et selon tes choix, matérielle aussi. Tu as la responsabilité des données sur ton serveur, que ce soit au niveau de la protection des renseignements personnels, des sauvegardes et aussi d’éviter que ton serveur soit utilisé à des fins malicieuses ou criminelles.

Heureusement, les plateformes telles que Yunohost viennent limiter les risques et offrent des fonctionnalités de sauvegarde qui fonctionnent très bien, soit nativement ou en mode automatisé avec Borg. D’ailleurs, je les ai utilisées à plusieurs reprises pour déménager mes logiciels sur de nouveaux serveurs.

Choisir l’auto-hébergement est le début d’une belle aventure pour mieux apprivoiser l’informatique et être plus résilient. Par contre, c’est un apprentissage en continu qui demande des investissements en temps et de l’expérimentation. Si tu as une fibre DIY à développer, c’est un parcours très enrichissant. Débutes par un site web, puis commence à découvrir toutes les possibilités. Il y a des logiciels pour l’hébergement de fichiers, de la gestion de projets et même des réseaux sociaux décentralisés. Certains te permettent de faire partie du Fediverse, comme mon podcast Aires Communes.

Quel type de support est offert ?

Nous avons affaire à deux niveaux de logiciels: la plateforme d’autohébergement et les applications web autohébergées. Je vais les traiter séparément. Il faut retenir ici que nous sommes essentiellement dans une démarche DIY. On se sépare des grands fournisseurs de services pour aller chercher de l’autonomie, alors il faut accepter de ne pas se faire tenir par la main.

Support sur les plateformes d’autohébergement

Les plateformes libres sont entièrement développées par une communauté de bénévoles et reposent sur un réseau d’entraide mutuelle. Elles offrent un forum de discussion et la possibilité d’ouvrir des tickets sur leur forge de développement (GitHub). C’est le cas de Yunohost. Umbrel et Sandstorm. C’est possible de trouver du support commercial pour ces plateformes, mais ce n’est pas garanti !

On retrouve ensuite le modèle d’affaire libre, avec support optionnel. C’est le cas de Coolify. La licence commerciale n’apporte aucune fonctionnalité additionnelle, mais permet d’accéder à un support par courriel.

D’autres plateformes offrent à la fois une version communautaire et une version commerciale plus complète. On appelle couramment ce modèle Open Core. C’est le cas d’Univention Le support commercial est par utilisateur et par année et est très accessible. Leur clientèle cible est le milieu scolaire allemand, qui doit suivre une réglementation stricte au niveau du respect de la vie privée des élèves.

Enfin, certaines plateformes ont à la base une mission commerciale. Cloudron est disponible sous un modèle commercial à la base, mais rend son code source disponible à des fins d’audit.

Support sur les applications web

Les applications web autohébergées sont, en général, complètement indépendants des plateformes d’autohébergement. Il faut différencier l’emballage du produit ! Certains logiciels offrent une version commerciale, des licences ou du support commercial, à travers de multiples modèles d’affaires. Ici, il faut faire un travail de recherche et voir quelles offres sont disponibles pour chacun des logiciels.

Par exemple, GitLab et Mattermost ont une offre commerciale complète et permettent des installations avec des milliers d’utilisateurs. WordPress peut compter sur une énorme communauté et sa longévité comme gage de confiance.

Beaucoup de ces logiciels sont utilisés par des pigistes, qui offrent aussi parfois des services de consultation. Pour ma part, je peux offrir de l’accompagnement plus avancé sur Mattermost et Nextcloud, par exemple.

Ça te tente ?

90% des logiciels chez Je valide ça sont auto-hébergés. J’utilise Yunohost depuis de nombreuses années, et j’ai développé une très bonne expertise sur cette plateforme. Ça me fera plaisir de t’accompagner dans cette aventure. On peut débuter ensemble avec une consultation Express pour choisir les options d’autohébergement qui te conviennent le mieux !

Consultation Express 🧠

La consultation express, c’est une heure où je me consacre entièrement à résoudre tes problèmes informatiques avec toi.

Je peux t’aider avec des enjeux de gestion de données, de cybersécurité, de courriels et aussi orienter tes choix technologiques.