Documentation de mon homelab
Mon homelab est composé de trois machines:
- Un NAS Synology pour le stockage (Actuellement 2x2TB WDC WD20EFRX-68EUZN0)
- Un PC "multimédia" qui est utilisé sur la TV (Thinkcentre m75q / Athlon 300GE)
- Un PC serveur (i3-10100 / 24Gb DDR4 / 1to nvme)
- Un router TP Link Archer C6 (AC1200) sous OpenWRT (Pas encore mis en place)
Le serveur est un host XCP-NG (hostname rubeus
) avec deux VM principales, une dédiée aux services accessible en publique, l'autre avec les services accessible uniquement sur le réseau interne.
Il existe une troisième VM (vps
) qui est une VPS exposé à l'extérieur de façon controllée, seules certaines appli (ex: Koel, Serveur Minecraft, ...) sont sur cette VM. Elle n'est pas accessible DIRECTEMENT depuis l'extérieur, mais uniquement via un VPN qui la connecte à un VPS loué chez PulseHeberg qui lui s'occupe de faire reverse-proxy vers cette VM (Sans exposer mon IP et sans exposer de ports directement de chez moi).
Note: le serveur n'a pas de VM pour XenOrchestra avant l'installation finale, j'utilise sur mon PC une VM sur laquelle j'ai installé XOA via XenOrchestraInstallerUpdater, cela permet d'économiser de la RAM / du CPU utilisé pour autre chose. Une fois le ansible passé, XO est installé dans un container accessible sur la vm privée
Le NAS Synology possède toutes les data et expose plusieurs montage samba:
- sauvegarde (Mon espace de stockage générique ou je met un peu tout)
- iso (Mon SR d'iso pour xcp-ng)
- shares (Espace pour stocker mes films / séries / musiques / ...)
- documents (Montage utilisé pour Paperless)
- images (Montage utilisé pour Immich)
Pour la gestion des droits, j'ai mon utilisateur perso pour la connexion depuis mes machines, et des utilisateurs scopés en RO sur iso et shares pour les différents services ansi qu'un utilisateur RW pour Paperless et un Gitea, chacun n'ayant accès qu'aux shares qu'ils ont besoin.
Enfin le PC multimédia est un simple debian 12 qui accèdes aux services hébergés sur le serveur.
Ce guide note particulièrement le setup du serveur puisque le reste est basique et ne nécessite rien de spécial.
A partir de ce point la, les divers ansible vont setup tout ça.
Il faut tout de même suivre chaque page pour s'assurer la config des logiciels est complète car tout n'est pas fait dans ansible pour l'instant (e.g. config interne de Jellyfin, création de compte utilisateur, etc...)
-- Setup des apps --
- Setup XenOrchestra
- Setup Apprise (Notifications)
- Setup Jellyfin
- Setup Navidrome
- Setup Paperless
- Setup Gitea
- Setup Immich
- Setup Manyfold
- Setup JDownloader
- Setup HomeAssistant
- Setup Grafana
- Setup Koel
-- Setup sécu --
A partir de ce point la, il s'agît d'informations sur l'utilisation usuelle des VMs et du serveur ainsi que comment faire du disaster recovery.
HA à sa propre partie de ce wiki car il a beaucoup de customisations.
Chose que je vais potentiellement ajouter après que tout soit fonctionnel
- Authentik / Authelia: Active Directory / OAuth
Choses que j'ai fait mais pas encore dans le ansible / documenté (pas bien!)
- Migration vers forgejo (+ runner-ish)