Sign inSign up

hthouzard/watchyourlanwidget

By hthouzard

•Updated 4 months ago

Image
0

850

hthouzard/watchyourlanwidget repository overview

⁠WatchYourLan Widget

Widget customapi pour homepage.dev⁠ affichant les compteurs de périphériques réseau issus de WatchYourLan⁠.

⁠Pourquoi ce projet ?

Le widget customapi de homepage.dev extrait des valeurs d'un JSON via des expressions JSONPath simples, mais il ne sait pas compter des éléments filtrés dans un tableau. Ce micro-service fait le travail en amont : il interroge l'API WatchYourLan et retourne un objet JSON avec les 4 compteurs prêts à consommer.

⁠Métriques exposées

ChampDescription
onlinePériphériques actuellement en ligne (Now = 1)
knownPériphériques connus (Known = 1)
offlinePériphériques hors ligne (Now = 0)
unknownPériphériques inconnus (Known = 0)

⁠Stack technique

  • Python 3.12
  • FastAPI — framework web
  • uvicorn — serveur ASGI
  • httpx — client HTTP async
  • Docker — conteneurisation

⁠Prérequis

  • Docker + Docker Compose
  • WatchYourLan déployé et accessible sur le réseau

⁠Déploiement

⁠Sur un serveur / PC (depuis l'image Docker Hub)
# Cloner le dépôt
git clone <url-du-depot>
cd WatchYourLanWidget

# Adapter l'URL de WatchYourLan si nécessaire (éditer docker-compose.yaml)
# Par défaut : http://192.168.1.114:8840/api/all

# Lancer le conteneur (l'image supporte amd64 et arm64)
docker compose up -d

# Vérifier
curl http://localhost:8841/stats
⁠Publication d'une nouvelle version (depuis la machine de développement)

Le script publish.sh génère une image multi-plateforme (linux/amd64 + linux/arm64) compatible avec les PC x86 et les Raspberry Pi.

Prérequis buildx (une seule fois) :

docker run --privileged --rm tonistiigi/binfmt --install all
docker buildx create --use --name multiarch

Publier :

./publish.sh 1.0.1

Réponse attendue :

{
  "online": 7,
  "known": 22,
  "offline": 20,
  "unknown": 5
}

⁠Configuration du widget dans homepage.dev

Dans votre fichier services.yaml (ou équivalent) :

- WatchYourLan:
    icon: mdi-lan-connect
    href: http://192.168.1.114:8840
    widget:
      type: customapi
      url: http://<HOST_IP>:8841/stats
      refreshInterval: 60000
      mappings:
        - field: online
          label: En ligne
          format: number
        - field: known
          label: Connus
          format: number
        - field: offline
          label: Hors ligne
          format: number
        - field: unknown
          label: Inconnus
          format: number

Remplacez <HOST_IP> par l'adresse IP de la machine qui héberge ce conteneur.

⁠Personnalisation

Pour changer l'URL de l'API WatchYourLan sans reconstruire l'image, modifiez la variable d'environnement dans docker-compose.yaml :

environment:
  - WATCHYOURLAN_URL=http://mon-serveur:8840/api/all

puis relancez avec docker compose up -d.

Tag summary

Content type

Image

Digest

sha256:d3e4eb327…

Size

49.7 MB

Last updated

4 months ago

docker pull hthouzard/watchyourlanwidget