Home
Softono
s

seriousm4x

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
1

Software by seriousm4x

Upsnap
Open Source

Upsnap

<div align="center" width="100%"> <img src="frontend/static/gopher.svg" width="150" /> </div> <div align="center" width="100%"> <h2>UpSnap</h2> <p>A simple wake on lan web app written with SvelteKit, Go and PocketBase.</p> <div> <a target="_blank" href="https://github.com/seriousm4x/upsnap"><img src="https://img.shields.io/github/stars/seriousm4x/UpSnap?style=flat&label=Stars" /></a> <a target="_blank" href="https://github.com/seriousm4x/UpSnap/pkgs/container/upsnap"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fipitio%2Fbackage%2Findex%2Fseriousm4x%2FUpSnap%2Fupsnap.json&query=downloads&label=ghcr.io%20pulls" /></a> <a target="_blank" href="https://hub.docker.com/r/seriousm4x/upsnap"><img src="https://img.shields.io/docker/pulls/seriousm4x/upsnap?label=docker%20hub%20pulls" /></a> <a target="_blank" href="https://github.com/seriousm4x/UpSnap/releases"><img src="https://img.shields.io/github/downloads/seriousm4x/upsnap/total?label=binary%20downloads" /></a> </div> <div> <a target="_blank" href="https://github.com/seriousm4x/UpSnap/releases"><img src="https://img.shields.io/github/go-mod/go-version/seriousm4x/UpSnap?filename=backend/go.mod" /></a> <a target="_blank" href="https://github.com/seriousm4x/UpSnap/releases"><img src="https://img.shields.io/github/v/release/seriousm4x/upsnap?display_name=tag&label=Latest%20release" /></a> <a target="_blank" href="https://github.com/seriousm4x/UpSnap/actions"><img src="https://github.com/seriousm4x/upsnap/actions/workflows/release.yml/badge.svg?event=push" /></a> <a target="_blank" href="https://github.com/seriousm4x/UpSnap/commits/master"><img src="https://img.shields.io/github/last-commit/seriousm4x/upsnap" /></a> </div> </div> > [!NOTE] > > #### UpSnap is, and always will be, free and open source software. > > If someone is asking you to pay money for access to UpSnap binaries, source code, or licenses, you are being scammed. > > The official and only trusted source for UpSnap is this repository (and its linked releases). > Do not pay third parties for something that is provided here for free. ## โœจ 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) - โŽ๏ธ Shutdown Devices with a Custom Command - ๐Ÿ‘ค Secured User Management - ๐ŸŒ i18n support for [these](/frontend/translations) languages - ๐ŸŽจ 35 Themes - ๐Ÿณ [Docker images](https://github.com/seriousm4x/UpSnap/pkgs/container/upsnap) for amd64, arm64, arm/v7, arm/v6 - ๐Ÿ  Self-Hostable ## ๐Ÿ“ธ Screenshots | Silk | Dim | | ---------------------------------- | --------------------------------- | | ![](/assets/home-light.webp) | ![](/assets/home-dark.webp) | | ![](/assets/account-light.webp) | ![](/assets/account-dark.webp) | | ![](/assets/new-manual-light.webp) | ![](/assets/new-manual-dark.webp) | | ![](/assets/new-scan-light.webp) | ![](/assets/new-scan-dark.webp) | | ![](/assets/settings-light.webp) | ![](/assets/settings-dark.webp) | | ![](/assets/users-light.webp) | ![](/assets/users-dark.webp) | ## ๐Ÿš€ Run the binary Just download the latest binary from the [release page](https://github.com/seriousm4x/UpSnap/releases) and run it. ```bash sudo ./upsnap serve --http=0.0.0.0:8090 ``` To run as non-root (Linux only), refer to the Wiki: [Use non-root user](https://github.com/seriousm4x/UpSnap/wiki/Use-non%E2%80%90root-user) For more options check `./upsnap --help` or visit [PocketBase documentation](https://pocketbase.io/docs). ## ๐Ÿณ Run in Docker Just pull and run the image: `docker run --network=host seriousm4x/upsnap:latest` or you can use the [docker-compose](docker-compose.yml) example. See the comments in the file for customization. To run as non-root, refer to the Wiki: [Use non-root user](https://github.com/seriousm4x/UpSnap/wiki/Use-non%E2%80%90root-user) ### Change port (Docker) If you want to change the port from 8090 to something else, change the following (5000 in this case): ```yml environment: - UPSNAP_HTTP_LISTEN=0.0.0.0:5000 ``` ## โŽ๏ธ Shutting Down Devices To shutdown devices, refer to the Wiki: [How to use shutdowns](https://github.com/seriousm4x/UpSnap/wiki/How-to-use-shutdowns) ## Reverse Proxy **Caddy example** ``` upsnap.example.com { reverse_proxy localhost:8090 } ``` ## Run in sub path You can run UpSnap on a different path than `/`, e.g. `/upsnap-sub-path/`. To do this in caddy, set the following: ``` http://localhost:8091 { handle /upsnap-sub-path/* { uri strip_prefix /upsnap-sub-path reverse_proxy localhost:8090 } } ``` Or nginx: ``` http { server { listen 8091; server_name localhost; location /upsnap-sub-path/ { proxy_pass http://localhost:8090/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } } ``` Paths must end with a trailing `/`. ## ๐Ÿง Install from the [AUR](https://aur.archlinux.org/packages/upsnap-bin) ```bash yay -Sy upsnap-bin ``` ## ๐Ÿ”’ User permissions 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](#-screenshots). ## ๐ŸŒ Exposing to the open web 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 (possibly as root user). 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. ## ๐ŸŒ Help translating UpSnap is available in the following languages so far: - ๐Ÿ‡ธ๐Ÿ‡ฆ **Arabic (Saudi Arabia)** (ar-SA) - ๐Ÿ‡ง๐Ÿ‡ฌ **Bulgarian (Bulgaria)** (bg-BG) - ๐Ÿ‡จ๐Ÿ‡ฟ **Czech (Czech republic)** (cs-CZ) - ๐Ÿ‡ฉ๐Ÿ‡ช **German (Germany)** (de-DE) - ๐Ÿ‡ฌ๐Ÿ‡ท **Greek (Greece)** (el-GR) - ๐Ÿ‡บ๐Ÿ‡ธ **English (United States)** (en-US) - ๐Ÿ‡ช๐Ÿ‡ธ **Spanish (Spain)** (es-ES) - ๐Ÿ‡ซ๐Ÿ‡ท **French (France)** (fr-FR) - ๐Ÿ‡ฎ๐Ÿ‡ณ **Hindi (India)** (hi-IN) - ๐Ÿ‡ฎ๐Ÿ‡ฉ **Bahasa (Indonesia)** (id-ID) - ๐Ÿ‡ฎ๐Ÿ‡น **Italian (Italy)** (it-IT) - ๐Ÿ‡ฏ๐Ÿ‡ต **Japanese (Japan)** (ja-JP) - ๐Ÿ‡ฐ๐Ÿ‡ท **Korean (Republic of Korea)** (ko-KR) - ๐Ÿ‡ณ๐Ÿ‡ด **Norwegian (Norway)** (nb-NO) - ๐Ÿ‡ณ๐Ÿ‡ฑ **Dutch (Netherlands)** (nl-NL) - ๐Ÿ‡ต๐Ÿ‡ฑ **Polish (Poland)** (pl-PL) - ๐Ÿ‡ง๐Ÿ‡ท **Portuguese (Brazil)** (pt-BR) - ๐Ÿ‡ต๐Ÿ‡น **Portuguese (Portugal)** (pt-PT) - ๐Ÿ‡ท๐Ÿ‡บ **Russian (Russia)** (ru-RU) - ๐Ÿ‡บ๐Ÿ‡ฆ **Ukrainian (Ukrain)** (uk-UA) - ๐Ÿ‡ป๐Ÿ‡ณ **Vietnamese (Vietnam)** (vi-VN) - ๐Ÿ‡จ๐Ÿ‡ณ **Chinese (China)** (zh-CN) - ๐Ÿ‡น๐Ÿ‡ผ **Chinese (Taiwan)** (zh-TW) **If you want to contribute and help translating, check the wiki: [How to add languages](https://github.com/seriousm4x/UpSnap/wiki/How-to-add-languages)** ## ๐Ÿ”ง Help developing Fork this branch and clone it. 1. Start backend ```bash cd backend go mod tidy go run main.go serve ``` 2. Start frontend ```bash cd frontend pnpm i pnpm run dev ``` Open up [http://localhost:5173/](http://localhost:5173/), create an admin user and add some devices. ## ๐ŸŒŸ Star History [![Star History Chart](https://api.star-history.com/svg?repos=seriousm4x/UpSnap&type=Date&theme=dark)](https://star-history.com/#seriousm4x/UpSnap&Date)

Network Monitoring
5.8K Github Stars