mirror of
https://github.com/seriousm4x/UpSnap.git
synced 2026-03-31 06:24:09 -04:00
c628832632abff059bd1bb7edca0f3cd2c34fc24
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 date and time to schedule a wake event
- Open port scan for VNC, RDP and SSH
- Visualization of incoming websocket messages
- Notifications on status changes
- Devices only get pinged when there are 1 or more visitors
- Dark/light mode via preferes-color-scheme
- Settings page to add/delete device and show system infos
- 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%





