mirror of
https://github.com/seriousm4x/UpSnap.git
synced 2026-03-31 06:24:09 -04:00
d49210370977cb6454a93347e5a0ea9615f604c9
UpSnap
A simple wake on lan app written with Django, Django-Channels (websockets), Celery, Redis and nmap.
✨ Features
- Dashboard to wake up devices with 1 click
- Set timed wake events via cron
- Scan devices for open ports you assigned
- Discover devices by scanning network
- Visualization of pings
- Notifications on status changes
- Devices only get pinged when there are 1 or more visitors
- Dark/light mode via preferes-color-scheme
- Docker images for amd64, arm64, arm/v7
📸 Screenshots
| Dark | Light |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
🐳 Run your own instance
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.
Databases
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
🔧 Available Env Vars
| env var | type | info |
|---|---|---|
| DJANGO_SUPERUSER_USER | Str | Username for /admin backend |
| DJANGO_SUPERUSER_PASSWORD | Str | Password for /admin backend |
| DJANGO_SECRET_KEY | Str | You can create your own by running docker exec upsnap_django bash -c "python manage.py shell -c 'from django.core.management import utils; print(utils.get_random_secret_key())'" |
| DJANGO_DEBUG | Bool | Sets django to run in debug mode |
| DJANGO_LANGUAGE_CODE | Str | Language code in RFC 3066 (e.g. "en-us" or "de") |
| DJANGO_TIME_ZONE | Str | e.g. Europe/Berlin |
| DJANGO_PORT | Int | Web port |
| REDIS_HOST | Str | The ip redis runs on |
| REDIS_PORT | Int | The port redis runs on |
| DB_TYPE | Str | Database type. Can be "postgres", "mysql" or "sqlite" |
| DB_HOST | Str | The ip the database runs on |
| DB_PORT | Str | The port the database runs on |
| DB_NAME | Str | Database name |
| DB_USER | Str | Database user |
| DB_PASSWORD | Str | Database password |
| PING_INTERVAL | Int | Time between pings |
| ENABLE_NOTIFICATIONS | Bool | Show notifications in the bottom right corner |
📝 Other infos
- The django 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.
- Firefox 92 and below: The datetime picker for wake events will be available with version 93 and above. see here
Languages
Go
48.1%
Svelte
46.9%
TypeScript
3.2%
JavaScript
0.9%
Dockerfile
0.4%
Other
0.4%





