Oyez oyez, me voici, humble ménestrel. Si j'ai l'outrecuidance de me présenter devant vous aujourd'hui mon bon seigneur, c'est pour vous faire découvrir le monde de l'auto-hébergement de services open-source, aussi appelé self-hosting dans la langue de Shakespeare. Ouvrez grand vos oreilles votre seigneurie, car vos données personnelles et votre souveraineté numérique sont en danger! Mais n'ayez crainte, je suis là pour vous guider vers le chemin de la gloire éternelle.
joie

La ponction discrète

Malheur et désolation Messire! Nombreux sont les services et applications utilisées quotidiennement par moult de nos sujets: moteurs de recherche, réseaux sociaux, outils de travail, diantre on ne les compte plus. Malheureusement, ces services sont la plupart du temps proposés par des acteurs privés du maléfique royaume des GAFAM. De plus Messire, les usagers pensent que ces services sont gratuits. Que nenni! Cette gratuité n'existe que dans leurs esprits embrumés, car à chaque clic, chaque message posté, chaque formulaire rempli, leurs données sont collectées et stockées dans les coffres du royaume des GAFAM, puis exploitées et vendues à leur insu! A cela nous disons sus! Sus à la ponction discrète et indésirée!
pillage

L'auto-hébergement salvateur

Point d'inquiétude mon bon seigneur, j'ai pour vous la solution. J'ai ouï-dire qu’outre votre statut de Lord émérite, vous êtes également un artisan développeur aux talents aiguisés. Vous avez donc toutes les facultés nécessaires pour héberger vous-même ces services Milord. Il existe moult outils open-source de première qualité qui n'attendent que d’être déployés par vos soins! N'ayez crainte, rien d'insurmontable, quelques deniers et une once de compétence en Linux suffirons à vous lancer dans cette aventure.
En hébergeant vous-même ces services Monseigneur, vos sujettes, sujets et votre sérénissime personne retrouverez le contrôle sur vos données. Vous aurez également une visibilité sur le code de ces outils et les technologies utilisées, ainsi point de malice. Cela vous permettra également de développer vos connaissances techniques dans l'administration de serveur et le déploiement d'application, qui j'en suis sûr sont déjà immensément respectables Messire. En sus, vous participerez à l'activité Open-Source, et pourrez faire affaire avec ces guildes de développeurs indépendants. Monseigneur, héberger vos services et applications vous-même, c'est l'assurance de redorer le blason de ce domaine!
Cependant je me dois de vous prévenir: cela vous demandera d'y consacrer du temps, et d'y verser quelques écus : rien n'est gratuit en ce bas monde Milord. De plus, il faudra apporter une grande attention à la sécurité de ces installations. Fichtre, les coffres du royaume des GAFAM sont certes bien gardés, nous devrons tâcher d'en faire de même afin de nous protéger des attaques extérieures menées par autres barbares et bandits de grands chemins!
promesses

Choisir son destrier

Tout d'abord votre sérénissime grandeur, il vous faudra choisir votre destrier numérique: un serveur. De nombreuses guildes proposent un grand choix de serveur, du plus petit VPS au plus puissant des serveurs dédiés. Votre humble serviteur ne saurait que trop vous conseiller d'opter pour une guilde française comme OVH ou Kimsufi (la gamme low-cost d'OVH) et de choisir un datacenter se trouvant sur notre sol national. Ainsi il sera un peu mieux protégé par le droit européen qui propose des garanties supérieures à celles des autres empires en ce qui concerne la protection des données personnelles et les actions de surveillance.
Il vous faudra par la suite décider quel serveur choisir. Cela dépendra de vos besoins Monseigneur, voici quelques indications pour vous aider dans votre choix. Il existe deux grands types de serveurs proposés au grand public: les VPS et les serveurs dédiés. Un VPS (pour Virtual Private Server) est un serveur virtuel hébergé sur un serveur physique puissant. Ce dernier héberge d'ailleurs plusieurs VPS en leur partageant ses ressources. Un serveur dédié est une machine hébergée dans un datacenter qui est entièrement votre. Les principales différences sont les performances, la sécurité et le prix. Un serveur dédié aura de meilleures performances car la machine physique est entièrement dédiée à votre utilisation contrairement à un VPS qui utilisera les ressources mutualisées d'une machine hébergeant de nombreux autres VPS. De la même manière, la sécurité sera supérieure sur un serveur dédié car votre système sera physiquement isolé, où un VPS est présent sur la même machine à coté de nombreux autres. Certes le VPS sera virtuellement isolé au niveau logiciel, mais les risques sont logiquement supérieurs. Enfin, les VPS sont moins chers, on peut en trouver à partir de quelques euros par mois quand les serveurs dédiés coûtent minimum quelques dizaines d'euros par mois.
Pour faire simple: si vos besoins en performance sont limités et que les données hébergées sur le serveur ne sont pas particulièrement sensibles, un VPS vous conviendra et ce à un prix abordable, lorsqu'un serveur dédié conviendra mieux pour héberger de multiples services consommant beaucoup de ressources ou des données nécessitant une sécurité accrue, malgré un prix plus élevé.
Pour héberger vos applications et vos données, un service de noms de domaine vous sera très utile. Les prestataires de serveur proposent presque tous un service de noms de domaine associé que vous pourrez utiliser, mais libre à vous d'en choisir un alternatif. Fort heureusement les noms de domaine ne sont pas très chers (à partir de quelques euros par an).
Comme vous vous en doutez certainement Monseigneur, un serveur ne vous sera pas très utile sans un système d'exploitation. Là encore, vous aurez le choix entre de nombreux OS à installer sur votre VPS ou serveur dédié. Je vous conseille d'utiliser une distribution Linux, qui est un OS open-source très populaire, et tout particulièrement Debian, qui est très stable, sécurisée et facile à maintenir, malgré je le concède une base de paquets parfois un peu datée.
chez_soi

Des fondations solides

Une fois votre nouveau serveur acquis Messire, la première étape sera de le configurer correctement afin qu'il soit sécurisé et à jour. Commençons d'abord par la configuration SSH. En effet, il est impensable de vous connecter à votre serveur à l'aide d'un simple mot de passe. C'est une pratique bien trop peu sécurisée, et il vous faudra préférer un accès par clé SSH. Imaginez que l'accès à votre sublime château soit contrôlé sur un simple mot de passe: il suffirait que le premier gueux venu, lors d'une soirée un peu trop arrosée à la taverne du bourg, crie le mot de passe sur tous les toits, et votre château serait envahit d'intrus qui viendraient salir vos tapisseries et voler la vaisselle familiale, c'est intolérable! Voyez la clé SSH comme un contrôle plus strict des accès, semblable à un parchemin orné de votre sceau, qui est par conséquent bien plus difficilement falsifiable. Aussi, ne vous connectez pas à votre serveur avec l'utilisateur racine (ou root) Monseigneur, utilisez un compte personnel avec un laissez-passer sudo.
Dans un deuxième temps votre grandeur, il vous sera nécessaire d'installer un pare-feu sur votre système, afin de vous protéger contre les hordes de barbares et de robots qui viendront tenter de pénétrer et d’incendier le domaine. Un outil comme UFW vous permettra de configurer l'ouverture de vos ports facilement afin de ne laisser passer que les flux désirés. La stratégie conseillée est de fermer toutes les ports entrants et d'ouvrir manuellement ceux utilisés par vos services et applications.
En outre Messire, un système sain est un système à jour: je ne saurais que trop vous conseiller de mettre à jour vos paquets et services régulièrement. Pensez également à sauvegarder vos données, l'histoire nous a montré que même les plus majestueux des châteaux sont toujours vulnérables à d'éventuelles catastrophes, naturelles ou humaines. Une sauvegarde régulière vers un dispositif de stockage vous épargnera la douleur de perdre toutes vos données si un malheur venait à survenir.
Enfin, Monseigneur, afin d’éviter d'attirer les bandits de grand chemin, la discrétion est encore la meilleure des armes: ne faites pas comme tout le monde, changez par exemple toujours les ports par défaut utilisés par vos services, ne diffusez pas d'information sur votre serveur n’importe où ou à n'importe qui, et surveillez régulièrement les comptes utilisateurs actifs et les permissions afin de ne pas laisser d'accès indésirés à votre serveur.
bruteforce

Déployer ses troupes

Une fois votre serveur opérationnel avec son système d'exploitation installé et configuré et les outils de sécurité mis en place, il sera temps de déployer des services sur votre machine. Pour cela, la plupart des projets proposent généralement deux méthodes de déploiement: manuel ou avec Docker (il peut en exister d'autres, que je ne détaillerai pas ici mon cher Lord).
Il vous sera bien sûr possible de déployer les services vous-même, de A à Z. Ce n'est la plupart du temps pas très compliqué, mais cela peut le devenir si le service est complexe à installer ou qu'il comporte de nombreuses dépendances: autres applications, services de base de données, etc. Le contrôle que vous aurez sur vos services sera total et les possibilités de personnalisation maximisées. Cela vous prendra certainement du temps, mais vous apprendrez bien plus qu'en laissant un outil tiers tout faire à votre place.
Il vous sera également possible de déployer vos services avec Docker, qui propose un déploiement facile et rapide. En quelques commandes, votre service et ses dépendances seront installés dans un conteneur et prêts à être utilisés. Cependant, cela rajoute un intermédiaire entre vous et le service, et vous n'aurez pas la main sur beaucoup de paramètres. En somme, il vous faudra faire confiance à Docker. Certes vous gagnerez du temps, mais vos installations seront moins sécurisées, moins performantes, et plus difficile à investiguer si des problèmes surviennent.
docker

Sélection de services aux sources ouvertes

Votre seigneurie, j'ai sélectionné pour vous quelques services open source de grande qualité qui vous intéresseront certainement. Je les ai tous essayés moi-même, soyez sûr que vous ne serez pas déçu.

Fail2ban et Crowdsec

Ces deux services ont un but commun: tels des gardes en armure ils contrôleront les accès aux portes du château. Si le visiteur montre patte blanche, il sera bien sûr autorisé à vous visiter, mais tout comportement suspect (tentatives d'accès infructueuses, utilisation de la force-brute, etc.) sera synonyme de bannissement. En matière de sécurité, il ne faut point tergiverser Monseigneur.
Fail2ban est une solution très populaire, robuste et simple à utiliser. La configuration se fait dans un unique fichier, puis il suffit de laisser le service œuvrer par lui-même.
Crowdsec est quand à lui un outil plus récent et plus complexe. Encore assez jeune, ce projet reprend le même principe que son homologue Fail2ban, mais en ajoutant une couche supplémentaire collaborative. En effet, de manière régulière, les gardes du château rédigeront des rapports qui seront communiqués aux châteaux voisins, et eux aussi nous enverront leurs rapports de garde. Ainsi, tout cela mis en commun permettra à tous les châteaux du pays utilisant Crowdsec de partager des informations sur les bandits et barbares rôdant dans les environs, afin de mieux se protéger. C'est un principe très intéressant, mais qui vous l'avez compris est basé sur une gestion centralisée des données de contrôle, et donc sensibles à l’empoisonnement et autres perfides malices. Notez que Crowdsec propose également un tableau de bord (généré par l’outil Metabase) pour visualiser facilement l'activité des accès sur le serveur.
crowdsec

Netdata

Vous désirerez sans doute avoir des informations sur les performances de votre serveur cher Lord, telles que l'utilisation des composants matériels (CPU, mémoire RAM, etc.) et la charge système. Pour cela, je vous conseille d'utiliser Netdata, un projet populaire et robuste qui analysera en temps réel l'activité de votre serveur et restituera de nombreuses données sur un tableau de bord des plus sophistiqués. Vous pourrez également configurer des alertes pour vous avertir en cas de sur-utilisation des ressources ou de l'interruption de quelconque service.
netdata

Mumble et Teamspeak

Les autres seigneurs du pays font parfois preuve de paresse et ne prennent même pas la peine d'enfourcher un destrier pour venir vous visiter Monseigneur. Pour pallier à cette infamie, il vous suffira d'installer un service de communication vocale et de les y inviter. Je vous propose Mumble ou Teamspeak, qui sont deux services très similaires. Vous pourrez créer des salons, y inviter des utilisateurs et leur donner des droits spécifiques, pour finalement avoir des conversations vocales passionnantes sur l'avenir de l’empire. Teamspeak est très populaire et stable, malgré le fait qu'il ne soit pas open-source, contrairement à Mumble dont le code est libre d'accès, mais qui est moins stable et disposant d'une qualité audio inférieure.
teamspeak

Gitlab et Gitea

Ce sont deux outils permettant d'héberger des projets de code que je vous propose ici. Gitlab est un outil populaire et très complet mettant à disposition de nombreuses fonctionnalités comme bien sûr le stockage et la gestion de projets Git, mais aussi le déploiement continu, l'intégration continue, les snippets, le monitoring, la double authentification, et j'en passe. Les possibilités de Gitlab sont si grandes que l'outil en devient presque trop massif: on est parfois un peu perdu et l'impact sur les performances du système est non négligeable. Les mises à jour régulières sont nécessaires, prennent du temps et sont parfois un peu chaotiques quand le saut de version est trop grand.
Gitea est à l'inverse beaucoup plus simpliste et léger comme une plume. Il se concentre sur la fonctionnalité de base qui est l’hébergement des projets de code et la gestion des issues, et il le fait bien. Cependant, pour tout autre besoin supplémentaire (CI, CD, déploiement, etc.), vous devrez faire appel à des services alternatifs. Très facile à installer et à maintenir, Gitea est également très gentil avec les ressources de votre serveur et saura se faire discret. Si vous avez une utilisation basique de ce genre d'outils ou que les capacités de votre serveur sont limitées, je ne saurait que trop vous conseiller d'opter pour Gitea.
gitea

Nextcloud

Nextcloud est un service de stockage de fichier similaire à Google Drive, la ponction discrète de données personnelles en moins. Populaire et très modulable, il vous permettra de gérer facilement des utilisateurs et rôles, d'effectuer des partages de fichiers privés ou publiques, ou encore d'éditer des documents de manière collaborative. De nombreux modules additionnels sont disponibles pour augmenter les possibilités de cet outil. Attention cependant car il est assez gourmand en ressources, et a tendance à devenir difficile à maintenir quand de nombreux modules ont été ajoutés.
nextcloud

Wiki.js

Voici un outil que j'affectionne tout particulièrement: comme son nom l'indique, Wiki.js est un service de stockage de connaissances, un wiki. Facilement installable, vous pourrez y rédiger des articles en Markdown, les organiser, et gérer les accès avec des utilisateurs et rôles. Les visiteurs pourront participer à la rédaction et poster des commentaires. Wiki.js propose beaucoup d'autres fonctionnalités intéressantes comme la synchronisation sur un projet Git, l'authentification par des services tiers (Github, Gitlab, etc.), des statistiques d'utilisation, ou encore l'ajout de modules additionnels.
wikijs

Focalboard

Un grand seigneur comme vous ne sait parfois plus où donner de la tête tant le nombre de tâches à accomplir dans une journée est grand. Pour vous organiser, Focalboard pourra peut-être vous aider: c'est un outil similaire à Trello, un gestionnaire de tâches, ou todo-list comme disent nos voisins anglais. Encore très jeune, ce projet est développé par l'équipe de Mattermost (une alternative à Slack), et est déjà très prometteur. Facile à installer et assez simpliste, il vous permettra de créer des tableaux sur lesquels vous organiserez les tâches par statut. Les fonctionnalités de Focalboard sont pour l'instant assez limitées par rapport à ses concurrents mais l'utilisation est fluide et plaisante, et l'outil est amené à se développer.
focalboard

Owncast

Face au succès de Twitch et autres plateformes de diffusion en direct, vous aurez peut-être vous aussi envie d'héberger votre propre chaîne mon cher Lord. Pour cela, nul besoin de vendre votre âme à Amazon ou Google. Simple à déployer et à configurer, Owncast vous permettra de diffuser du contenu vidéo en direct moyennant une connexion internet de qualité et des ressources serveur conséquentes nécessaires pour traiter les flux vidéo et audio. Tout comme ses concurrents, il dispose d'un système de discussion textuel sur lequel vous pourrez communiquer avec vos sujettes et sujets. Encore jeune, ce projet est dynamique et évolue rapidement, apportant régulièrement de nouvelles fonctionnalités.
owncast

LibreTranslate

Voici un service de traduction similaire à Google Translate ou DeepL, mais totalement open-source. Bien sûr, LibreTranslate n'est pas aussi performant que ses concurrents privés et la liste des langues disponibles n'est pas très grande, mais cela suffit la plupart du temps pour des traductions rapides et simples. Il dispose également d'une API utilisable par des services tiers.
libretranslate

Homer

Homer est une simple page d'accueil pour votre serveur, un petit tableau de bord sur lequel vous pourrez organiser des liens vers les différents services hébergés sur votre machine afin d'y accéder plus rapidement. Simple et efficace.
homer

Conclusion

Il existe de nombreux autres outils et services open-source disponibles qui n'attendent qu'à être déployés sur votre serveur et testés par vos soins Messire. Il est possible se se passer complètement des GAFAM et autres acteurs malfaisants de l'internet moyennant du temps et un peu d'argent. Ainsi, vous retrouverez la souveraineté qui vous est due sur vos données personnelles. De plus, vous apprendrez beaucoup sur l'utilisation et la maintenance de systèmes Linux et le déploiement d'applications. Vous pourrez également en faire profiter votre famille et vos amis, qui n'ont pas vos compétences et votre habileté pour mettre en place tous ces services. Le prestige de votre lignée n’en sera que sublimé.
Vous pourrez également si le cœur vous en dit participer à l'activité de guildes open-source, en utilisant leurs outils et en leur rapportant d'éventuelles anomalies ou des idées d'amélioration. Qui sait, vous pourrez peut-être même participer au développement de ces projets.
Si tout cela vous a intéressé et que vous souhaitez en apprendre plus, je vous conseille d’aller visiter les Reddits open-source et self-hosted ou encore l'Awesome-list self-hosted.
conclusion
fin