A simple wake on lan app written with Svelte, Django, Django-Channels (websockets), Celery, Redis and nmap.
- Dashboard to wake up devices with 1 click
- Set timed wake and shutdown events via cron
- Add custom ports to devices which will be scanned
- Discover devices by scanning network
- Notifications on status changes
- Devices only get pinged when there are 1 or more visitors
- Dark/light or system prefered color scheme
- Docker images for amd64, arm64, arm/v7
Dark | Light |
---|---|
There are 3 example docker-compose files to choose from. The simplest is docker-compose-sqlite.yml.
The website will be available at localhost:8000. If you run it on a different pc, it will be http://<your-ip>:8000
. You can change the port in the docker-compose file.
If you're using a reverse proxy, make sure to set BACKEND_IS_PROXIED
to true in docker-compose. Set your reverse proxy to the FRONTEND_PORT
and set /wol/
to BACKEND_PORT
.
Caddy example
upsnap.example.com {
reverse_proxy localhost:8000
reverse_proxy /wol/ localhost:8001
}
Upsnap supports 3 different databases. Postgres, MySQL and SQLite. If you already have an existing database you want to use, delete the database container from the compose file. Always make sure to set the correct database type environment variable, e.g. DB_TYPE=mysql
There is a partly working solution in the issue here. Windows has problems with docker networking mode host, which breaks network scan. Sending wol packages works though.
- The app container needs to run in host network mode to send the wakeonlan command on your local network. Therefore all other containers also need to run in host network mode. I don't like it but there is no way around.