Si vous lisez cet article, c’est que vous avez pas eu peur avant des mises en garde. C’est bien, vous aurez le droit à l’écusson du renardeau téméraire. Ou sinon simplement voir ma solution à moi pour le matériel mis en place pour le self hosting.
Alors aujourd’hui, un article pour évoquer le matériel pour s’héberger. Je le dis de suite, les raisons des choix paraitrons surement partisanes à certains comme par exemple le système choisi comme référence 🙂 Donc ce guide n’est pas universel, il est personnel. Je commencerais par parler de mes besoins en hébergement. Mes « preférences » d’outils ensuite (Debian, X86 …)
Mes Besoins
« Ok, je vais faire du self-hosting, à mort la NSA, je suis un gros geek et si je le fais pas je suis qu’un noob ». Pour certains ca peut être une raison de se lancer dans le self-hosting.
« Open Source, Open Data, y a que ca de vrai. Le pouvoir au peuple, à mort le complot des GAFA pour contrôler les moutons que nous sommes ». Ca aussi ca en ait une autre.
Alors dans le principe, j’y vais un peu fort je caricature mais je suis pas totalement contre cet avis. J’aime la raison « par principe » sans tomber dans l’extrême et les sorties qui sentent la sueur et la bière où on ne voit pas la lumière du jour même au mois d’août.
Compromis liberté-temps
Mon premier critère est donc d’avoir une solution qui ne nécessite pas de faire de l’admin système tous les soirs en rentrant à la maison. J’ai la journée pour ca au boulot et madame apprécie moyen, sans compter que bon, via le boulot je sais qu’il y a mieux que faire sans arrêt la même chose.
Bref une solution automatisée au possible, autonome et facile à maintenir. Ok pour lancer une mise à jour de temps en temps même très régulièrement, pas ok pour relancer des services quotidiens ou les sauvegardes.
NB : Sur le point des relances de service et vérification de fonctionnement, j’en reparlerais plus tard mais Jeedom se prête bien au jeu. Via Nagios Checks et SSH Commander, vous avez une supervision avec automate intégré. Service qui tombe ? Il le relance.
Donc ce premier besoin écarte du choix tout ce qui serait LFS, Slackware ou même services à compiler sans autre choix. Exemple de critères qui en découlent :
- RAID Linux pour son côté universel non lié à un contrôleur
- Sauvegarde automatisée du système et de la base quotidiennne sur disques RAID
- Favoriser les applications en package pour le côté pratique
- Superviser et informer sur les applications installées
- Côté matériel éviter les trucs exotiques qui dès l’install vous posent des soucis (PandaLatte par exemple ou autres cartes exotiques)
Stockage
Alors pour beaucoup, le stockage à la maison ca veut dire NAS. Mais aussi Synology. Pas pour moi, pourtant j’ai besoin de stockage mais je veux pas d’un deuxième serveur. Car oui un NAS si on reprend la définition Network Attached Storage. Donc c’est juste mettre à dispo du stockage. Donc tout serveur avec du disque peut mettre à dispo sur le réseau via Samba, NFS, DLNA ..
Pour moi, le stockage j’ai pas besoin de « beaucoup ». La vidéothèque et audiothèque est pas énorme. Les documents et photos de madame sont assez nombreux en revanche. Au total ca pèse aujourd’hui environ 1.2To.
Mes critères relatifs au stockage sont :
- Données sur un RAID 1 Linux avec supervision de l’état du RAID (Jeedom encore gràce à Nagios, ca marche fort je l’ai assez constaté)
- Fournir du NFS (pas de Samba chez moi, n’ayant pas de Windows « ca sert à rien », même pour Kodi c’est déconseillé vu la proportion de meta data dans le flux vous pouvez saturer un lien réseau en streaming avec ce protocole alors qu’en NFS ca passera)
- Un agent de synchronisation des fichiers aussi bien à la maison qu’à l’extérieur, sur PC que sur Android (traduction pour après : Nextcloud)
Services hébergés
Ce point là aussi est un peu important, que souhaitez vous héberger exactement ? Tout, rien, juste la domotique, partage de fichiers …
Parcequ’en fonction de la réponse, ca va définir votre solution technique que ce soit logicielle mais surtout matérielle. Si vous souhaitez juste un serveur domotique avec quelques modules, ok un Pi 3 c’est parfait. Si vous voulez faire du stockage en plus et de la vidéo surveillance, attention ca consomme des ressources.
Alors là aussi j’ai pas pris le parti de tout héberger (comme les mails par exemple) mais j’y reviendrais peut être en retournant à Yunohost.
Donc comment je considère « self hosting » ou « service cloud » ?
- Tout ce qui est service temps réel : cloud. Exemples : mails, messagerie instantanée, réseau social (beurk mais bon). Pourquoi ? car si ca tombe, ca commence à grogner à la maison 🙂 et puis ca coupe du monde. Alors que le cloud c’est un service pro et à peu près toujours fonctionnel
- Tout ce qui est utilisé majoritairement à la maison : self-hosted. Exemples : médiathèque. Pourquoi ? car je trouve ca justement du gachis de consommer la bande passante de la connexion pour diffuser de la musique à la maison. Après oui ca nécessite de tout avoir en local, donc les riper etc. Mais c’est un moindre mal. Et ca n’empêche pas de consommer du service cloud (Youtube, Deezer par exemple) mais sans internet on a de la ressource.
- Tout ce qui est données personnelles : self-hosted tant que possible. Les photos, les documents bancaires, juridiques etc. Pas trop envie de partager ca. Oui oui « parano » si vous voulez, mais si vous voyez le fonctionnement de certaines entreprises, clairement la grande surveillance c’est pas un mythe.
Ma solution
Matériel
Pour la solution matériel, je souhaite utiliser du matériel basé sur du X86. Pourquoi ? Et bien parceque ca reste le plus répendu et qu’on prend pas le risque de faire « chouette y a un paquet deb, à flute y a pas pour arm ». Ca c’est le premier critère. Le deuxième c’est que dotdeb n’a que du X86 en dépot. Donc voilà, à part le X86 sinon y a Raspberry qui est assez universel aujourd’hui. Mais tout ce qui est Orange Pi et autres cartes arm64, pas en tant que socle chez moi.
Mis à part ca, il faut du costaud en puissance, par confort déjà et parcequ’au final il y a quelques applications à faire tourner. Alors oui « un pi c’est assez ca PEUT faire tourner tout ca » c’est vrai, avec une certaine limite de confort et de capacité. Faire tourner Jeedom : oui, faire tourner Nextcloud : oui, faire tourner Zoneminder : oui, faire tourner les 3 ensembles : bof et surement pas en mode WAF qui répond.
Pour ca y a les NUC d’Intel et biensur les « clones » ou variantes chinoises comme Hystou.
Serveur
Aujourd’hui, à choisir en ayant le temps, je prendrais un Hystou pas seulement pour le prix mais parcequ’il dispose de plus de ports USB, et oui détail idiot mais important suivant ce qu’on branche.
Sinon en comparaison ca donne :
- Prix : 350€ le Hystou i3, on peut avoir une config NUC i3 Gen6 avec disque et mémoire pour 450€ environ (même moins car on peut ne pas prendre le Gen6, ne pas avoir un disque système de 128Go … et attention le NUC sera garanti en France, point important)
- Look : alors y a pas photo, le NUC est joli et sera toléré par madame même sur un buffet ou à côté de la TV, le Hystou … il sera bien dans une armoire 🙂
- Qualité : je ne sais pas quelle mémoire ou disque il y a dans Hystou et ca reste des parties importantes pour les performances.
- USB : donc comme indiqué 5 ports sur Hystou contre 3 sur le NUC, ca c’est très important aussi car 3 ca va vite demander un Hub USB
Stockage
Alors pour le stockage il me faut 2To en RAID1 mais pas de RAID matériel, c’est mdadm aux commandes. Donc 2 disques et j’ai donc recu la baie Orico. Ca me va pour le moment à deux défauts prêts :
- Ventilateur allumé, on l’entend bien
- Pas de remontée de la température via hddtemp apparemment leur chipset le gère pas (donc en combo avec le premier défaut c’est génant)
Du coup je vais tenter en coupant le ventilateur (y a un interrupteur) et on verra. Je regarde si d’autres références existent.
Système
Alors la solution la plus « simple » serait quand même Yunohost. Mais pour économiser quelques services à l’époque j’étais repassé sur un socle nu. Pas besoin du LDAP, mail et XMPP. Demain les enfants grandissants, le LDAP redeviendra surement une exigence (vu que les apps ont une bonne intégration c’est plutot pratique)
Mais donc sinon ca donne quoi alors ? Un ESX avec une VM pour chaque app ? Nope, à l’ancienne chez moi. Donc :
- Debian Stretch AMD64 (le malade c’est pas la stable, oui oui je sais, mais bientôt bientôt :D)
- Le dépot Dotdeb. Alors ca c’est pas forcément nécessaire mais c’est un réflexe car ils sont au taquet sur les versions récentes de Nginx, PHP, Redis (bon ok Redis je m’en sers pas à la maison) Donc bien que PHP7 soit déjà en Stretch, au moins plus tard les dépots seront mis à jour.
- Le dépot MariaDB. Pareil, MariaDB est présente par défaut en Stretch mais comme ca demain facile de mettre à jour.
Applications
En applications il y a biensûr avant tout le socle Nginx+PHP-FPM7+MariaDB pour faire tourner toutes les apps webs PHP et les reverse proxy pour les autres. Et en liste ca donne :
- Jeedom (ah bon, sérieux ??) pour la domotique et la supervision du coup
- Nextcloud pour la synchronisation des fichiers, les calendriers, contacts, todo list et RSS !
- Shellinabox, s’installe via un paquet Debian, reverse proxy ok
- Subsonic principalement pour l’accès distant à la musique (navigateur web et android), s’installe via un paquet Debian, reverse proxy ok
- Sickrage/Transmission, s’installe via un paquet Debian pour Transmission, reverse proxy ok
- Logitech Media Server, s’installe via un paquet Debian, pas de reverse proxy
- reverse proxy Kodi
- BubbleUPNP actuellement en test par rapport à LMS (je n’utilise pas la synchro de LMS finalement)
- serveur NFS pour Kodi principalement
- serveur MiniDLNA pour BubbleUPNP
Je reviendrais sur chaque application indépendamment pour son installation, mais à part Nextcloud, Jeedom, Sickrage, BubbleUPNP tout le reste c’est du paquet Debian. Donc facile (et même les autres c’est facile)
Sécurité
Le système est sauvegarder via un cron quotidien. D’abord dump de toutes les bases puis rsync. C’est ce que j’ai utilisé quand mon disque SSD à lacher pour tout réinstaller rapidement.
Ensuite les services sont supervisés par Jeedom qui les relance si besoin.
En plus du RAID1, le fait d’être en baie externe me permettra de passer sur un autre serveur plus facilement en cas de défaillance, sans matériel spécifique. Même si je cherche donc un autre matériel pour tester en remplacement qui soit silencieux et laisse remonter la température (sans passer par 2 disques avec autant de prises USB)
Pour finir biensur tout cela est sur onduleur APC.
Conclusion et évolutions
Voilà c’est ma configuration et qui me permet une autonomie assez conséquente sans trop de risques ni consommer trop de temps. Du temps j’en passe assez dessus pour Jeedom. Non pas que Jeedom nécessite du temps à utiliser mais pour améliorer les plugins et en offrir toujours plus ca oui 🙂
Prochaine évolution ca sera d’avoir un serveur de secours. La cible en matériel est l’Udoo X86. Et oui encore un X86 ca sera plus simple. Surtout logiquement il est aussi HDMI CEC donc pourras servir de Kodi permanent. Le reste ca sera une solution de backup en attente pour reprendre le relais de Jeedom principalement en cas de défaillance du premier. Je vous expliquerais tout ca, pour le moment le dessin est dans ma tête à peine sur tableau blanc.
Entre tout mettre sur la même machine (à l’ancienne) ou tout séparer dans des VM (le gâchis de ressource), j’ai un autre compromis: les containers LXC. Avec proxmox. Sur la même plateforme hardware (NUC), je sépare les divers services et si besoin est je peux démarrer un nouveau container pour tester les nouvelles versions ou d’autres applis. Sinon la répartition entre auto-hébergé et le « cloud », 100% d’accord. C’est d’ailleurs pour cette raison que j’utilise jeedom. La domotique qui dépend de X ou Y, non.
LXC je l’utilisais y a encore un an (Yunohost était un container) mais les upgrades de distrib du socle m’ont fait mal. Du coup pour tout ce qui est « constant » je laisse en installé classique. LXC je m’en servirait surement plus pour un Jeedom de dev (mouarf pas drole y a la prod pour ca) ou un truc à tester. Rapport à ne pas avoir de truc qui consomme d u temps
Ca fait 5 ou 6 ans que j’utilise proxmox et c’est super stable…
Ahh!!! Je rêve de pouvoir faire du selfhosting, mais depuis 2007, je ne dépasse pas les abonnement ADSL de max 1.2Mb, et là, c’est pas possible. vivement le THD dans les petites communes (payé par nos deniers 😀 ) Viens aussi la peur de tout perdre, si ta maison brûle (ou cambriolage ou autre), il faut avoir un pote qui fait la même chose que toi, dédier un disque pour toi chez lui. Là on sécurise.
Il y a la box 4G de Bouygues qui peut aider quand t’es couvert. Car la bande passante en montée est pas mal. J’ai eu du mal à m’y faire quand je suis repassé du cable à l’ADSL mais ca se fait. Mais oui je préférais quand j’étais en cable.
Excellent et très intéressant, merci ! Sauf erreur, je n’ai rien vu concernant la partie interconnexion. Pourrais-tu nous donner quelques détails sur les choix et solutions faits (sécurisation notamment).
J’en parlerais plus tard. Mais j’ai pas d’usine sécuritaire, c’est assez simple. Précautions de base pour que les vilains pirates préfèrent aller voir ailleurs. Pas de http ouvert. fail2ban en place. En évolution je voudrais passer en VPN pour ne pas ouvrir de l’extérieur. Ca c’est quelque chose que j’ai pas encore testé.
Merci pour ton retour. De mon côté, je dispose d’une interco fibre avec Free et j’envisage l’auto-hébergement. Du coup je réfléchis aux options possibles: Freebox en mode routage avec DMZ, freebox en mode bridge avec une solution de sécurité en complément, etc … Matière à réfléchir donc 😉
Oui et sans oublier le routeur. Là j’ai testé le dernier Xiaomi, top pour un usage lambda (y a même le VPN via l’app) et suffisant je dirais pour 90% des usages. Mais je vais passer sur un Asus je pense. Je regarde pour investir courant avril. C’est là que je mettrais en place le VPN.