Nouveaux chapitres

TeDomum est une association loi 1901 depuis 2014, mais nous bidouillons bien avant cela, et certains de nos services hébergent des données vieilles de 2007 ou 2008. Par curiosité, comme nous étions certains que c'était le nôtre et pas la photo privée d'un·e utilisateur·trice peu consentant·e, nous avons déterré le premier fichier déposé sur notre service d'hébergement d'images, à l'époque accessible à une toute autre adresse (âmes sensibles s'abstenir).

Piano

En creusant dans nos propres archives, nous avons aussi déniché quelques exemples fleuris, notre site Web de 2014 sous Dokuwiki, l'installation d'un serveur ou encore l'étude des températures de disque dur à la même époque ; la gestion de nos configurations Salt ou encore l'administration de notre serveur mail jusqu'en 2015. Autant de souvenirs qui n'appellent qu'une brève rétrospective jamais franchement écrite, et qui résume notre petit parcours de CHATONS.

Oui, ce billet est outrageusement tourné vers le passé pour un début janvier, mais nous promettons depuis trop longtemps d'écrire un bout de notre histoire pour ne pas profiter aujourd'hui de l'occasion.

Avant même TeDomum

Aux origines étaient NSM (sombre cadriciel pour du développement PHP) et l'application principale (la seule ?) qui l'employait : Dreamseed. Ce site Web communautaire cherchait de l'hébergement bon marché, jusqu'alors abrité chez Infomaniak mais sans le sou pour aller bien plus loin. Il y a juste 15 ans – 2006 –, le décor est planté.

C'est ainsi que Dreamhost et Bluehost se sont montrés accueillants. Les deux géants de l'époque en hébergement Web mutualisé proposaient des interfaces d'administration suffisamment spartiates pour que les bricoleurs y fraient un chemin pas toujours licite. Les serveurs étaient accessibles en SSH pour y déposer et gérer directement les applications Web, offrant tout loisir d'y installer des bases de données alternatives et autres démons ne requerrant que des ports non privilégiés. Les performances n'étaient pas au rendez-vous, mais c'est ainsi pour quelques euros par mois que débutait l'hébergement de bases MySQL agrémentant les applications et d'un bouncer IRC communautaire, qui devait être resuscité chaque fois que l'hébergeur procédait à un redémarrage impromptu.

Rapidement la « solution » a montré ses limites. Les premiers hébergeurs IaaS bon marché faisaient leur apparition, dans les offres de OVH ou même de Digicube. Egalement, le débit des lignes ADSL devenait franchement compatible avec l'auto-hébergement. Les quelques services pirates ont donc rapidement migré, en doublant les approches : le cloud pour ce qui consommait de la bande passante, le salon pour le reste.

Les serveurs se sont ainsi enchaînés, il s'appelaient dancer, cupid, dash, rudolph, les plus véloces ont pris les noms de comet ou encore vixen (on laisse deviner la convention de nommage en exercice). Il s'agissait d'un côté de tirer le maximum de quelques plug computers (SheevaPlug et Ionics Nimbus pour les initiés) déposés derrière un modem-routeur, de l'autre d'industrialiser des déploiements sur une ou deux machines au meilleur marché des hébergeurs discount.

Photo non contractuelle de cupid après de nombreuses années de service.

Un SheevaPlug connecté à un modem

Les technologies aussi ont été égrainées. D'abord pour héberger principalement du Web, Apache et PHP ont fait l'office. Sans attendre, les premiers besoins d'isolation plus bas niveau sont apparus. Deux ans à déployer des noyaux patchés vserver, puis la montée en performance de OpenVZ et l'avènement de Proxmox ont largement couvert les besoins en datacenter tandis que LXC, recompilé et ajusté pour ARM faisait chauffer les cycles à la maison. CFEngine a remplacé le bricolage, Puppet a remplacé CFEngine ; SVN a laissé place à Fossil SCM, puis à Mercurial. Finalement, l'ensemble était assez stable pour accueillir bon nombre de services.

Le bouncer IRC a poursuivi son chemin, accompagné rapidement par l'hébergement d'images dès 2007. Ils étaient rejoints en 2008 par de l'hébergement Web mutualisé, de l'hébergemet mails à façon et un serveur XMPP multi-domaines. Fin 2008, l'offre s'est professionnalisée et est devenue payante pour les utilisateurs infogérés ; plusieurs dizaines de sites Web ont embarqué et facilité le financement. En 2009, la folie Minecraft s'en est emparée et une offre d'hébergement cubique a vu le jour, occupant la majorité des ressources jusqu'alors sous-employées. Enfin, des VPS étaient en location à compter de 2010 pour combler les serveurs et rentabiliser l'ensemble.

Les expériences ont continué et les services brûlé du CPU jusqu'en 2012. La charge devenant insoutenable pour un administrateur unique, les offres professionnelles ont migré vers d'autres fournisseurs et les services communautaires regroupés sur les machines restantes, didon et sauron. TeDomum était né et les premiers contributeurs bénévoles l'ont rejoint pour communiquer, modérer, administrer les serveurs.

Du bricolage aux CHATONS

L'année 2012 fut riche en découvertes, humaines avant tout. Plusieurs ont embarqué et l'équipe active de l'époque – Angedesténèbres, kaiyou et y0no – est toujours active dans l'association huit ans plus tard. Sur le plan services, les premiers outils de gestion de communauté faisaient leur apparition : un salon IRC (oui, oui) rejoint par un salon Jabber, un site Wordpress de présentation et le fidèle Flyspray pour suivre les bugs et demandes. Quant-à la technique rien n'avait franchement bougé : Proxmox, Puppet, Apache, PHP ITK, le tout sur des machines Digicube et OVH.

Pas satisfaits de ce calme d'apparence, rejoints par Maya et Naliyah, nous avons tiré tous azimuths de 2013 à 2015, et l'historique de nos dépôts Git de configurations Chef, puis Salt, en témoignent encore :

Finalement, gérer des dizaines de petites machines devenait incontrôlable et les premiers besoin de rationalisation – moins de temps libre côté administrateurs, quelques incidents ayant aussi motivé des changements rapides d'hébergeur. A compter de 2016, nous avons donc basculé sur une technologie pas franchement différente de OpenVZ : des conteneurs Docker. D'abord à la main, puis épaulés de scripts type pipework, finalement grâce au puissant Docker Compose, nous avons migré pendant près d'un an l'ensemble de nos services sur une poignée de machines physiques – sauron, sempre, emile et silver, puis helvet, joke, anys et personne. L'exercice fut l'occasion de développer quelques outils précieux, dont une configuration de pare-feu se substituant aux redirections Docker et supportant IPv6. C'est cette motivation à contribuer non seulement des configurations, mais aussi des outils réutilisables, qui a semé la graine de multiples projets d'envergure dont Mailu, une distribution de serveur e-mail conteneurisé, que nous avons entamée en 2016 pour achever l'effort de migration.

En 2017, Matrix a pris de l'ampleur, Vector est devenu Riot (aujourd'hui Element), et nous avons déployé notre Synapse en janvier. Quelques mois plus tard, Mastodon gagnait en popularité et nous avons installé notre premier service du Fediverse. Enfin en 2018, Seafile complétait Nextcloud pour le stockage de fichiers, Pixelfed et Peertube enrichissaient le paysage ; d'autres services en tests à l'époque n'ont pas survécu, comme Prismo ou encore un serveur de cartographie.

Fin d'année, nous énoncions pour l'une des premières fois formellement nos valeurs et principes et rejoignions en même temps le collectif CHATONS.

Faire mieux avec moins

Nous avons trouvé l'aide de Orlinum, Gh0stDiv3r, frju365, Tuxfanou, Jae et Pascoual, sans qui nous n'aurions pas pu déployer Nitter, Bitwarden, Writefreely, Lemmy, Stream ou encore Mobilizon ces deux dernières années. Mais surtout, nous avons pu consolider : maîtriser les technologies à moindre facteur bus, répartir mieux les tâches du quotidien et libérer le temps nécessaire pour construire. Mais construire quoi ?

Notre objectif affiché depuis bien longtemps au plan infrastructure : s'auto-héberger autant que la technologie nous le permet. Nous ne sommes plus limités par la fiabilité de l'alimentation ni par les accès à Internet, il nous reste donc à franchir le pas. La démarche est plus investie que le seul désir de pouvoir toucher du doigt les équipements : il s'agit de défendre nos valeurs en sortant des silos hébergés en datacenter. Il y va donc aussi d'un engagement responsable quant à l'usage des ressources et la durabilité des systèmes que nous mettons en place.

L'année 2019 a préparé les consciences, jusqu'à la décision en AG, que nous vous exposions ce dernier mois d'avril, de réduire la voilure : moins de serveurs – aujourd'hui une seule machine en datacenter, aegir –, moins de frais, moins d'énergie, pour héberger la même chose et l'héberger mieux, en optimisant les applications, en réduisant la charge partout où c'est possible.

L'année 2020 si particulière, en plus de parer quelques-fois à l'urgence – héberger par exemple quelques dizaines de milliers de visio-conférences non prévues en plein confinement – a offert le temps de préparer les outils. Sous l'égide du collectif ACIDES que nous tâchons de faire vivre à son rythme, nous avons rationalisé l'authentification sur une partie de nos services grâce à Hiboo, et nous avons mis au point Hepto, une distribution Kubernetes adaptée à l'auto-hébergement réparti.

Un nouveau départ

En décembre, nous publions nos nouvelles conditions générales d'utilisation et donnions les orientations pour améliorer la modération et la qualité de nos services en général.

Ce mois de janvier, nous tournons encore une page. Le 1er, nous accueillions mainecoon, maître d'une future portée de nœuds dans le cluster largement auto-hébergé qui portera nos applications les années à venir : longue vie à kity ! Le 2 nous intégrions angora et nous déployons aujourd'hui notre service Nitter en production dessus.

Constitué de matériel récupéré – anciens ordinateurs personnels ou achats reconditionnés –, le cluster abritera des nœuds chez les membres de l'association. D'abord au nombre de 2 et se concentrant sur les services peu critiques, les machines devraient être 5 ou 6 afin de remplacer entièrement l'existant.

Si la consommation d'énergie totale excédera vraisemblablement (de peu, calculs en cours) celle de nos serveurs en location, l'ensemble devrait être plus respectueux de nos valeurs et plus durable tout-de-même ! Nous continuerons donc à publier des mises à jour, et l'ensemble de nos travaux :

2021 s'annonce donc, sinon fructueuse, au moins studieuse et pas en peine de défis. Nous devrons y remettre l'accent, outre sur l'infrastructure bien abordée dans le billet, sur le choix des services à héberger à long terme et la modération de plus en plus délicate dans un univers fédéré, en continuant d'évoluer et en accueillant des contributeurs motivés.

Nous espérons qu'elle sera au moins aussi intéressante pour tout le monde, en particulier pour les camarades CHATONS et autres hébergeurs indépendants, pour les incroyables contributeur·rices aux logiciels que nous employons, et pour ceux·elles avec qui nous avons le plaisir d'échanger chaque jour.