From 20edb2cc1dcc43d10b6ea1c3b0c3437b4c2d0c87 Mon Sep 17 00:00:00 2001 From: devdamo <77869423+devdamo@users.noreply.github.com> Date: Fri, 5 Sep 2025 09:46:51 +0100 Subject: [PATCH] Add OpenSpeedTest blueprint and metadata (#334) Introduces a new blueprint for OpenSpeedTest, including docker-compose configuration, template, and logo. Updates meta.json to register OpenSpeedTest with relevant metadata and links. --- blueprints/openspeedtest/docker-compose.yml | 6 ++++++ blueprints/openspeedtest/openspeedtest.png | Bin 0 -> 32560 bytes blueprints/openspeedtest/template.toml | 12 ++++++++++++ meta.json | 19 +++++++++++++++++++ 4 files changed, 37 insertions(+) create mode 100644 blueprints/openspeedtest/docker-compose.yml create mode 100644 blueprints/openspeedtest/openspeedtest.png create mode 100644 blueprints/openspeedtest/template.toml diff --git a/blueprints/openspeedtest/docker-compose.yml b/blueprints/openspeedtest/docker-compose.yml new file mode 100644 index 00000000..0f35540b --- /dev/null +++ b/blueprints/openspeedtest/docker-compose.yml @@ -0,0 +1,6 @@ +services: + openspeedtest: + image: openspeedtest/latest:latest + restart: unless-stopped + ports: + - 3000 \ No newline at end of file diff --git a/blueprints/openspeedtest/openspeedtest.png b/blueprints/openspeedtest/openspeedtest.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc64402b54504ac23e0a0ce7822e608105e07ca GIT binary patch literal 32560 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

D>Xf3tyw%B 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 literal 0 HcmV?d00001 diff --git a/blueprints/openspeedtest/template.toml b/blueprints/openspeedtest/template.toml new file mode 100644 index 00000000..781fa32b --- /dev/null +++ b/blueprints/openspeedtest/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "openspeedtest" +port = 3000 +host = "${main_domain}" + +[config.env] + +[[config.mounts]] \ No newline at end of file diff --git a/meta.json b/meta.json index f80d64a3..4626a607 100644 --- a/meta.json +++ b/meta.json @@ -3470,6 +3470,25 @@ "nginx" ] }, + { + "id": "openspeedtest", + "name": "OpenSpeedTest", + "version": "latest", + "description": "OpenSpeedTest is a 100% browser-based HTML5 network performance estimation tool for accurately measuring network speed.", + "logo": "openspeedtest.png", + "links": { + "github": "https://github.com/openspeedtest/Speed-Test", + "website": "https://openspeedtest.com/", + "docs": "https://github.com/openspeedtest/Speed-Test/wiki" + }, + "tags": [ + "network", + "testing", + "performance", + "monitoring", + "bandwidth" + ] + }, { "id": "otterwiki", "name": "Otter Wiki",