Files
wiki/Catalogue-Self-Hosted/apps/app-upsnap.md
T
2026-06-09 18:40:21 +02:00

6.5 KiB


title: UpSnap created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, networking, wake-on-lan, wol, homelab, go, dashboard] confidence: high contested: false sources: [https://selfh.st/apps/?tag=networking, https://github.com/seriousm4x/UpSnap]

UpSnap

Wake-on-LAN web UI simple et élégante : réveillez ou éteignez à distance n'importe quelle machine de votre LAN depuis un navigateur, planifiez des extinctions automatiques, surveillez la connectivité. Le compagnon idéal d'un homelab à accès intermittent.

Métadonnée Valeur
Site web upsnap.aaanh.com
GitHub seriousm4x/UpSnap
License MIT
Langage Go (Svelte embarqué)
Étoiles 2 260
Dernière MAJ 2026-05-08
Catégorie cat-networking

Description

UpSnap est un serveur Wake-on-LAN avec une interface web soignée. Au lieu d'utiliser wakeonlan en CLI ou une app mobile douteuse, vous disposez d'un dashboard self-hosted qui liste toutes vos machines (PC, NAS, serveur, imprimante…), envoie des paquets magiques WOL, vérifie la connectivité (ping, port TCP), et permet l'extinction distante (SSH, agent) sur les OS qui le supportent.

Le cas d'usage typique : vous avez un serveur de app-jellyfin dans le salon, un NAS Synology dans le bureau, un PC gaming sous Windows. Plutôt que de les laisser tourner 24/7 (facture électrique, usure), vous les éteignez et UpSnap les réveille à la demande, depuis votre canapé, votre téléphone, ou un raccourci Home Assistant. La planification d'extinction (cron) complète le dispositif : le NAS s'éteint à 2h du matin s'il n'y a aucun client actif, se rallume 18h plus tard.

UpSnap supporte les machines Linux, Windows et macOS. Pour l'extinction distante, l'approche privilégiée est SSH + sudo shutdown (Linux/macOS) ou un agent léger sur Windows. Les paquets WOL fonctionnent en UDP broadcast sur le sous-réseau — UpSnap a besoin d'être sur le même LAN (ou routé correctement) que les machines à réveiller.

Installation

Docker Compose (recommandé)

# docker-compose.yml
services:
  upsnap:
    image: ghcr.io/seriousm4x/upsnap:4
    container_name: upsnap
    restart: unless-stopped
    network_mode: host      # nécessaire pour broadcast WOL
    environment:
      - UPSNAP_USER=admin
      - UPSNAP_PASSWORD=CHANGE...ME
      - UPSNAP_PORT=8090
    volumes:
      - upsnap-data:/app/persistent
      - /etc/localtime:/etc/localtime:ro

volumes:
  upsnap-data:

⚠️ network_mode: host est indispensable : les paquets magiques WOL sont des UDP broadcast que Docker en mode bridge ne relaie pas par défaut.

Installation manuelle (Linux)

wget https://github.com/seriousm4x/UpSnap/releases/latest/download/upsnap_linux_amd64
chmod +x upsnap_linux_amd64
./upsnap_linux_amd64 --port 8090
# Service systemd :
sudo tee /etc/systemd/system/upsnap.service <<EOF
[Unit]
Description=UpSnap WOL server
After=network-online.target

[Service]
ExecStart=/opt/upsnap/upsnap_linux_amd64 --port 8090
Restart=always
User=upsnap

[Install]
WantedBy=multi-user.target
EOF

Configuration

La configuration se fait entièrement dans l'UI web : ajout de machines avec IP, MAC, broadcast, OS. Pour l'extinction SSH (Linux) :

# Sur la machine cible (Linux), autoriser shutdown sans mot de passe :
sudo visudo
# Ajouter :
velli ALL=(ALL) NOPASSWD: /sbin/shutdown

API REST exposée (token Bearer) :

# Réveiller une machine
curl -X POST http://upsnap.local:8090/api/v1/wake/devices/42 \
  -H "Authorization: Bearer ${TOKEN}"

# Lister les machines
curl http://upsnap.local:8090/api/v1/devices \
  -H "Authorization: Bearer ${TOKEN}"

Intégrations notables :

  • Home Assistant — services wake_on_lan natif, automation à partir d'un sensor UpSnap
  • Telegram bot/wake nas depuis n'importe où (avec WireGuard en amont)
  • Grafana — visualiser uptime/historique via Prometheus exporter tiers

Alternatives

Open Source

  • wakeonlan (CLI) — référence Linux, sans UI
  • Home Assistant WOL integration — basique, sans dashboard dédié
  • Netdata + WOL script — DIY
  • OpenWRT WOL page — sur le routeur lui-même
  • php-wake-on-lan — minimaliste PHP
  • MagicPacket — script Python, pas d'UI

Propriétaire (ce que UpSnap remplace)

  • Depicus WOL — web hosted (fermé), peu fiable
  • TeamViewer Wake-on-LAN — payant, dépend de l'infra TeamViewer
  • Fing / Network Toolbox — apps mobiles avec freemium agressif
  • Wake On Lan (ch.metanet) — app mobile payante
  • Auvik WOL — inclus dans NMS entreprise

Sécurité

  • Auth obligatoire : activez user/password (ou mieux, mettez UpSnap derrière app-authentik via reverse-proxy).
  • LAN-only par design : ne jamais exposer UpSnap sur Internet. Les paquets WOL ne traversent pas les routeurs (sauf config explicite).
  • Pour accès distant : passer par un VPN (app-wireguard) ou un tunnel SSH — pas d'exposition directe.
  • HTTPS : si vous l'exposez via reverse-proxy (app-caddy/Traefik), forcer TLS.
  • Cible SSH : utiliser un compte dédié, désactiver root, restreindre /sbin/shutdown via sudoers.
  • MAC spoofing : WOL n'authentifie pas la machine. Un attaquant ayant accès au LAN peut réveiller n'importe quelle machine dont il connaît la MAC. Considérez cela.
  • Logs : activer l'audit pour tracer qui réveille quoi (utile en cas d'intrusion suspecte).
  • BIOS/UEFI : vérifier que le WOL est activé sur la cible (« Wake on LAN: Enabled » dans Power options) ET que le câble Ethernet reste alimenté en veille.

Ressources

Pages Liées