Proxmox Homelab: Configuration Initiale
Table of Contents
Depuis aussi longtemps que je me souvienne, j’ai toujours été un peu hacker sur les bords…
À l’école primaire, j’ai téléchargé mes premiers jeux PC en torrent et plus tard j’ai fait de même pour mes jeux NDS.
Au collège, je suis passé de Windows XP à Ubuntu 12.04 et j’ai fait mes armes dans le monde magiquement magique de Linux.
Au lycée, j’ai mis la main sur un Raspberry Pi 2B et BIEN SÛR j’ai essayé de créer MON PROPRE centre de rétrogaming avec Retropie, Batocera et Recalbox. Je voulais aussi regarder mes séries d’anime et mes émissions TV sur mon moniteur, alors j’ai installé quelques plugins de streaming - euh… - douteux sur mon centre multimédia Kodi/LibreElec.
C’était le bon temps. Mais j’en voulais plus… PLUUUUS !!!
Alors, l’idée de télécharger automatiquement mes propres films et séries TV sans avoir à passer d’innombrables heures à chercher des liens magnet légitimes EN FRANÇAIS (oui, oui, je n’étais pas bilingue à l’époque) était une idée qui a pour toujours pris place dans ma tête.
C’est pourquoi, 5 ans après mon baccalauréat et juste après avoir terminé mon stage de fin d’études, j’ai pris le temps de réfléchir à une architecture qui me permettrait vraiment de réaliser mon rêve : le NAS ULTIME.
Mes objectifs étaient triples :
- déployer un serveur pour l’acquisition automatique de films/séries TV sous différentes qualités
- avec la possibilité de les regarder à distance
- dans des conditions de sécurité maximales.
C’est sans dire que, étant un NAS, il devrait aussi avoir le potentiel de stocker tous mes fichiers et sauvegardes. Toutes les étapes de mon raisonnement ont été menées avec ces objectifs à l’esprit.
Et tout a commencé avec le choix de l’équipement.
Le Matériel#
Je désirais une capacité de stockage élevée, de hautes performances, une empreinte énergétique faible et - en priorité - un SBC de taille réduite à faible investissement.
Sur Internet, tout le monde parlait de Zimaboard, Intel NUC, de configurations en rack et que sais-je encore. Mais j’ai trouvé quelque chose de bien plus intéressant : le FriendlyElec CM3588 NAS.
Cette carte a été présentée par Linus Tech Tips dans sa vidéo Paying for Cloud Storage is Stupid - YouTube, et c’était vraiment une belle trouvaille venant de lui.
Le gros avantage de ce petit gars, ce sont ses 4 slots M.2 PCIe 3.0 NVMe, chacun d’eux acceptant jusqu’à 4 To de stockage. Cela signifie un NAS de 16 To pour seulement 145 dollars ! TOUT SIMPLEMENT ÉNORME !
Le prix de cette bête est aussi un cadeau du ciel, car je pourrais totalement m’imaginer faire tourner un petit cluster avec 3 de ces monstres dans les années à venir.
Le CPU Rockchip RK3588 relativement récent avec 8 Go de RAM devrait supporter la majorité de la pile logicielle à travers les âges avec une dépense énergétique minimale, étant une architecture basée sur ARM64. Et son GPU/VPU supporte jusqu’à 8k60fps H.265 en sortie, ce qui signifie aucun problème avec les formats de films haute qualité.
Sa modularité est aussi une spécification très appréciée ici : Si jamais j’ai besoin de faire une mise à niveau pour de meilleures performances (pour du gaming, qui sait…), je n’ai qu’à acheter un nouveau module et pas toute la carte porteuse.
Le fabricant donne accès à 6 OS sur cette carte :
- un OpenWRT personnalisé,
- OpenMediaVault,
- Ubuntu,
- Debian,
- AndroidTV,
- Proxmox VE
J’étais très curieux à propos de Proxmox VE depuis avoir vu quelques-unes des vidéos de Novaspirit Tech (que son âme soit bénie), et je voulais essayer l’approche conteneurisée.
Toute la documentation peut être trouvée ici et ici pour l’installation. Personnellement, j’ai choisi de le faire via USB.
L’Architecture#
Après mûre réflexion et d’innombrables sessions de planification nocturnes (alimentées par beaucoup trop de café ☕), voici ce que j’ai conçu pour l’architecture de mon homelab :

Nous plongerons en profondeur dans chaque composant individuellement dans les prochains articles, en explorant ce que sont tous ces nodes, pourquoi ils sont essentiels, et comment ils travaillent ensemble en parfaite harmonie. Alors restez dans les parages pour les mises à jour !
Pour l’instant, je vais peindre la vue d’ensemble et expliquer le schéma de manière générale pour qu’on ne se perde pas dans les détails dès le début.
Proxmox#
Proxmox VE est une plateforme de gestion de virtualisation de serveur open-source construite sur Debian. Elle est spécifiquement optimisée pour les machines virtuelles KVM et les conteneurs LXC.
La différence entre ces deux approches de virtualisation réside dans le niveau de virtualisation :
- Les VMs sont des systèmes informatiques complets, entièrement isolés, exécutant leur propre noyau. Elles peuvent héberger et afficher une variété de services en utilisant le matériel de la machine.
- Les LXCs sont significativement plus légers que les VMs, car ils partagent le noyau du système hôte. Cela les rend incroyablement efficaces. Idéal pour les déploiements de service unique où vous voulez des performances maximales avec un overhead minimal.
Nous pouvons entrer dans une VM ou LXC spécifique soit via CLI par SSH soit via l’interface de gestion web.
SDN#
SDN est un concept relativement nouveau, et signifie Software Defined Networking (Réseau Défini par Logiciel). Au lieu d’être limité par les limitations des switchs physiques, le SDN crée des réseaux virtuels en utilisant des logiciels pour gérer les connexions entre les machines dans un réseau.
Dans ma configuration particulière, j’ai opté pour OpenWRT comme solution de routeur. Ce n’est pas n’importe quel OS de routeur - c’est un système d’exploitation open-source spécialement conçu pour une flexibilité et un contrôle sans failles. OpenWrt gère entre autre le routage, la gestion des interfaces, et l’attribution d’adresses IP à toutes les machines connectées au réseau. On a aussi la possibilité d’ajouter des plugins sous forme de paquets.
Comme mentionné, la sécurité est primordiale dans ma configuration. Pour garder mon homelab à l’abri des étrangers d’internet, j’ai déployé un VPS Hetzner configuré pour le “combat” comme passerelle d’entrée en y laissant que quelques centimes par mois seulement. Combiné avec des tunnels VPN WireGuard, cela crée des chemins sécurisés et cryptés pour les clients autorisés et peut servir de point de terminaison internet si nécessaire.
Applications#
C’est là que la magie opère - mon écosystème d’applications auto-hébergées dans Proxmox.
Cette liste inclut mais n’est pas limitée à :
- Proxys inverses : J’utilise Nginx sur mon VPS Hetzner pour faire du proxy inverse de mes services externes vers l’utilisateur ; et Caddy sur mon serveur Proxmox gère le routage interne avec HTTPS automatique.
- Gestion des médias : Actuellement, j’utilise la pile *arr pour automatiser l’ensemble de mon pipeline média. Les fichiers peuvent provenir de sources Torrent ou Usenet.
- Consommation de médias : Sur les conseils de mon frère, j’utilise Jellyfin comme application de streaming et Jellyseerr comme sélecteur de films. Les deux sont disponibles sur la majorité des appareils et sinon, nous pouvons utiliser leur interface web.
- Gestionnaire de favoris : J’ai toujours voulu synchroniser simplement mes marque-pages entre mes appareils sans être lié à un seul navigateur. Linkding m’aide avec ça. C’est un outil vraiment simple qui crée une base de données de marque-pages sécurisée, multi-utilisateurs, ultra-rapide et économe en ressources.
- Gestionnaire de fichiers : Filebrowser brille par son interface élégante et sa simplicité d’utilisation. Les fonctionnalités incluent des liens de téléchargement partageables, une gestion complète des utilisateurs, et des capacités d’édition de fichiers intégrées entre autres.
- Surveillance réseau : CrowdSec agit comme une protection contre les individus malveillants. Il détecte automatiquement les menaces et réagit en conséquence avant qu’elles ne deviennent un problème.
Externe#
Pour pouvoir communiquer avec le NAS depuis l’extérieur sans avoir à écrire d’adresse IP hideuse avec le port attenu, nous allons devoir parler du concept de résolveur DNS.
Quand un appareil veut établir une connection avec un serveur sur Internet, il a besoin de connaître l’IP de destination et le port qui y est adjoint. Ainsi, quand on fait une requête à son navigateur - ex: google.com - le Résolveur DNS va généralement contacter un Résolveur DNS Récursif et demander qu’elle est l’IP attenante. Avec cette IP, l’appareil peut établir une connection jusqu’au serveur.
Chaque serveur qui tient une information définitive sur un nom de domaine spécifique est appelé “Domaine authoritaire” de ce domaine.
Pour mon système, j’ai choisi d’utiliser Porkbun comme registraire de domaine - principalement pour cause du prix d’achat et de renouvellement très interessant et du nombre de recommandations qu’en faisait les internautes de Reddit - ; et Cloudflare, comme DNS.
L’IP publique de mon VPS correspond à mon domaine personnalisé ’d…a.one’ via un A-record. Cela permet de faire passer tout traffic par mon VPS en premier ; ainsi l’addresse réel du serveur reste masquée.
Enfin, CrowdSec surveille continuellement tous les comportements de trafic depuis le routeur et le proxy inverse interne, pour la redondance. Quand il détecte un comportement malveillant ou une activité suspecte, les IP offensantes sont automatiquement bloquées - pas de questions posées, pas de seconde chance.