## β¨ Features
- π One-Click Device Wake-Up Dashboard
- β° Timed Events via Cron for Automation
- π Ping Any Port You Choose
- π Discover Devices with Network Scanning (nmap required)
- π€ Secured User Management
- π i18n support for [these](https://github.com/seriousm4x/UpSnap/tree/master/frontend/src/lib/i18n) languages
- π¨ 29 Themes
- π³ [Docker images](https://github.com/seriousm4x/UpSnap/pkgs/container/upsnap) for amd64, arm64, arm/v7, arm/v6
- π Self-Hostable, No Cloud Bullshit!
## πΈ Screenshots
| Dark | Light |
| --------------------------------- | ---------------------------------- |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
## π§ Install from the [AUR](https://aur.archlinux.org/packages/upsnap-bin)
```bash
yay -Sy upsnap-bin
```
## π Run the binary
Just download the latest binary from the [release page](https://github.com/seriousm4x/UpSnap/releases) and run it.
### Root:
```bash
sudo ./upsnap serve --http=0.0.0.0:8090
```
### Non-root:
```bash
sudo setcap cap_net_raw=+ep ./upsnap # only once after downloading
./upsnap serve --http=0.0.0.0:8090
```
For more options check `./upsnap --help` or visit [PocketBase documentation](https://pocketbase.io/docs).
If you want to use network discovery, make sure to have `nmap` installed and run UpSnap as root/admin.
## π³ Run in docker
You can use the [docker-compose](docker-compose.yml) example. See the comments in the file for customization.
### Non-root docker user:
Create the mount point first:
```bash
mkdir data
```
Then add `user: 1000:1000` to the docker-compose file (or whatever your $UID:$GID is).
### Change port
If you want to change the port from 8090 to something else, change the following (5000 in this case):
```yml
entrypoint: /bin/sh -c "./upsnap serve --http 0.0.0.0:5000"
healthcheck:
test: curl -fs "http://localhost:5000/api/health" || exit 1
```
### Install additional packages for shutdown cmd
```yml
entrypoint: /bin/sh -c "apk update && apk add --no-cache