Bonjour !
Aujourd’hui, je viens vous raconter une petite histoire : comment j’ai mis en place chez moi, un serveur « homelab », avec mon ancien PC reconverti pour l’occasion.
J’avais déjà dans l’idée de faire quelque chose avec mon ancien PC, plutôt que de le vendre, mais je n’étais pas encore fixé sur quoi dans le détail. C’est alors que mes amis AxelTerizaki et Xefir m’ont susurré à l’oreille la proposition de m’aider à héberger des services à la maison, grâce à ma bécane qui prenait la poussière. Je trouvais cela cool d’avoir des trucs directement chez moi, sans dépendre d’une plateforme tierce et pouvoir ainsi offrir quelques services à la famille et des amis.
La bête.
Commençons par le côté physique de la chose, de quelle machine parle-t-on ? Il s’agit (en partie) de mon précédent PC et il est donc un peu surdimensionné pour les besoins. L’objectif était vraiment de réutiliser ce que j’avais à ma disposition plutôt que d’acheter une « petite merde » dédiée.
- CPU : Intel Core i7-9700KF 3.60GHz
- RAM : 2×16 GB DDR4
- GPU : Nvidia GeForce GTX 1660 SUPER
- Disques : NVMe 1 To (OS & logiciels) + HDD 4 To (stockage)
Le tout tourne sous Linux (Debian 13 – Trixie).
Les premières briques.
En soi, pas grand chose à installer en tant que tel, juste à mettre la carte graphique que m’a donnée Axel, ayant déjà refilé celle qui était à l’origine dedans à une amie. Ensuite, une clé USB pour lancer l’installation et on suit les divers écrans pour configurer Debian. À noter qu’il a tout de même fallu que je m’y reprenne à deux fois, encore merci à Xefir de m’avoir guidé sur le second essai.
Et ensuite ? Un écran tout noir, qui permet d’écrire des runes permettant de faire de la magie tout aussi sombre. Vous rigolez peut-être, mais n’ayant jamais vraiment utilisé la ligne de commande, c’est avec un peu d’appréhension que j’ai écrit les premières lignes, un pouvoir sans limite entre les doigts.
Sur le quai, matelot !
Vint ensuite le temps de m’expliquer ce qu’était Docker et sa magie salvatrice. « Imagine, c’est comme des conteneurs sur un bateau, un service, c’est une boîte avec tout ce dont elle a besoin dedans. Ça s’ajoute et s’enlève en quelques secondes. »
Franchement, c’est tellement cool. Ça rend l’installation de service super simple et pratique. J’avais des craintes concernant ce point, qui se sont vite envolées.
On crée le fichier de configuration :
nano ~/docker/imgcompress/docker-compose.yml
On le remplit :
services:
imgcompress:
image: karimz1/imgcompress:latest
container_name: imgcompress
restart: unless-stopped
environment:
- DISABLE_LOGO=false
- DISABLE_STORAGE_MANAGEMENT=true
volumes:
- ./data_tmp:/app/tmp
expose:
- "5000"
networks:
- proxy
networks:
proxy:
external: true
On enregistre et on lance tout ça :
docker compose up -d
Oui. C’est si facile. (la plupart du temps)
Ensuite, il faut configurer le « proxy ». Je ne suis pas encore certain d’avoir bien tout saisi, mais en gros, je mets chaque service sur un sous-domaine de « esenjin.xyz ». J’ai un sous-domaine qui centralise tout « mizore.esenjin.xyz ». Après, Nginx Proxy Manager (NPM) prend le relais pour aiguiller tout ça correctement. Seuls deux ports sont ouverts vers l’extérieur pour tous les sites, et NPM s’occupe en plus des certificats HTTPS.

La boîte de Pandore.
Il est désormais temps de faire un tour d’horizon de tout ce que j’ai mis dessus à ce jour.

La partie infrastructure va regrouper les outils qui me servent à gérer la machine et les services. On y trouve :
- Homer (Github) : pour la page d’accueil qui présente tous les services.
- Beszel (Github) : afin de surveiller le système.
- Dockhand (Github) : permet de gérer les conteneurs Docker.
- Nginx Proxy Manager (Github) : s’occupe des proxys inversés et certificats SSL.
- Filebrowser Quantum (Github) : pour naviguer dans les fichiers.
- MySpeed (Github) : teste régulièrement la connexion.
- Cronmaster (Github) : gère les tâches automatisées.
Les services « restreints » sont ceux que je me réserve pour moi-même, ainsi que la famille et quelques amis s’ils en ont besoin. Ils sont accessibles depuis internet, mais nécessitent une authentification.
- Baïkal (Github) ; sert à synchroniser mes agendas.
- Babengas (Gitea) ; un outil maison qui me sert pour Lengas.
- Immich (Github) ; pour gérer mes photos, notamment ce que je prends avec mon téléphone, directement synchronisées dessus.
- Deemix (Github) ; pour télécharger des musiques sur Deezer.
- Navidrome (Github) ; pour gérer/écouter mes musiques, je l’utilise en duo avec Symfonium sur mon téléphone.
- Jellyfin (Github) ; pour gérer/regarder mes films et séries.
- Komga (Github) ; pour gérer/lire mes doujins.
- YTPTube (Github) ; pour télécharger des vidéos Youtube.
- qBittorrent/WireGuard (Github) ; pour télécharger des torrents (derrière un VPN).
Si on se connait bien et que vous voulez un accès pour l’un d’eux, demandez-moi par message sur Discord, il y a toujours moyen de moyenner.
Ceux qui sont « ouverts » sont librement accessibles à tout le monde, alors n’hésitez pas à vous en servir !
- Syncplay (Github) ; permet de lire en synchronisé des vidéos, comme ce que l’on fait avec les Camélianimes chez Camélia Studio.
- BentoPDF (Github) ; permet l’édition complète de PDF.
- It Tools (Github) ; offre divers outils tech.
- ConvertX (Github) ; permet la conversion de fichiers dans tout un tas de formats.
- ImgCompress (Github) ; peut aussi convertir le format (images uniquement), mais surtout les compresser ou encore enlever le fond.
- Waifu2x (Github) ; à l’inverse va agrandir les images (avec réduction du bruit).
- Degoog (Github) ; un moteur de recherche qui utilise ceux qui sont bien connus, mais en respectant votre vie privée.
- LibreTranslate (Github) ; comme son nom l’indique, ça traduit du texte dans tout plein de langues.
- Pixiv_DL (Gitea) ; permet de télécharger des gif Pixiv.
La dernière catégorie « Jeux », pour mes serveurs de jeux, tout simplement. Actuellement il n’y a qu’un serveur Minecraft (v.1.21.5), sur lequel je suis avec l’un de mes frères et quelques amis, si vous désirez nous rejoindre, il suffit de me faire signe (l’accès est restreint à une liste blanche). Cependant, il est possible de consulter la carte de notre monde.
Par ailleurs, j’ai aussi créé un petit site web « Mizopoint », qui permet de connaitre le statut des divers services hébergés sur Mizore (y accéder).
Ma navigation au jour le jour.
Je ne vais pas revenir en détail sur chacun des services, mais quelques exemples d’usages courants qui sont totalement intégrés dans ma routine désormais.
Baïkal pour l’agenda.

J’utilisais auparavant un calendrier sur l’instance NextCloud de Camélia Studio, mais cette dernière ayant été supprimée, il a fallu trouver une alternative. J’ai vagabondé sur divers outils, notamment Proton Calendar, mais les limitations gratuites se faisaient sentir. Maintenant, tout se synchronise avec Baïkal et je récupère les événements sur mon calendrier Thunderbird sur le PC et Fossify sur mon téléphone (Vladiléna).
Immich pour les photos.

Fini la synchronisation avec Onedrive qui m’obligeait à vider régulièrement son dossier sur mon PC, désormais, tout se fait automatiquement du téléphone vers Mizore et je peux consulter mes photos/vidéos prises avec via une belle interface. Cela a également l’avantage de pouvoir créer des dossiers partagés avec mes proches, c’est bien utile pour partager nos photos lors d’un événement familial comme un mariage par exemple, ou encore montrer la dernière bêtise de nos bouts d’chou à tout le monde.
Degoog pour la recherche web.

Je n’utilisais plus Google depuis déjà bien des années et j’étais sur DuckDuckGo, mais désormais j’effectue tout via mon instance Degoog. Une recherche totalement respectueuse de ma vie privée et que je peux adapter sur mesure à mes besoins.
À l’abordage !
Bien entendu, il faut aussi penser à la sécurité de tout cela. Je ne vais pas mentir, ce n’est clairement pas mon domaine de prédilection. Cependant, j’ai tout de même essayé de faire les choses proprement. Les sites passent tous par les ports 80 et 443, gérés par NPM. Seuls Syncplay et Minecraft ont leur propre port et l’interface d’administration de NPM n’est accessible qu’en local ou via mon réseaux Tailscale.
Les services restreints nécessitent une authentification, soit avec un compte natif sur le service, soit via un blocage NPM. Tous les conteneurs se mettent également à jour automatiquement chaque jour, grâce à Dockhand (je me dois cependant de penser à mettre ce dernier à jour manuellement, ainsi que l’OS de la machine et les petits à-cotés qui ne sont pas conteneurisés). Concernant les torrents, tout le trafic passe sur le VPN de mon ami Xefir et qBittorrent se coupe si le tunnel tombe.
Toute la configuration est également sauvegardée, chiffrée et envoyée sur mon compte Mega chaque semaine, au cas où. Il n’y a cependant pas de sauvegarde des médias, les disques ça coûte cher, surtout dans le contexte actuel. Mais clairement, cela fait partie des grandes améliorations sur lesquelles je pourrais me pencher à l’avenir, avec un NAS par exemple (et ça fera peut-être l’objet d’un nouvel article).
C’est en constante évolution, j’en apprends tous les jours et c’est un projet qui continuera de grandir au fil de l’eau, avec des améliorations plus ou moins importantes.
Récifs en vue, capitaine.
Comme je le disais plus haut, il y a aussi quelques limites et inconvénients. La plupart du temps ça baigne, mais quand ça coince, c’est rarement là où on l’attend.
Je peux noter par exemple une mise à jour de Dockhand, qui pour une raison inconnue, a décidé de corrompre un disque. J’ai pratiquement tout récupéré ce jour-là, mais cela donne de grosses sueurs froides et un week-end complet dédié à gérer l’incident.
Autre classique : le serveur Minecraft marchait nickel… pour moi. Pour les autres, rien. Après pas mal de recherches, le coupable était la box, qui ne laissait tout simplement pas passer la connexion. Mais comment deviner lorsqu’on n’y connaît pas grand chose en infra réseaux ? (on dit merci à Claude).
Il y a aussi des limites. Pour revenir sur le stockage par exemple, tous mes animés sont stockés sur mon PC (Lain), le disque sur Mizore n’étant pas assez conséquent. Cela empêche notamment de les consulter avec Jellyfin lorsqu’il est éteint (quand je dors, suis au travail, etc.).
Tout n’est pas toujours bleu azur, il faut accepter de parfois prendre du temps pour mettre en place un service, réparer lorsqu’un grain de sable se glisse dans la machinerie, mais ça se fait ! Et dans le pire des cas, je sais que j’ai des amis sur qui je peux compter si j’ai face à moi un pépin insoluble au vu de mes modestes capacités.
Dans un internet qui se « merdifie » de plus en plus, avec des monopoles de grosses boîtes qui n’en ont rien à faire des utilisateurs, tant que ça rapporte des thunes pour les investisseurs, je trouve cela vraiment cool de pouvoir s’en détacher et proposer des outils équivalents, qui seront respectueux, pour mes proches.
Auto-héberger c’est chouette, la décentralisation nous permet de reprendre le contrôle et on se rend vite compte que le choix d’outils libres, ce n’est pas vraiment ce qui manque. Il est certain que cela demande un peu plus d’effort et d’investissement, il y a parfois des soucis à régler, pas toujours évident lorsque l’on est peu habitué, mais je pense que ça en vaut la chandelle.
Au passage, si vous voyez d’autres services intéressants à ajouter, faites-m’en part et je verrai pour (éventuellement) me pencher dessus.
Je tiens encore une fois à remercier Axel et Xefir, pour m’avoir soufflé l’idée et m’avoir aidé derrière à trouver des services sympas et à les installer ou résoudre mes soucis lorsque j’en ai eu.
Bisous !

Soyez le premier à commenter