L'auto-hébergement c'est maintenant
Ça pourrait faire un beau slogan de campagne.
Bref, ma fan base commence à me réclamer des articles sur les avancées que j’ai pu faire dans mon expérience d’auto-hébergement. Pour résumer les épisodes précédents, je me suis mis en tête de commencer à héberger des services, agrégateur de flux rss et j’ai commencé à m’exercer sur un Raspberry, l’expérience m’a plu et je suis donc passé à une machine plus puissante et efficace depuis 10 jours.
Et donc ?
Bah, ce n’est pas si facile. Disons que c’est faisable mais il faut passer énormément de temps et que l’on a plein d’obstacles qu’il faut apprendre à franchir.
Pour faire bref, il y a dix jours, j’avais Tiny Tiny RSS sur mon Pi et j’avais un compte GnuSocial chez Cyrille (instance supprimée depuis) ainsi qu’un compte Wallabag chez Framasoft. Maintenant, j’ai tout pareil mais sur mon server@home. Autant dire rien de plus pour l’instant, si ce n’est que j’héberge et contrôle toutes mes données. Par contre, j’ai passé allégrement au moins 40 heures pour faire tout ça. Et pour l’instant je digère cet apprentissage.
Alors pas de tuto clés en main, ou de "voici comment il faut faire", mais plutôt un ensemble de barrières que j’ai rencontrées et comment je suis parvenu à passer par dessus. Une sorte de rapport d’étonnement que l’on peut faire lorsqu’on arrive dans un nouvel environnement et que ce qui paraît évident à tout le monde ne nous va pas du tout de soi.
Pour commencer, il faut dire que je n’ai pas choisi la facilité. J’ai opté pour un serveur sans écran (disons que je ne l’ai utilisé que pour l’installation de départ mais je n’ai pas prévu de changer les branchements de mon PC tous les deux jours). Il est donc accessible uniquement par ssh en ligne de commande, je n’ai pas installé d’interface graphique. Et plutôt que d’utiliser quelque chose comme Yunohost qui automatise l’installation des services et fournit des tutos pour que cela fonctionne, j’installe moi-même chaque application. Tout ça est évidemment dans un but d’apprentissage personnel et que ceux qui préfèrent des solutions plus faciles en ont bien le droit et y arriveront probablement plus vite.
Autant dire que, en partant de :
- oui, installer une distro ça ne me fait pas peur,
- non, la ligne de commande ce n’est pas si difficile,
- et même pourquoi pas compiler de temps en temps si nécessaire ;
On passe à : OK mon grand, maintenant que tu dis que tu sais nager, et bien vas-y !
Et si un terminal dans une session graphique, c’est le petit bain et que le Raspberry m’avait permis de nager tranquille dans le grand bain, un serveur, c’est plutôt un lac et si on installe des sites publics, c’est même la mer avec les vagues qui nous arrivent dessus.
Et je dois vous avouer que j’ai quand même pas mal bu la tasse ces dix derniers jours. L’écart entre la gestion d’un poste et d’un serveur est quand même assez énorme et je comprends pourquoi tout le monde ne s’y met pas (et que j’ai esquivé la possibilité jusque là). Mais cela reste cependant tout à fait accessible si on y met de la volonté et de la persévérance ; c’est une expérience vraiment intéressante. La première fois qu’un site tourne et qu’on se dit que tout est dans la boîte devant nous, c’est aussi jubilatoire que la première distro que l’on a réussi à installer.
Bon on commence par quoi ?
Je crois que je vais faire une série de billets pour détailler chaque chose que j’ai faite et qui permettra de revenir s’y référer ou trouver des astuces sur chaque sujet. Mais encore une fois, il ne s’agira pas de tuto car globalement, je me réfère à la doc officielle et quand je bute ou me trouve confronté à un problème, j’essaie de trouver des indices chez ceux qui ont eu les mêmes ennuis à l’aide d’un moteur de recherche.
Une remarque quand même, on se plaint parfois du manque de documentation mais le problème c’est que pour le même service à installer, il existe méthodes différentes parce que le projet a évolué et que par exemple si à un moment il fallait installer la base de donnée à la main, le script d’installation le fait maintenant tout seul. Autre exemple, quand on cherche de la documentation sur la sécurisation de son serveur, on va trouver des commandes qui étaient valable pour les versions précédentes des distributions mais plus maintenant et si quelqu’un sous Arch nous donne une commande à exécuter, et bien sous Debian stable, elle n’est pas encore reconnue.
Et puis, il y a SystemD qui est passé par là et si, en tant qu’utilisateur, on voyait passer ça de loin en se demandant pourquoi certains s’écharpent alors que, à part un démarrage plus rapide et quelques bricoles à droite à gauche, c’est pareil. Dans la gestion d’un serveur on comprend mieux ce que ça implique comme différences, surtout des habitudes à changer en fait. Comme je n’en avais pas beaucoup prises dans le domaine et que je ne suis ni pour ni contre SystemD, ça ne m’a finalement pas gếné, en plus Debian supporte encore les anciennes commandes. Mais tout ça pour dire que pas mal de documentations sont devenues obsolètes et qu’il vaut mieux se référer au départ à la doc officielle de la distribution choisie et de chaque application que l’on veut installer.
D’ailleurs, souvent tout y est, mais c’est un peu comme si on avait à faire la cuisine et que l’on nous donne la recette, il nous faut déjà nous assurer d’avoir tous les ingrédients. S’il nous en manque, il faut aller faire quelques courses chez apt install. Puis lorsque l’on nous dit de faire une béchamel, et bien il faut déjà aller voir comment on fait si on ne sait pas. Ensuite, s’il faut faire cuire des légumes au micro-onde mais qu’on préfère le faire à la cocotte parce qu’on fait tout à la cocotte et que l’on ne veut pas acheter un micro-onde exprès (l’inverse étant possible aussi, c’est une analogie pour parler par exemple du type de serveur ou de base de données que l’on choisit) et bien il faut adapter tous les paramètres pour avoir la même cuisson.
Une autre difficulté, c’est que l’on a des fichiers de configuration en exemple et dedans il faut changer des choses pour qu’ils soient adaptés à notre cas, sauf qu’il y a des paramètres dont on a parfois pas la moindre idée et il y a aussi des lignes qu’on pense devoir changer mais qu’en fait non. Ah oui, et il faut quand même un minimum comprendre l’anglais, parce que les docs et les fichiers de conf, c’est quand même souvent dans la langue de Shakespeare.
Bref, il y a de quoi s’amuser comme un petit fou et on va commencer par l’installation du serveur (le plus facile).