Aller au contenu
Tous les projets
v2 · 2026

Verkko

Scanner de réseau pour homelab : il découvre en continu les appareils de chaque réseau, les compare à mon inventaire, modifiable depuis l'interface, et signale les anomalies. Il tourne sur le NAS, derrière un mot de passe.

Année
2026
Cadre
Outil personnel pour mon homelab
Technologies
  • Python
  • POO
  • Réseau
  • SQLite
  • Prometheus
  • Sphinx
Tableau de bord de Verkko v2 : compteurs d'appareils, une VM ajoutée automatiquement à l'inventaire, et une liste d'appareils avec leur type détecté, une MAC aléatoire et des boutons pour ajouter un inconnu à l'inventaire

01 · Contexte

Le défi

Besoin concret : dans un homelab qui grandit (un NAS, un hyperviseur Proxmox, une dizaine de VM, des objets connectés), j'oubliais quelle IP fixe j'avais donnée à quel appareil, et la page « appareils connectés » du routeur ne connaît ni les IP fixes ni les VM. La v1 répondait à trois questions : qu'est-ce qui est en ligne, est-ce conforme à mon inventaire, et quelle IP est encore libre. Toutes les deux minutes, elle découvre les appareils de chaque réseau (en ARP sur un segment local, en ICMP et sonde TCP au-delà d'un routeur), les enrichit, puis signale les anomalies. À l'usage, la v2 a levé ses limites : ajouter un appareil inconnu ne demande plus d'éditer un fichier sur le NAS ni de redémarrer, un portable en DHCP se déclare par sa MAC, une nouvelle VM Proxmox entre seule dans l'inventaire, et Verkko a rejoint la supervision du homelab.

02 · Architecture

Comment c'est construit

Schéma de Verkko dans le homelab : le navigateur, connecté par mot de passe ; le NAS Synology qui fait tourner Verkko, avec son inventaire en base ; le segment local lab2 vu en ARP, avec Proxmox, ses VM et les autres appareils réveillables par Wake-on-LAN ; le réseau routé lab3 sondé en ICMP et TCP à travers le routeur ; et la supervision (Prometheus, Grafana, Alertmanager vers ntfy) qui lit les métriques avec un jeton
Verkko dans le homelab : le NAS scanne le segment local en ARP et le réseau routé en ICMP et TCP, et la supervision lit ses métriques

Les points clés

  • Architecture orientée objet en couches : chaque couche ne dépend que de celles du dessous
  • Méthode de découverte choisie automatiquement par réseau : ARP, ou ICMP et sonde TCP
  • Inventaire en base, modifiable depuis l'interface ; appareils reconnus par leur MAC, y compris en DHCP
  • Détection du type d'appareil par règles, avec un niveau de confiance, et ajout automatique des VM Proxmox
  • Métriques Prometheus protégées par jeton, tableau de bord Grafana et alertes ; disponibilité par appareil qui exclut les heures où le NAS est éteint
  • Mot de passe unique haché en argon2, réveil des machines par Wake-on-LAN, documentation Sphinx et 17 fiches de décision

03 · En images

Galerie

Cliquer sur une image l'ouvre en plein écran, avec navigation entre les captures.

04 · Bilan

Ce que j'en retire

J'ai appris à structurer un vrai projet en orienté objet : des couches qui ne dépendent que de celles du dessous, des stratégies interchangeables pour la découverte et l'enrichissement, et une racine de composition qui assemble le tout et permet de remplacer n'importe quel objet dans les tests et le mode démo. J'ai aussi appris à documenter avec Sphinx : des pages en Markdown, des fiches de décision qui expliquent les choix, un glossaire, et des schémas générés par le code plutôt que dessinés à la main. Avec la v2, j'ai appris à faire évoluer un projet qui tourne déjà : revenir sur mes propres choix, comme l'inventaire en YAML remplacé par une base, et l'écrire dans une nouvelle fiche de décision plutôt que d'effacer l'ancienne.