Monter un serveur auto hébergé, c'est pas aisé

Comme répété souvent sur ce site, je ne suis un expert en rien. Et l'administration de serveurs est un domaine inconnu. J'ai des notions, parce que ça fait assez longtemps que je traine sur des ordinateurs, mais ça s'arrête là.

Vous avez déjà pu le constater si vous avez lu l'article concernant mon serveur de sync de fichiers.

Mais je ne suis pas satisfait de ce que j'ai et voudrais vraiment faire les choses bien.

Il est temps de faire un bilan et d'envisager de nouvelles solutions !

De quoi qu'on vient

Le serveur Nextcloud, en l'état, fonctionne pour mon usage mais :

  • impossible de réaliser les updates de Nextcloud depuis l'interface web de ce dernier.
  • lors du déploiement de la nouvelle version du container Nextcloud, je dois refaire toutes les modifs de config.
  • ma compagne ayant changé de téléphone et utilisant un apple, l'OS refuse totalement l'accès aux sites utilisant des certificats auto signés.
  • je voudrais de meilleures performances, le cpu du raspi a saturé quelques fois lors d'opérations impliquant un grand nombre de fichiers.

La V2 impliquera donc de :

  • prévoir un système pour gérer le déploiement du serveur nextcloud facilement.
  • ce système doit aussi le permettre des mises à jour tout aussi simples.
  • il me faut un certificat pour le serveur.
  • muscler la configuration hardware.

Vers où qu'on va

Option 1 :

Utiliser les ressources trouvées sur le web pour réaliser un cluster de raspi et espérer que ça fonctionne.

Déployer sur ce cluster un container traefik pour gérer le routage des domaines et donc pouvoir utiliser CertBot pour obtenir un certificat via let's encrypt. Déployer un container serveur web et le container nextcloud sans serveur web intégré.Rien que là, vous la sentez venir, l'énorme galère ?

Oui, j'ai peur que ça soit une galère infâme à gérer pour moi et que je laisse le truc à l'abandon, comme je l'ai fait avec la première tentative de serveur.

Option 2 :

C'est à ce moment que je me suis intéressé à yunohost. Ce système avait été cité il y a très longtemps sur un discord que je fréquente. Mais ce n'est en le voyant apparaitre plus récemment dans un échange concernant mastodon que je m'y suis intéressé.
(j'étais trop têtu et voulait absolument arriver à déployer mon serveur “à l'ancienne”, à la force de mes doigts tapant des commandes dans le CLI)

Meme "Y u no", ici le personnage dont la frustration est clairement affichée sur le visage dit "Dude, why you no host?" qu'on peut traduire par "Mec pourquoi tu l'héberges pas?"Ce même assez courant permet d'émettre deux observations :

  • beaucoup de geek tendent à pousser les gens à auto héberger des trucs et ce de manière plus ou moins brutale.
  • auto héberger des trucs dans de bonnes conditions, c'est pas si simple.

Quand je dis “dans de bonnes conditions”, c'est qu'il faut que le serveur soit un minimum sécurisé, qu'il soit accessible depuis toutes les plateformes et que les mises à jour n'imposent pas de devoir modifier des fichiers config systématiquement.

A priori, tout ça est possible avec des outils comme Docker, Kubernetes, … Si ils sont alliés avec une bonne dose de connaissances que je ne possède pas du tout. Et je n'ai absolument aucune motivation à apprendre tout ça en ce moment. Je veux juste un truc qui fonctionne !

Un serveur avec les petites roulettes sur les côtés SVP

logo yunohostOuais, je m'en bat, je veux un truc où pour déployer un nouveau service, je clique 2-3 fois, je remplis un petit formulaire et c'est plié, ça fonctionne ! Mais qu'il soit aussi sécurisé, pas me faire hacker ma gueule en 2-2 et avoir mon serveur en vrac 5 minutes après l'avoir connecté aux intertubes.

Alors c'est pas toujours aussi simple, mais yunohost, clairement, ça s'en rapproche bigrement (j'en ai placé un, GG moi).

D'office, on a un serveur mail complet, un serveur xmpp, un interface web d'admin, un système permettant des sauvegardes d'un simple click, un portail utilisateur, le tout protégé par un firewall et fail2ban. On peut lui coller plusieurs noms de domaines si on le souhaite et chaque nom de domaine ou sous-domaine peut être certifié via Let's Encrypt.

Serveur de sync de fichier

Hardware

J'ai installé yunohost sur une toute petite machine, un de mes lenovo tiny :

  • un vieil i5 gen 3
  • 12Go de ram (cherchez pas, j'avais que ça sous la main)
  • un petit SSD 2.5“ sata de 500Go
 

Software

Instances qui tournent à l'heure actuelle sur cette machine :

  • Nextcloud
  • Mastodon
  • Matrix (dendrite)
  • Pixelfed
  • Peertube
  • GitLab
  • NetData
  • Grafana
  • DokuWiki
 

Utilisation

Nombre d'utilisateurs : un peu plus de 1.

Du calme, je m'explique.
Je n'utilise pas pixelfed, ni gitlab et quasi pas peertube, ni matrix.
Madame n'utilise qu'à peine son compte NextCloud.

Par contre, mon compte nextcloud, y a toute ma vie dessus, tellement de trucs qui se sync de partout depuis et vers mes différents ordis, tablette, téléphone.

Plus tard

En toute honnêteté, ça fait quelques semaines que ça tourne et le lenovo tiny me suffit. Il y a quelques ralentissement de temps à autres, mais c'est plus que supportable (en plus, c'est ma faute, j'ai mis un truc dans nextcloud qui est sévèrement consommateur de temps de calcul).
Mais cette observation n'est valable que :

  • si je n'accepte aucun nouvel utilisateur... Hors je voudrais créer des comptes pour quelques personnes de nos familles, histoire de facilement partager des photos ou d'autres documents.
  • si je n'ajoute aucune nouvelle instance. Hors j'aimerais faire tourner une instance de JellyFin, qui est un truc réputé pour être gourmand.
  • si je n'augmente pas l'utilisation de mes instances diverses. Hors j'ai des plans pour peertube et clairement mon compte mastodon ne va faire que grossir avec le temps.

Coup de bol, mon paternel va me refourguer un lot de matos informatique !

ET OUI, EN ROUTE VERS LA V3 ! 😆