/UpSnap

A simple wake on lan app written with SvelteKit, Go, PocketBase and nmap

Primary LanguageSvelteMIT LicenseMIT

UpSnap

A simple wake on lan app written with SvelteKit, Go, PocketBase and nmap.

✨ 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 for amd64, arm64, arm/v7

📸 Screenshots

Dark Light

🚀 Run the binary

Just download the latest binary from the release page and run it ./upsnap serve --http=0.0.0.0:8090.

For more options check ./upsnap --help or visit PocketBase documentation.

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 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.

Reverse Proxy

Caddy example

upsnap.example.com {
    reverse_proxy localhost:8090
}

🔧 Help developing

Fork this branch and clone it.

  1. Start backend
cd backend
go mod tidy
go run main.go serve

Log in to http://localhost:8090/_/, create an admin user and add some devices.

  1. Start frontend
cd frontend
pnpm i
pnpm run dev

Open up http://localhost:5173/