Bonjour !

L’année dernière, j’ai réussi à quitter Google et j’ai rejoint Infomaniak pour les mails et le drive partagé. Je suis assez content de ce déménagement mais ça n’a pas résolu mon usage de certains autres logiciels (Spotify et Notion notamment).

Infomaniak ne pouvant pas répondre à ces besoins, je me suis mis en quête de logiciels à héberger sur mon NAS Synology. Hélas, je n’ai rien trouvé de suffisamment léger pour s’exécuter rapidement sur mon petit NAS.

J’ai un profil pas trop geek : Je ne suis pas développeur, ni administrateur réseau. Mais j’utilise plusieurs machines au quotidien (un pc fixe, un pc portable, un NAS) et j’aime bien récupérer du matériel informatique pour bricoler. Bref, sans être un pro du secteur, je suis pas non plus totalement novice. Je détaille ici la mise en place de mon “mini cloud” personnel, car je pense que mon profil, plutôt monsieur tout le monde, peut montrer à des gens au profil similaire que ce projet reste accessible.

J’ai donc décidé le mois dernier de monter mon serveur maison pour répondre à mes besoins : Le drive partagé (je tiens à garder des docs modifiables à plusieurs), un notion-like et un spotify-like. Je suis resté chez Infomaniak pour les mails car ça me semble trop dangereux de rapatrier le serveur mail chez moi, si jamais j’ai une panne.

Concernant le matériel, j’ai commencé par opter pour une infrastructure avec des Raspberrys, et en réutilisant les disques des mon NAS. J’avais 2 Raspberrys pi dans un tiroir et des lecteurs USB-SATA. Je voulais un serveur principal sur lequel sont exécutés les logiciels et un second chez un ami qui duplique en permanence le contenu du premier en cas de problème.

Hélas je n’ai pas réussi à résoudre un gros problème : Malgré l’alim officiel Raspberry (5A en 5V) et une alim dédiée pour le lecteur de disque, le lecteur de disque SATA se déconnectait du Raspberry et faisait planter les logiciels. Après des heures de recherches, j’ai capitulé.

Et récemment, en allant à la déchetterie, je suis tombé sur un PC gamer dans une benne. Je l’ai récupéré et tout était mort (ou absent) sauf l’alimentation de 500W. Je me suis donc mis en quête de monter un PC en dépensant peu. Vu que j’ai tendance à garder pleins de trucs, j’avais quelques composants en stock, notamment une carte mère qu’un ami qui avait monté un ordi dans son entreprise m’avait donné car l’emplacement PCI express était en panne, deux barrettes de RAM de 8Go et un petit SSD M2 de 64Go trouvé en braderie cette année. Il me manquait le processeur que j’ai acheté 30€ sur Leboncoin (un Ryzen 5 pas si vieux).

Et voilà, j’ai pu monter un vrai PC et y brancher mes disques durs directement en SATA.

Pour le PC de backup, j’ai utilisé un PC Dell d’entreprise de 2002 (il a 2go de RAM et un Intel Pentium 4) que j’avais récupéré également dans une benne quand j’étais au lycée (et qui attendait depuis 13 ans dans le grenier de mes parents). Ce PC a beau avoir 25 ans, il a quand même du SATA et a reconnu le gros disque dur.

Le serveur principal

Le PC de 2002

Pour les OS, j’ai installé Ubuntu Server 26.04 sur le serveur principal et Debian 12 en 32 bits sur le serveur de backup car il a une architecture 32 bits (il est vraiment très vieux 😅 ).

J’ai découvert comment utiliser un ordinateur en ligne de commande. Ça m’a pris plusieurs semaines avant de retenir les commandes les plus courantes, mais c’est cool. Maintenant je n’ai plus trop besoin de me référer à mon mémo que je m’étais fait pour utiliser les ordis.

Et j’ai donc installé Docker (et docker compose). Ce logiciel est assez étrange pour moi (ce n’est ni un émulateur, ni un launcher) et je suis très content d’avoir découvert ce site qui m’a permis d’y voir plus clair et apprendre les bonnes pratiques. Si vous ne savez pas ce qu’est Docker, voici une explication.

Ensuite, au sein de Docker, j’ai installé ces logiciels :

  • Nextcloud : Un logiciel de drive très complet
  • Collabora Online : La suite bureautique qui s’intègre dans Nextcloud
  • Immich : Une photothèque qui ressemble beaucoup à Google Photos
  • Docmost : Notion-like mais sans les bases de données (hélas)
  • Navidrome : Une bibliothèque pour la musique
    • Note : Pour écouter la musique, j’utilise Symphonium depuis mon téléphone et Feishin depuis mon ordi
  • Nginx Proxy Manager : Ce logiciel permet de passer d’une IP à une URL. J’ai utilisé un nom de domaine que j’avais chez Infomaniak pour lier l’IP et les ports des logiciels vers des sous domaines (exemple : drive.pierrevlg.fr). C’est super pratique et plus simple à utiliser par mes proches que de leur dire qu’ils doivent installer un client VPN pour accéder aux services.
  • MiniDLNA : Ce logiciel permet au lecteur CD de mon salon d’accéder à la musique depuis le réseau local.
  • Syncthing : C’est le logiciel de backup que j’ai installé sur les deux serveurs pour backuper en permanence les données. A noter que Docker n’est pas dispo en 32 bits donc impossible à installer sur le PC de backup. Mais Syncthing existe en 32bits et j’ai pu l’installer directement sur l’OS.
  • Termix : C’est un logiciel pour accéder à distance en SSH aux différents ordis.

Au sein de Ubuntu, j’ai également installé SMB pour accéder aux fichiers depuis le réseau local.

Concernant la musique : Évidemment, pour garnir ma bibliothèque, j’ai un peu galéré. Voici mon processus : J’ai extrait tous mes CD avec Whipper en FLAC. Whipper annote automatiquement les fichiers pour qu’ils aient une pochette et les bonnes métadonnées. Maintenant que j’ai extrait tous mes CD, soit j’achète ma musique sur Bandcamp soit j’extraie les CD de mes amis.

Si ça intéresse des gens, je peux détailler certains aspects de cette mise en place (configuration du reverse proxy Nginx Proxy Manager avec Infomaniak, configuration de Syncthing pour que ça backup bien tous les disques comme il faut etc).

Le bilan

Ca marche super bien. Les deux PC sont très stables, même lorsque toute la famille est en train d’utiliser les différents services. Je suis très content d’avoir pu exploiter tout ce matériel d’occasion. Notamment le vieux PC de 2002 que je n’imaginais pas pouvoir utiliser un jour.

Étant néophyte de Linux, la mise en place de ces logiciels sur un serveur a été vraiment compliquée. Lorsque les raspberrys crashaient, j’ai failli capituler. En plus, apprendre à utiliser un ordi en ligne de commande via SSH, éditer un .yaml sans faire d’erreur, apprendre à utiliser Linux en fait, c’est vraiment dur, il faut s’accrocher. Mais c’est pas insurmontable et c’est satisfaisant d’y arriver. Et c’est cool de comprendre un peu mieux ce pan de l’informatique que j’avais toujours regardé en me disant que c’était trop geek pour moi. Je pense que j’ai passé 5 ou 6 jours cumulés à mettre tout ça en place. Mais si je devais le refaire, maintenant que je comprends un peu mieux comment marche tout ça, je pense que ça me prendrait une journée.

Et l’argent : Monter son propre serveur n’est pas économique, mais ça va encore.

Spotify Famille + le drive Infomaniak coute environ 280€ par an. C’est à peu près les seules dépenses que j’avais.

Ici, j’ai limité les frais en récupérant du matériel. Si j’avais du payer le matériel, voici grosso modo ce que ça aurait pu couter :

  • Serveur principal (Ryzen 5, 16go de ram) : 500€
  • Serveur de backup : 100€
  • Disques durs : 300€

Et concernant les frais de fonctionnement :

  • Nom de domaine : 10€ par an
  • Électricité : 50€ par an

La première année, cette infrastructure aurait pu couter 960€. Puis 60€ les années suivantes. Il aurait donc fallu attendre 5 ans pour que ça devienne plus rentable que Spotify/Infomaniak. En vrai ça va, d’autant que le serveur peut héberger d’autres services normalement payant.

Dans mon cas, vu que j’ai récupéré pas mal de matériel, ça me coute donc 90€ cette année (30€ pour le processeur que j’ai acheté, 50€ pour l’électricité et 10€ pour le nom de domaine) et ça me coutera 60€ les années suivantes.

Après, il est possible de soutenir les logiciels qu’on apprécie en faisant des dons, ce qui augmente les dépenses. Et il faut aussi compter l’achat des musiques sur Bandcamp, Discogs etc.

Et l’écologie : J’imagine qu’il est compliqué de comparer cet usage “cloud” à celui que nous aurions pu avoir avec les services du commerce. Les économies d’échelle des hébergeurs de données rendent probablement le cout énergétique par utilisateur assez faible. D’autant qu’Infomaniak redistribue la chaleur générée par ses datacenters pour chauffer des logements. De même, même si les hébergeurs changent régulièrement le matériel, cet impact doit être faible ramené à l’utilisateur.

Je pense que l’impact écologique de mon “mini cloud” est donc minime face à l’usage que nous avions quand nous étions chez Spotify, Infomaniak et Notion. Néanmoins, je peux quand même en partie quantifier l’impact de mon infrastructure :

  • Niveau matériel : Tout le matériel est d’occasion voire devait finir à la benne (sauf les disques durs qui proviennent de mon ancien NAS). D’ailleurs, ce NAS n’a pas terminé sa vie. Je lui ai mis 4 disques durs de 2to que j’avais récupéré (pour 4to effectifs en RAID) et il sert de stockage pour l’administratif du restaurant d’une amie.
  • Niveau électricité, l’ensemble de ma “baie informatique” (box Internet, switch ethernet et le serveur) consomme moins de 8000 Wh sur une semaine classique, soit moins de 400 kWh par an. Le serveur de backup consomme moins de 3000 Wh en moyenne sur une semaine, soit moins de 200 kWh par an. Je trouve que c’est une consommation électrique assez sobre, d’autant que nous sommes 8 à utiliser le serveur (ma famille et des amis).

Maintenant l’objectif est de faire tenir cette petite infrastructure le plus longtemps possible. Et ma volonté, maintenant que tout est en place et tourne sans problème, est d’y allouer le moins de temps possible. J’ai documenté tout ce que j’ai fait et j’ai noté toutes les manips et commandes à faire pour mettre à jour les logiciels. Je pense donc aller voir si tout va bien et mettre à jour si besoin une fois tous les 2 mois.

La suite : Je suis à l’affut d’un système d’onduleur avec batterie d’occasion (j’ai déjà une batterie de moto au plomb qu’il ferait bien l’affaire) pour maintenir une alimentation du serveur en cas de panne de courant. L’idée n’est pas d’assumer une alimentation électrique de plusieurs heures, juste de permettre au serveur de s’éteindre proprement en cas de coupure (et se relancer tout seul une fois le courant revenu).

J’imagine qu’il doit y avoir ici pas mal de personnes qui “self host” déjà leurs logiciels. Mais comme dit au début, je me dis que mon profil pas trop geek peut donner envie à d’autres de passer le pas. J’ai passé plusieurs semaines entre le moment où j’ai commencé et aujourd’hui où je constate que mes serveurs ne nécessitent presque plus de maintenance. C’était long et chiant par moment mais je suis très content.

Bonne journée !

  • dk58@jlai.lu
    link
    fedilink
    Français
    arrow-up
    6
    ·
    5 days ago

    Bonjour,

    Je te conseil la communauté très active selfhosted@lemmy.world. ça donne plein d’idée d’applications supplémentaires.

    Est-ce que tu exposes tes services à l’extérieur pour y accéder à distance ? C’est souvent ce qui fait le plus peur.

    • Pierre@jlai.luOP
      link
      fedilink
      Français
      arrow-up
      1
      ·
      5 days ago

      Super je viens de m’abonner à cette communauté merci =)

      Oui j’expose mes services à l’extérieur et ça me fait un peu flipper j’avoue. Mais l’usage (même si c’est pas compliqué) de Wireguard est trop compliqué pour que je l’impose à ma famille. Pour eux, un lien = un service. Tu fais comment toi ?

      Mais là ce matin je viens de remettre Wireguard et je l’utilise pour les logiciels que ma famille n’utilise pas.

      • dk58@jlai.lu
        link
        fedilink
        Français
        arrow-up
        3
        ·
        5 days ago

        Pour le peu que j’expose (nextcloud, 2 sites web), ma solution est de prendre un vps (server virtuel 5€/mois) où j’ai uniquement haproxy sur docker qui me redirige mon trafic sur un réseau wireguard.
        Les avantages :

        • aucun port qui répond chez moi. Uniquement le wireguard (qui ne répond pas sans la clé)
        • firewall géré à distance. Ça me rassure plus que de le gérer chez moi.
        • mon adresse IP maison est masqué
        • 1er filtre des requêtes faites par haproxy qui renvoi directement chez moi sur mon reverse proxy (lighttpd, mais ça peut être caddy ou nginx). Ce reverse proxy étant encapsulé dans un container docker qui est lui même dans un sous réseau docker avec uniquement les autres composants docker nécessaires (les autres containers qui exposent du http).
        • le serveur distant doit aussi aider pour les attaques ddos.
        • gros avantage, je n’ai pas besoin d’une IP fixe a la maison. (C’est wireguard maison qui se connecte au vps)
        • Pierre@jlai.luOP
          link
          fedilink
          Français
          arrow-up
          1
          ·
          4 days ago

          Wow cool c’est un peu technique quand même. Merci pour ton retour ! :)