## ✨ Features
- Dashboard to wake up devices with one click
- Set timed wake and shutdown events via cron
- Add custom ports to devices which will be pinged
- Discover devices by scanning network
- Dark/light or system prefered color scheme
- [Docker images](https://github.com/seriousm4x/UpSnap/pkgs/container/upsnap) for amd64, arm64, arm/v7
## 📸 Screenshots
| Dark | Light |
| ------------------------------ | ------------------------------- |
|  |  |
|  |  |
|  |  |
## 🚀 Run the binary
Just download the latest binary from the [release page](https://github.com/seriousm4x/UpSnap/releases) and run it `./upsnap serve --http=0.0.0.0:8090`.
For more options check `./upsnap --help` or visit [PocketBase documentation](https://pocketbase.io/docs).
If you need network discovery, make sure to have `nmap` installed and run upsnap as root/admin.
## 🐳 Run in docker
Alternatively use the [docker-compose](docker-compose.yml) example. See the comments in the file for customization.
If you need additional packages inside the container, uncomment the `entrypoint` inside the compose file. You can search for your needed package [here](https://pkgs.alpinelinux.org/packages).
### Reverse Proxy
**Caddy example**
```
upsnap.example.com {
reverse_proxy localhost:8090
}
```
## 🔧 Help developing
Fork this branch and clone it.
1. Start backend
```sh
cd backend
go mod tidy
go run main.go serve
```
Log in to [http://localhost:8090/\_/](http://localhost:8090/_/), create an admin user and add some devices.
2. Start frontend
```sh
cd frontend
pnpm i
pnpm run dev
```
Open up [http://localhost:5173/](http://localhost:5173/)