From 63c97bc8f6059c2414daa83a926388bdbb0eef27 Mon Sep 17 00:00:00 2001 From: okxlin Date: Wed, 19 Jun 2024 23:02:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0librespeed=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8=20#1598?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/librespeed/5.3.3/.env.sample | 11 +++ apps/librespeed/5.3.3/data.yml | 102 ++++++++++++++++++++++ apps/librespeed/5.3.3/docker-compose.yml | 26 ++++++ apps/librespeed/README.md | 5 ++ apps/librespeed/data.yml | 19 ++++ apps/librespeed/latest/.env.sample | 11 +++ apps/librespeed/latest/data.yml | 102 ++++++++++++++++++++++ apps/librespeed/latest/docker-compose.yml | 26 ++++++ apps/librespeed/logo.png | Bin 0 -> 5975 bytes 9 files changed, 302 insertions(+) create mode 100644 apps/librespeed/5.3.3/.env.sample create mode 100644 apps/librespeed/5.3.3/data.yml create mode 100644 apps/librespeed/5.3.3/docker-compose.yml create mode 100644 apps/librespeed/README.md create mode 100644 apps/librespeed/data.yml create mode 100644 apps/librespeed/latest/.env.sample create mode 100644 apps/librespeed/latest/data.yml create mode 100644 apps/librespeed/latest/docker-compose.yml create mode 100644 apps/librespeed/logo.png diff --git a/apps/librespeed/5.3.3/.env.sample b/apps/librespeed/5.3.3/.env.sample new file mode 100644 index 00000000..f0ec5d40 --- /dev/null +++ b/apps/librespeed/5.3.3/.env.sample @@ -0,0 +1,11 @@ +CONTAINER_NAME="librespeed" +DISABLE_IPINFO="false" +DISTANCE="km" +EMAIL="" +ENABLE_ID_OBFUSCATION="true" +MODE="standalone" +PANEL_APP_PORT_HTTP=40262 +PASSWORD="password_c6KPcx" +REDACT_IP_ADDRESSES="false" +TELEMETRY="false" +TITLE="LibreSpeed" diff --git a/apps/librespeed/5.3.3/data.yml b/apps/librespeed/5.3.3/data.yml new file mode 100644 index 00000000..3ae20400 --- /dev/null +++ b/apps/librespeed/5.3.3/data.yml @@ -0,0 +1,102 @@ +additionalProperties: + formFields: + - default: 40262 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "standalone" + edit: true + envKey: MODE + labelEn: Mode + labelZh: 模式 + required: true + type: text + - default: "LibreSpeed" + edit: true + envKey: TITLE + labelEn: Title + labelZh: 标题 + required: true + type: text + - default: "false" + edit: true + envKey: TELEMETRY + labelEn: Telemetry + labelZh: 遥测 + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "true" + edit: true + envKey: ENABLE_ID_OBFUSCATION + labelEn: Enable ID Obfuscation + labelZh: 启用 ID 混淆 + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "false" + edit: true + envKey: REDACT_IP_ADDRESSES + labelEn: Redact IP Addresses + labelZh: 隐藏 IP 地址 + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "password" + edit: true + envKey: PASSWORD + labelEn: Password + labelZh: 密码 + random: true + required: false + rule: paramCommon + type: password + - default: "" + edit: true + envKey: EMAIL + labelEn: Email address for GDPR requests (must be specified when telemetry is enabled) + labelZh: GDPR 请求的电子邮件地址 (启用遥测时必须指定) + required: false + type: text + - default: "false" + edit: true + envKey: DISABLE_IPINFO + labelEn: Disable IPInfo + labelZh: 禁用 IPInfo + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "km" + edit: true + envKey: DISTANCE + labelEn: Distance + labelZh: 距离 + required: false + type: select + values: + - label: "km" + value: "km" + - label: "mi" + value: "mi" + - label: "" + value: "" diff --git a/apps/librespeed/5.3.3/docker-compose.yml b/apps/librespeed/5.3.3/docker-compose.yml new file mode 100644 index 00000000..711960bc --- /dev/null +++ b/apps/librespeed/5.3.3/docker-compose.yml @@ -0,0 +1,26 @@ +services: + librespeed: + image: "ghcr.io/librespeed/speedtest:5.3.3" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}" + environment: + - MODE=${MODE} + - TITLE=${TITLE} + - TELEMETRY=${TELEMETRY} + - ENABLE_ID_OBFUSCATION=${ENABLE_ID_OBFUSCATION} + - REDACT_IP_ADDRESSES=${REDACT_IP_ADDRESSES} + - PASSWORD=${PASSWORD} + - EMAIL=${EMAIL} + - DISABLE_IPINFO=${DISABLE_IPINFO} + - DISTANCE=${DISTANCE} + - WEBPORT=${PANEL_APP_PORT_HTTP} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/librespeed/README.md b/apps/librespeed/README.md new file mode 100644 index 00000000..60a14941 --- /dev/null +++ b/apps/librespeed/README.md @@ -0,0 +1,5 @@ +# LibreSpeed + +无 Flash、无 Java、无 Websocket、无废话。 + +这是一个用 Javascript 实现的非常轻量级的速度测试,使用 XMLHttpRequest 和 Web Workers。 \ No newline at end of file diff --git a/apps/librespeed/data.yml b/apps/librespeed/data.yml new file mode 100644 index 00000000..6f3f26a5 --- /dev/null +++ b/apps/librespeed/data.yml @@ -0,0 +1,19 @@ +name: Librespeed +tags: + - 实用工具 +title: 开源速度测试工具 +description: 开源速度测试工具 +additionalProperties: + key: librespeed + name: Librespeed + tags: + - Tool + shortDescZh: 开源速度测试工具 + shortDescEn: Open-source speed test tool + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://librespeed.org/ + github: https://github.com/librespeed/speedtest + document: https://github.com/librespeed/speedtest diff --git a/apps/librespeed/latest/.env.sample b/apps/librespeed/latest/.env.sample new file mode 100644 index 00000000..f0ec5d40 --- /dev/null +++ b/apps/librespeed/latest/.env.sample @@ -0,0 +1,11 @@ +CONTAINER_NAME="librespeed" +DISABLE_IPINFO="false" +DISTANCE="km" +EMAIL="" +ENABLE_ID_OBFUSCATION="true" +MODE="standalone" +PANEL_APP_PORT_HTTP=40262 +PASSWORD="password_c6KPcx" +REDACT_IP_ADDRESSES="false" +TELEMETRY="false" +TITLE="LibreSpeed" diff --git a/apps/librespeed/latest/data.yml b/apps/librespeed/latest/data.yml new file mode 100644 index 00000000..3ae20400 --- /dev/null +++ b/apps/librespeed/latest/data.yml @@ -0,0 +1,102 @@ +additionalProperties: + formFields: + - default: 40262 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "standalone" + edit: true + envKey: MODE + labelEn: Mode + labelZh: 模式 + required: true + type: text + - default: "LibreSpeed" + edit: true + envKey: TITLE + labelEn: Title + labelZh: 标题 + required: true + type: text + - default: "false" + edit: true + envKey: TELEMETRY + labelEn: Telemetry + labelZh: 遥测 + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "true" + edit: true + envKey: ENABLE_ID_OBFUSCATION + labelEn: Enable ID Obfuscation + labelZh: 启用 ID 混淆 + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "false" + edit: true + envKey: REDACT_IP_ADDRESSES + labelEn: Redact IP Addresses + labelZh: 隐藏 IP 地址 + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "password" + edit: true + envKey: PASSWORD + labelEn: Password + labelZh: 密码 + random: true + required: false + rule: paramCommon + type: password + - default: "" + edit: true + envKey: EMAIL + labelEn: Email address for GDPR requests (must be specified when telemetry is enabled) + labelZh: GDPR 请求的电子邮件地址 (启用遥测时必须指定) + required: false + type: text + - default: "false" + edit: true + envKey: DISABLE_IPINFO + labelEn: Disable IPInfo + labelZh: 禁用 IPInfo + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "km" + edit: true + envKey: DISTANCE + labelEn: Distance + labelZh: 距离 + required: false + type: select + values: + - label: "km" + value: "km" + - label: "mi" + value: "mi" + - label: "" + value: "" diff --git a/apps/librespeed/latest/docker-compose.yml b/apps/librespeed/latest/docker-compose.yml new file mode 100644 index 00000000..7e2e8874 --- /dev/null +++ b/apps/librespeed/latest/docker-compose.yml @@ -0,0 +1,26 @@ +services: + librespeed: + image: "ghcr.io/librespeed/speedtest:latest" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}" + environment: + - MODE=${MODE} + - TITLE=${TITLE} + - TELEMETRY=${TELEMETRY} + - ENABLE_ID_OBFUSCATION=${ENABLE_ID_OBFUSCATION} + - REDACT_IP_ADDRESSES=${REDACT_IP_ADDRESSES} + - PASSWORD=${PASSWORD} + - EMAIL=${EMAIL} + - DISABLE_IPINFO=${DISABLE_IPINFO} + - DISTANCE=${DISTANCE} + - WEBPORT=${PANEL_APP_PORT_HTTP} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/librespeed/logo.png b/apps/librespeed/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..153102dd7e8396e56609cf7f8478c3778fe60fdf GIT binary patch literal 5975 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