Home Lab Optimisé

Matériel utilisé

  • Raspberry Pi : Services légers (Pi-hole, Gatus).
  • NAS Synology : Stockage, médias (Emby, Transmission), et gestion documentaire (Paperless-ngx).
  • PC Proxmox : Virtualisation des services gourmands (VM/LXC).

Architecture Logicielle

1. Raspberry Pi

  • Pi-hole : Bloque les pubs et traqueurs.
  • Gatus : Surveille la disponibilité des services.

2. NAS Synology (DSM)

  • Médias : Emby, Transmission, SickChill, NZBGet, FileBot.
  • Documents : Paperless-ngx (via Docker).
  • Sauvegarde : Duplicati.

3. Proxmox (PC Principal)

Conteneur/VMApplicationsRôle
LXC 1Home AssistantAutomatisation domotique.
LXC 2Frigate + OllamaAnalyse vidéo (GPU) + IA locale.
LXC 3MQTT Explorer + Prometheus + DashySupervision et monitoring.
LXC 4Firefly IIIGestion financière.
VM 1pfSenseRouteur/firewall (optionnel).
VM 2Serveur Web (WordPress)Site web/blog.
VM 3JenkinsIntégration/déploiement (CI/CD).

Appareils Connectés (IoT)

  • Google Nest et Smart TV :
    • Isolés dans un VLAN IoT pour la sécurité.
    • Interagissent avec :
      • Home Assistant (commandes vocales, scénarios).
      • Emby (streaming depuis le NAS).
    • Contrôlés via Pi-hole pour bloquer les pubs.

Bonnes Pratiques

  • Réseau :
    • VLANs séparés (Trusted, IoT, Web, Media).
    • Pare-feu (pfSense) pour isoler les flux.
  • GPU :
    • Partage entre Frigate et Ollama via Docker dans un LXC dédié.
  • Sauvegardes :
    • Backuper Paperless, WordPress, et configurations Docker.

Schéma Réseau & Applications


graph TB
  %% Matériel
  Internet --> pfSense(VM1 - pfSense)
  pfSense --> RPi[Raspberry Pi]


  subgraph "NAS Synology"
    NAS[(DSM)] --> Emby
    NAS --> Paperless
    NAS --> Transmission
    NAS --> Duplicati
  end

  subgraph "Proxmox (PC Principal)"
    %% VLANs
    pfSense --> VLAN10[VLAN 10 - Trusted]
    pfSense --> VLAN20[VLAN 20 - Web]
    pfSense --> VLAN30[VLAN 30 - IoT]
    pfSense --> VLAN40[VLAN 40 - Media]

    %% Conteneurs/VM
    VLAN10 --> LXC1(LXC1 - Home Assistant)
    VLAN10 --> LXC2(LXC2 - Frigate + Ollama)
    VLAN10 --> LXC3(LXC3 - MQTT Explorer + Prometheus + Dashy)
    VLAN10 --> LXC5(LXC5 - Firefly III)

    VLAN20 --> VM2(VM2 - WordPress)
    VLAN20 --> VM4(VM4 - Jenkins)

    VLAN30 --> GoogleNest(Google Nest)
    VLAN30 --> SmartTV(Smart TV)

    VLAN40 --> NAS
  end

  %% Légende
  style VLAN10 fill:#d5f5e3,stroke:#27ae60
  style VLAN20 fill:#d6eaf8,stroke:#3498db
  style VLAN30 fill:#fadbd8,stroke:#e74c3c
  style VLAN40 fill:#fdedec,stroke:#f39c12

Légende Détaillée

ÉlémentDescription
🟠 pfSense (VM1)Routeur/firewall gérant les VLANs et la sécurité.
🟢 Raspberry PiExécute Pi-hole (DNS) + Gatus (monitoring).
🔵 NAS SynologyStockage central + applications média (Emby) et docs (Paperless).
VLAN 10 (Trusted)Services critiques : HA, Frigate, Ollama, monitoring.
VLAN 20 (Web)Services exposés : WordPress, Jenkins.
VLAN 30 (IoT)Appareils connectés (Google Nest, Smart TV) isolés pour sécurité.
VLAN 40 (Media)Accès aux médias (Emby) depuis la Smart TV.

Flux Clés à Retenir

  1. Google Nest/Smart TV → Communiquent avec Home Assistant (VLAN 10) via règles firewall précises.
  2. Frigate (VLAN 10) → Envoie les alertes à Home Assistant et Smart TV (via VLAN 30 autorisé).
  3. WordPress/Jenkins (VLAN 20) → Accessibles depuis Internet (port forwarding contrôlé par pfSense).
  4. Paperless (NAS) → Consommé par l’utilisateur via interface web (protégée par mot de passe).

Exemple de Configuration pfSense (Règles VLAN 30 → VLAN 10)

ActionSourceDestinationPortDescription
✅ AllowVLAN30LXC1 (HA)8123Accès à l’interface HA.
✅ AllowVLAN30LXC2 (Frigate)5000Flux vidéo pour affichage TV.
🚫 BlockVLAN30VLAN10*Bloquer tout autre accès.

Bonnes Pratiques

Pour les Nest

  • Mise à jour firmware : Vérifiez régulièrement via l’app Google Home.
  • Isolation : Bloquez l’accès aux autres VLANs sauf pour :
    • Home Assistant (port 8123).
    • MQTT Explorer (si utilisé, port 1883).

Pour la Smart TV

  • DNS personnalisé : Redirigez-la vers Pi-hole (Raspberry Pi) pour bloquer les pubs.
    • Dans pfSense : DHCP → Option DNS = IP du Pi-hole.
  • Désactivez le suivi : Désactivez ACR (Automatic Content Recognition) dans les paramètres TV.

Intégration de la Smart TV

Configuration Réseau

  • VLAN : Même VLAN IoT (30) que les Nest pour simplifier.
  • Règles pfSense :
    • Autorisez la TV à accéder à :
      • Internet (streaming Netflix/YouTube).
      • Emby/Jellyfin (NAS) via le VLAN Media (ex: VLAN 40 si existant).

Interaction avec Home Lab

  • Pour Emby/Jellyfin (NAS) :
    • Montez un dossier partagé Synology en SMB/NFS accessible à la TV.
    • Exemple de configuration Emby :yamlCopy# docker-compose.yml (NAS) volumes: – /volume1/medias:/media
  • Contrôle via Home Assistant :
    • Intégrez la TV via HDMI-CEC ou API spécifique (ex: Samsung Tizen, LG webOS).
    • Automatisations possibles :
      • Allumer/éteindre la TV quand Frigate détecte un mouvement.
      • Afficher les caméras sur la TV via un dashboard.

Intégration des Google Nest (Assistant Google)

Configuration Réseau

  • VLAN Recommandé : Isolez-les dans un VLAN IoT (ex: VLAN 30) pour limiter l’accès au reste du réseau.
    • Pour pfSense (VM1) :CopyCréez un VLAN 30 → Interface dédiée → Règles de firewall : – Autoriser OUT vers Internet (HTTPS/DNS). – Bloquer l’accès aux autres VLANs (sauf exceptions comme Home Assistant).

Communication avec Home Assistant (LXC1)

  • Via le protocole local :
    • Activez Google Assistant SDK dans Home Assistant.
    • Utilisez Nabu Casa (ou un domaine personnalisé avec HTTPS) pour la liaison sécurisée.
  • Scénarios :
    • Contrôle des lumières/prises via commandes vocales.
    • Synchronisation avec vos calendriers/rappels.

Reflexion Data Pool

je poursuis la reflexion sur la repartition de disques.

Je m’arrete sur une repartition de ce type:

1-Serveur

dataset regroupant tout ce qui concerne le serveur

  • Le system (proxmox / ubuntu serveur / kubernetes / true nas)
  • les params (docker / vm)

2-NetLife

replication des site web et depot de données sur le Net

5-Documents

tout les documents , creation , code source , modele , papier , reference . regroupé dans 4 categorie

  • Active : projet/repertoire qui sont en cours
  • Retention : projet/repertoire consultable ou de reference
  • Archive : n’est plus utilisé mais encore conserver (repertoire zipper)
  • IceStorage : conservation long repertoire zipper

8-Photo

Toutes les photos , y compris le dataset 00-CheckIn on sont rassemble en automatique les photo des telephone

9-VideoClub

  • cyclops/1-Serveur
  • cyclops/1-Serveur/10-System
  • cyclops/1-Serveur/20-Param
  • cyclops/2-NetLife
  • cyclops/2-NetLife/50-WebSite
  • cyclops/2-NetLife/60-Git
  • diablo/5-Documents
  • diablo/5-Documents/10-Active
  • diablo/5-Documents/50-Rentention
  • diablo/5-Documents/80-Archive
  • diablo/5-Documents/90-IceStorage
  • diablo/8-Photo
  • diablo/8-Photo/00-CheckIn
  • diablo/8-Photo/50-Phototheque
  • magneto/9-VideoClub
  • magneto/9-VideoClub/10-Film
  • magneto/9-VideoClub/20-Film_Vf
  • magneto/9-VideoClub/30-Series
  • magneto/9-VideoClub/40-Anime
  • magneto/9-VideoClub/90-Insanity

Reorg DataPool

Sur les 5 disk , 3 sont interne et 2 sont en USB

sudo fdisk -l | grep "Disk /"
sudo blkid -o list

Les 2 usb (500 et 300 Go) serve de tempon pour reorganiser le system de fichier.

Comme je n’ai que des disques unique je ne fais pas de redondance (Raid)

Diablo 1To

0,850 Redondance

  • 0.500 Backup Photo
  • 0.003 Backup Git
  • 0.100 ~Backup System
  • 0.050 ~Backup SiteWeb
  • 0,200 ~Backup DataPool

0,150 IceStorage

  • 0.020 ~IceStorage

Magneto 2To

VideoClub

  • 1.160 Videoclub
  • 0.168 VideoclubSerie
  • 0.013 VideoclubAnime
  • 0.306 VideoClubVF

Cyclops 4To

DataPool

  • 0.004 Mediarack
  • 0.011 Home_Desk
  • 0.111 Locker
  • 0.002 Office
  • 0.009 Kitchen
  • 0,014 OldMail
  • 0.030 ~DeportEspaceProjet
  • 0.200 ~PhotoCheckIn

Point de sauvegarde post transformation systeme

Avant de passer a une installation de proxmox sur le disk systeme du serveur je lance un timeshift.

[david@legion:/mnt/magneto/warehouse]$ sudo timeshift --create --comments "prepare Proximox" --tags M

/dev/sdd1 is mounted at: /run/timeshift/backup, options: rw,relatime,stripe=32752

------------------------------------------------------------------------------
Creating new snapshot...(RSYNC)
Saving to device: /dev/sdd1, mounted at path: /run/timeshift/backup
Linking from snapshot: 2021-09-24_02-00-01
Synching files with rsync...
Created control file: /run/timeshift/backup/timeshift/snapshots/2021-10-19_15-45-32/info.json
RSYNC Snapshot saved successfully (392s)
Tagged snapshot '2021-10-19_15-45-32': ondemand
------------------------------------------------------------------------------
Maximum backups exceeded for backup level 'monthly'
[david@legion:/mnt/magneto/warehouse]$ sudo timeshift --list

/dev/sdd1 is mounted at: /run/timeshift/backup, options: rw,relatime,stripe=32752

Device : /dev/sdd1
UUID   : 70bb9f29-b0b6-41d6-844f-0d47cfc1d596
Path   : /run/timeshift/backup
Mode   : RSYNC
Status : OK
4 snapshots, 2.7 TB free

Num     Name                 Tags  Description
------------------------------------------------------------------------------
0    >  2021-07-24_02-00-01  M
1    >  2021-08-24_02-00-01  M
2    >  2021-09-24_02-00-01  M
3    >  2021-10-19_15-45-32  M     prepare Proximox

la sauvegarde est faite

Serveur 13 hardware and filesystem

La serveur crée il y a plusieurs années fonctionne avec Ubuntu.

Le materiel :

AM1B-ITX
64KiB BIOS
4GiB Mémoire Système
4GiB DIMM DDR3 Synchrone Unbuffered (Unregistered) 800 MHz
256KiB L1 cache
2MiB L2 cache
AMD Athlon(tm) 5350 APU with Radeon(tm) R3

4 hard drive :

storage (System)
disk 120GB KINGSTON SA400S3
volume 111GiB Volume EXT4

Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal


storage
disk 2TB WDC WD20EZRX-22D
volume 1863GiB Volume EXT4

/dev/sdb1 /mnt/magneto

mediarack
videoclub
warehouse


storage
disk 1TB WDC WD10EZRX-00D
volume 931GiB Volume EXT4

/dev/sdc1 /mnt/diablo

kitchen
locker
videoclubSeries


storage
disk 4TB WDC WD40EZRZ-00G
volume 3726GiB Volume EXT4

/dev/sdd1 /mnt/cyclops

‘Film VF’
home-desk
office
photo
‘Series VF’
timeshift -> /90-warehouse/backup_system/timeshift
videoclubAnime

Les liens base de repertoire :

10-home-desk -> /mnt/cyclops/home-desk
20-photo -> /mnt/cyclops/photo
23-videoclub -> /mnt/magneto/videoclub
30-office -> /mnt/cyclops/office
40-locker -> /mnt/diablo/locker
50-kitchen -> /mnt/diablo/kitchen
70-mediarack -> /mnt/magneto/mediarack
80-photocopie -> /mnt/cyclops/home-desk/80-Photocopie
82-source_code -> /mnt/diablo/kitchen/source_code
90-warehouse -> /mnt/magneto/warehouse

Les repertoires Warehouse

backup_git
backup_home-desk -> /mnt/colossus/home-desk
backup_kitchen -> /mnt/diablo/kitchen/
backup_locker -> /mnt/diablo/locker/
backup_office -> /mnt/colossus/office/
backup_photo -> /mnt/colossus/photo/
backup_sickrage
backup_system
backup_varwwwhtml
backup_wordpress
storage_html
storage_mail
storage_mysqlbackup
storage_smartphone
storage_usbkey