Ç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).
1 De 22Decembre -
Tu as en effet assez bien résumé le truc. C'est bien ca.
Il y a une chose que tu as oublié (ou sous-entendu) : l'OS lui-même. J'utilise OpenBSD (c'est super pour l'autohebergement de services simples, puisque le serveur a tout de base out-of-the-box). La plupart des commandes Linux restent disponibles ou ont un équivalent. Et bien quand même, y a des fois, on s'arrache les cheveux.
Si tu passe en auto-heberg', j'attends avec impatience le passage de ce blog, ou d'un successeur, sur la machine @home. (NB : je veux bien aider, et pas que sur la partie web. Tu peux aussi me demander de l'aide pour un dns ou du courriel).
2 De Neros -
Bienvenue au club !
Tu vas passer beaucoup beaucoup d'heures à te casser les dents, tu verras toujours que la solution est en fait toute bête (/var/log/* est ton ami), en apprenant tu finiras par écrémer et garder que l'essentiel et quand un jour tu devras tout réinstaller, tu iras super vite :-)
T'as en tout cas choisi la bonne méthode, celle où tu fais tout toi même car quand il y aura un soucis, tu sauras quoi faire.
'Pis, systemd, s'trop bien. Moi je sais pas, mais faire un script init, c'est du chinois pour moi, alors qu'un script systemd, un enfant pourrait le faire. Dans ce monde, tu sens qu'il y a une guerre de fond entre les conservateurs et ceux qui veulent faciliter.
3 De SebastienP -
Bonsoir,
je viens de finir la mise en place de mon propre serveur, et je me reconnais à 100% dans ce descriptif des obstacles rencontrés et des joies éprouvées lors des réussites :-)
J'ai bien aimé la comparaison entre le premier service qui tourne et la première distro installée, c'est exactement ça.
Perso, je m'étais entraîné sur une VM sous Debian, et puis j'ai récupéré une tour un peu ancienne, un écran, un clavier et une souris d'occasion. Bon j'ai quand même tout géré en SSH mais une fois de temps en temps, allumer l'écran du serveur et voir un message d'erreur ça aide.
J'ai pas mal galéré avec les fichiers de config, notamment ceux d'Apache. Celui d'Apache lui-même et celui du site en particulier, sans compter celui du site verison SSL puisque j'ai tout passé en HTTPS par LetsEncrypt (et à mon grand étonnement j'ai réussi o_O)
Je suis sous xUbuntu 16.04 / Apache / MySQL / PHP7
J'ai abandonné l'install de Debian, impossible sur du vieux matériel apparemment.
J'ai testé OwnCloud pendant 1 semaine avant d'abandoner devant la lenteur de l'outil et certains manques.
Alors perso, si ça peut aider, avec les docs officielles et quelques recherches pas méchantes, j'ai réussi à installer:
- FreshRSS
- Rainloop (un webmail, pas de serveur mail encore, trop dur pour moi là)
- Wallabag v2
- Pydio (Gestion de documents, excellentissime)
- Jirafeau (sorte de LUFI pour y lâcher un fichier et transmettre un lien de téléchargement)
- Baikal (serveur CalDAV/CardDAV)
- PluXML (blog sans aucune install, on dépose et roule !)
- Keeweb (gestionnaire de mots de passe compatible Keepass)
- Laverna (Prise de notes)
- Linux Dash (monitoring très basique)
- Lychee (galerie de photos)
- phpMyAdmin (gestion de base MySQL)
- phpLiteAdmin (gestion de base SQLite, oui parce que ce serait trop simple d'avoir le même type de base pour tout)
- Shaarli (gestion de favoris)
- YoURLs (Raccourcisseur d'URL)
Certains de ces services ne nécessitent pas grand chose, à part déposer un dossier ou cloner un dépôt GIT dans le dossier qui va bien (/var/www/html/ sous Ubuntu) et ça roule tout seul.
Après avoir décidé d'installer appli par appli, j'ai dû y passer une bonne semaine. J'ai beaucoup appris, beaucoup soupiré devant des messages imbitables. Mais ça tourne et ça répond bien même, depuis l'autre bout du monde (testé en vrai).
Bonne continuation, je suis dispo si besoin d'aide pour la suite de vos services à installer.
4 De alterlibriste -
Merci pour vos retours, je vois qu'on est tous passés par les mêmes galères.
Mais ce billet n'était qu'un préambule, je détaillerai mes embûches dans les suivants.
Pour le moment, pas question d'héberger mes mails, ni mon blog. Si le serveur est down, ce serait problématique.
Moi aussi, je passe tout en https.
Merci pour vos propositions d'aide, j'ai déjà quelques personnes qui me donnent des conseils, si je coince vraiment sur quelque chose, je vous ferai signe mais même si on passe beaucoup de temps, trouver le problème par soi-même permet d'apprendre, effectivement tout est dans les logs si on cherche bien.
5 De LinuxMario -
Et un de plus dans le bateau :)
Comme tout le monde le dit plus haut, on passe des heures à tout configurer et on galère pas mal (Que ferait-on sans les logs, je vous le demande...). Mais, au moins, tu en tires une grande satisfaction personnelle et tu peux te dire que c'est toi qui fait tourner tout ça.
Pour la documentation de base, tu peux faire un petit tour du côté de Digital Ocean (ils t'expliquent comment mettre en place du MySQL ou du PostgreSQL avec un niveau de sécurité plutôt bon) si tu utilises du Debian / Ubuntu. Mais, rien ne vaut la doc' officielle de l'appli que tu installes :)
Sinon, tu peux aussi trouver quelques conseils dans des articles postés sur le Journal du Hacker ou sur le Planet-libre (pas vérifié pour ce dernier) mais je ne t'apprends sûrement rien ;)
En tout cas, j'ai hâte de voir la suite de tes recherches et expérimentations en matière d'auto-hébergement ;)
6 De thuban -
Salut!
Bravo de franchir le pas! Oui, il y a quelques galères au début, mais ce n'est rien comparé à l'installation d'un windows avec les drivers qui vont bien.
Je rajoute une couche à propos d'OpenBSD. J'ai trouvé le système bien pensé et didactique, nettement plus qu'un linux. Au final, j'ai pu y réinstaller tout mon serveur (mail, http, torrent, ...) sans soucis et bien plus rapidement que je ne le pensais.
Bon courage, et surtout, amuse-toi bien :)
7 De Croaaar -
Bienvenue au club des auto-hébergés anonymes (ou pas) :)
Un point à ne pas négliger et je dirai même prioritaire: la "sécurité". Cela passe par l'étude d'iptables et d'IDS/IPS, avec par exemple le vénérable fail2ban (parfois suffisant pour l'auto-hébergement), effectivement, les logs sont nos meilleurs alliés.
Il faut donc savoir aussi que plus tu voudras installer des services ouverts à internet, plus tu présentes d'angles d'attaque, et à l'image de l'emmental, il est reconnu que plus il y a de logiciels qui tournent et plus il y a de bugs qui peuvent surgir. Cela demandera donc plus de temps, d'énergie et de stress à gérer.... sans compter les mise à jour, fork, morts/nouveautés incessantes que connait le monde libre/open source pour certains logiciels. Bref, on n'a pas fini; et c'est pour cela que je recommande, au départ surtout, une certaine frugalité pour privilégier son attention et son temps correctement.
Oui, un crédo utile, c'est kiss. Dans mon cas, moins de trucs bling-bling, gourmands ou non, et qui me serviront après l'effet 'on sait jamais, ça peut servir' tous les 30 février, j'évite autant que possible l'utilisation d'interface d'administration, de base de données (j'utilise sqlite pour open2300, et il paraît que baikal va y passer, ièch !), l'accès par ssh est très très restreint depuis l'extérieur, je touche le moins possible aux [fichiers de] configurations. En gros, il faut que ça se fasse aussi un peu oublier pour en profiter pleinement.
Bon courage et tient bon.
8 De bobricard -
OpenBSD pour nous les hommes ;)
9 De olivier -
@bobricard, Plutôt FreeBSD ou à la rigueur NetBSD.