---
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](https://upsnap.aaanh.com) |
| **GitHub** | [seriousm4x/UpSnap](https://github.com/seriousm4x/UpSnap) |
| **License** | MIT |
| **Langage** | Go (Svelte embarqué) |
| **Étoiles** | 2 260 ⭐ |
| **Dernière MAJ** | 2026-05-08 |
| **Catégorie** | [[cat-networking\|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é)

```yaml
# 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)

```bash
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) :

```bash
# 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) :

```bash
# 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

- [Site officiel](https://upsnap.aaanh.com)
- [Documentation](https://github.com/seriousm4x/UpSnap/wiki)
- [GitHub](https://github.com/seriousm4x/UpSnap)
- [Docker Hub](https://hub.docker.com/r/seriousm4x/upsnap)
- [Reddit /r/selfhosted discussion](https://reddit.com/r/selfhosted/comments/upsnap)

## Pages Liées

- [[cat-networking|Networking]] — Catégorie parente
- [[cat-dashboard|Dashboard]] — Catégorie transversale
- [[app-home-assistant|Home Assistant]] — Intégration WOL native
- [[app-wireguard|WireGuard]] — Pour accès distant sécurisé
- [[app-caddy]] ou [[app-traefik]] — Reverse-proxy HTTPS
- [[recettes-docker-compose|Recettes Docker Compose]]
- [[homelab-economies-energie|Homelab & énergie]] — Optimisation consommation
