Dark | Light |
---|---|
yay -Sy upsnap-bin
Just download the latest binary from the release page and run it.
sudo ./upsnap serve --http=0.0.0.0:8090
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.
If you want to use network discovery, make sure to have nmap
installed and run UpSnap as root/admin.
You can use the docker-compose example. See the comments in the file for customization.
Create the mount point first:
mkdir data
Then add user: 1000:1000
to the docker-compose file (or whatever your $UID:$GID is).
If you want to change the port from 8090 to something else, change the following (5000 in this case):
entrypoint: /bin/sh -c "./upsnap serve --http 0.0.0.0:5000"
healthcheck:
test: curl -fs "http://localhost:5000/api/health" || exit 1
entrypoint: /bin/sh -c "apk update && apk add --no-cache <YOUR_PACKAGE> && rm -rf /var/cache/apk/* && ./upsnap serve --http 0.0.0.0:8090"
You can search for your needed package here.
Caddy example
upsnap.example.com {
reverse_proxy localhost:8090
}
UpSnap offers unique access for each user, per device. While admins have all permissions, they can assign specific rights to users such as displaying/hiding a device, accessing device editing, deleting and powering devices on/off. See the last screenshot in the 📸 Screenshots section.
Although UpSnap has user authorisation, it is not recommended to expose it to the open web and make it accessible by everyone!
Reason: The shutdown device command is basically a command piped to #sh (root if you run docker). If anyone gains unauthorized access and can abuse this api route in any way, the attacker has access to a (root) shell on your local network.
Recommended: If you need access from outside your network, please use a vpn. Wireguard or OpenVPN is your way to go.
UpSnap is available in the following languages so far:
If you want to contribute and help translating, check the wiki: How to add languages
Fork this branch and clone it.
cd backend
go mod tidy
go run main.go serve
cd frontend
pnpm i
pnpm run dev
Open up http://localhost:5173/, create an admin user and add some devices.