From a3453ed2d777ce34634134cfff3875e3a36fac49 Mon Sep 17 00:00:00 2001 From: Jainil Prajapati <86187588+jaainil@users.noreply.github.com> Date: Sat, 25 Oct 2025 13:23:17 +0530 Subject: [PATCH] feat(upsnap): add blueprint for Upsnap network monitor (#475) - Add docker-compose.yml for containerized deployment with health checks and environment variables - Include template.toml with configuration variables, domain settings, and mount points - Add upsnap.svg icon for the service visualization This commit introduces a complete blueprint to simplify deployment of the Upsnap network monitoring tool using Docker. --- blueprints/upsnap/docker-compose.yml | 24 ++++++ blueprints/upsnap/template.toml | 23 ++++++ blueprints/upsnap/upsnap.svg | 114 +++++++++++++++++++++++++++ meta.json | 18 +++++ 4 files changed, 179 insertions(+) create mode 100644 blueprints/upsnap/docker-compose.yml create mode 100644 blueprints/upsnap/template.toml create mode 100644 blueprints/upsnap/upsnap.svg diff --git a/blueprints/upsnap/docker-compose.yml b/blueprints/upsnap/docker-compose.yml new file mode 100644 index 00000000..7def1411 --- /dev/null +++ b/blueprints/upsnap/docker-compose.yml @@ -0,0 +1,24 @@ +services: + upsnap: + image: ghcr.io/seriousm4x/upsnap:5 + restart: unless-stopped + expose: + - 8090 + volumes: + - upsnap-data:/app/pb_data + environment: + - TZ=${TZ} + - UPSNAP_INTERVAL=${UPSNAP_INTERVAL} + - UPSNAP_SCAN_RANGE=${UPSNAP_SCAN_RANGE} + - UPSNAP_SCAN_TIMEOUT=${UPSNAP_SCAN_TIMEOUT} + - UPSNAP_PING_PRIVILEGED=${UPSNAP_PING_PRIVILEGED} + - UPSNAP_WEBSITE_TITLE=${UPSNAP_WEBSITE_TITLE} + healthcheck: + test: ["CMD", "curl", "-fs", "http://localhost:8090/api/health"] + interval: 10s + timeout: 3s + retries: 3 + +volumes: + upsnap-data: + driver: local diff --git a/blueprints/upsnap/template.toml b/blueprints/upsnap/template.toml new file mode 100644 index 00000000..528e9819 --- /dev/null +++ b/blueprints/upsnap/template.toml @@ -0,0 +1,23 @@ +[variables] +main_domain = "${domain}" +upsnap_password = "${password:32}" + +[config] + +[[config.domains]] +serviceName = "upsnap" +port = 8090 +host = "${main_domain}" +path = "/" + +[config.env] +TZ = "Europe/Berlin" +UPSNAP_INTERVAL = "*/10 * * * * *" +UPSNAP_SCAN_RANGE = "192.168.1.0/24" +UPSNAP_SCAN_TIMEOUT = "500ms" +UPSNAP_PING_PRIVILEGED = "true" +UPSNAP_WEBSITE_TITLE = "Upsnap Network Monitor" + +[[config.mounts]] +source = "upsnap-data" +target = "/app/pb_data" diff --git a/blueprints/upsnap/upsnap.svg b/blueprints/upsnap/upsnap.svg new file mode 100644 index 00000000..ce565ebc --- /dev/null +++ b/blueprints/upsnap/upsnap.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PACKAGE + + + + + + + + + + + + + + + + + + + + diff --git a/meta.json b/meta.json index 8cf97914..d0d46054 100644 --- a/meta.json +++ b/meta.json @@ -5126,6 +5126,24 @@ "networking" ] }, + { + "id": "upsnap", + "name": "Upsnap", + "version": "5", + "description": "Upsnap is a simple network device monitor and dashboard built on PocketBase.", + "logo": "upsnap.svg", + "links": { + "github": "https://github.com/seriousm4x/upsnap", + "website": "https://github.com/seriousm4x/upsnap", + "docs": "https://github.com/seriousm4x/upsnap#readme" + }, + "tags": [ + "network", + "monitoring", + "dashboard", + "self-hosted" + ] + }, { "id": "uptime-kuma", "name": "Uptime Kuma",