Initial vault setup
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user