diff --git a/apps/librespeed-linuxserver/6.1.0/.env.sample b/apps/librespeed-linuxserver/6.1.0/.env.sample new file mode 100644 index 000000000..144ff9b4c --- /dev/null +++ b/apps/librespeed-linuxserver/6.1.0/.env.sample @@ -0,0 +1,8 @@ +CONTAINER_NAME= +PANEL_APP_PORT_HTTP=80 +CONFIG_PATH=./data/config +TIME_ZONE=Asia/Shanghai +PASSWORD=linuxserver-change-me +CUSTOM_RESULTS=false +IPINFO_APIKEY= + diff --git a/apps/librespeed-linuxserver/6.1.0/data.yml b/apps/librespeed-linuxserver/6.1.0/data.yml new file mode 100644 index 000000000..1a0d3a048 --- /dev/null +++ b/apps/librespeed-linuxserver/6.1.0/data.yml @@ -0,0 +1,107 @@ +additionalProperties: + formFields: + - default: 80 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP 端口 + label: + en: HTTP Port + zh: HTTP 端口 + zh-Hant: HTTP 連接埠 + ja: HTTP ポート + ko: HTTP 포트 + ru: HTTP-порт + ms: Port HTTP + pt-br: Porta HTTP + required: true + type: number + rule: paramPort + - default: ./data/config + edit: true + envKey: CONFIG_PATH + labelEn: Config folder path + labelZh: 配置文件路径 + label: + en: Config folder path + zh: 配置文件路径 + zh-Hant: 設定檔資料夾路徑 + ja: 設定フォルダーのパス + ko: 설정 폴더 경로 + ru: Путь к папке конфигурации + ms: Laluan folder konfigurasi + pt-br: Caminho da pasta de configuração + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TIME_ZONE + labelEn: Time zone + labelZh: 时区 + label: + en: Time zone + zh: 时区 + zh-Hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon waktu + pt-br: Fuso horário + required: true + type: text + - default: linuxserver-change-me + edit: true + envKey: PASSWORD + labelEn: Results database password + labelZh: 结果数据库密码 + label: + en: Results database password + zh: 结果数据库密码 + zh-Hant: 結果資料庫密碼 + ja: 結果データベースのパスワード + ko: 결과 데이터베이스 비밀번호 + ru: Пароль базы данных результатов + ms: Kata laluan pangkalan data keputusan + pt-br: Senha do banco de dados de resultados + random: true + required: true + rule: paramComplexity + type: password + - default: "false" + edit: true + envKey: CUSTOM_RESULTS + labelEn: Custom results page + labelZh: 自定义结果页 + label: + en: Custom results page + zh: 自定义结果页 + zh-Hant: 自訂結果頁 + ja: カスタム結果ページ + ko: 사용자 지정 결과 페이지 + ru: Пользовательская страница результатов + ms: Halaman keputusan tersuai + pt-br: Pagina de resultados personalizada + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "" + edit: true + envKey: IPINFO_APIKEY + labelEn: IPInfo access token + labelZh: IPInfo 访问令牌 + label: + en: IPInfo access token + zh: IPInfo 访问令牌 + zh-Hant: IPInfo 存取權杖 + ja: IPInfo アクセストークン + ko: IPInfo 액세스 토큰 + ru: Токен доступа IPInfo + ms: Token akses IPInfo + pt-br: Token de acesso IPInfo + required: false + type: password + diff --git a/apps/librespeed-linuxserver/6.1.0/docker-compose.yml b/apps/librespeed-linuxserver/6.1.0/docker-compose.yml new file mode 100644 index 000000000..20bcf467d --- /dev/null +++ b/apps/librespeed-linuxserver/6.1.0/docker-compose.yml @@ -0,0 +1,25 @@ +networks: + 1panel-network: + external: true +services: + librespeed: + image: "linuxserver/librespeed:6.1.0" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + volumes: + - "${CONFIG_PATH}:/config" + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TIME_ZONE} + - PASSWORD=${PASSWORD} + - CUSTOM_RESULTS=${CUSTOM_RESULTS} + - DB_TYPE=sqlite + - IPINFO_APIKEY=${IPINFO_APIKEY:-} + labels: + createdBy: "Apps" + diff --git a/apps/librespeed-linuxserver/6.1.0/scripts/init.sh b/apps/librespeed-linuxserver/6.1.0/scripts/init.sh new file mode 100755 index 000000000..8a929d096 --- /dev/null +++ b/apps/librespeed-linuxserver/6.1.0/scripts/init.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -euo pipefail + +paths=( + "${CONFIG_PATH:-./data/config}" +) + +mkdir -p "${paths[@]}" +for path in "${paths[@]}"; do + case "$path" in + ./*|../*) chown -R 1000:1000 "$path" 2>/dev/null || true ;; + esac +done + diff --git a/apps/librespeed-linuxserver/6.1.0/scripts/uninstall.sh b/apps/librespeed-linuxserver/6.1.0/scripts/uninstall.sh new file mode 100755 index 000000000..accdccd70 --- /dev/null +++ b/apps/librespeed-linuxserver/6.1.0/scripts/uninstall.sh @@ -0,0 +1,3 @@ +#!/bin/bash +docker-compose down --volumes + diff --git a/apps/librespeed-linuxserver/6.1.0/scripts/upgrade.sh b/apps/librespeed-linuxserver/6.1.0/scripts/upgrade.sh new file mode 100755 index 000000000..a6eb46bac --- /dev/null +++ b/apps/librespeed-linuxserver/6.1.0/scripts/upgrade.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -euo pipefail + +: + diff --git a/apps/librespeed-linuxserver/README.md b/apps/librespeed-linuxserver/README.md new file mode 100644 index 000000000..74202660b --- /dev/null +++ b/apps/librespeed-linuxserver/README.md @@ -0,0 +1,61 @@ +# LibreSpeed + +## 产品介绍 +LibreSpeed 是一个自托管网络速度测试服务,本应用使用 LinuxServer.io 镜像部署。 + +## 主要功能 +- 在浏览器中进行下载、上传、延迟和抖动测试。 +- 使用 `/config` 持久化配置和结果数据库。 +- 默认使用 sqlite 结果数据库,便于单容器部署和迁移。 + +## 访问说明 +安装完成后,通过应用表单中的 HTTP 端口访问 Web UI。 + +## Introduction +LibreSpeed is a self-hosted network speed test service. This app deploys the LinuxServer.io image. + +## Features +- Run download, upload, latency, and jitter tests from a browser. +- Persist configuration and the results database under `/config`. +- Use sqlite by default for a simple single-container deployment. + +## 应用简介 +LibreSpeed 测速服务。 + +英文说明:Network speed test service maintained by LinuxServer.io. + +## 部署说明 +- 本应用使用 Docker Compose 在 1Panel 中部署。 +- 应用分类:工具。 +- 支持架构:amd64、arm64。 +- 可选版本:`latest`、`6.1.0`。 + +## 端口 +| 变量 | 说明 | 默认值 | 必填 | +| --- | --- | --- | --- | +| PANEL_APP_PORT_HTTP | HTTP 端口 | 80 | 是 | + +## 数据持久化 +| 变量 | 说明 | 默认值 | 必填 | +| --- | --- | --- | --- | +| CONFIG_PATH | 配置文件路径 | ./data/config | 是 | + +升级或迁移前,请在 1Panel 中备份上述数据目录。 + +## 配置项 +| 变量 | 说明 | 默认值 | 必填 | +| --- | --- | --- | --- | +| TIME_ZONE | 时区 | Asia/Shanghai | 是 | +| PASSWORD | 结果数据库密码 | 随机生成 | 是 | +| CUSTOM_RESULTS | 启用自定义结果页 | false | 是 | +| IPINFO_APIKEY | IPInfo 访问令牌 | 空 | 否 | + +## 使用说明 +- 默认结果数据库类型固定为 sqlite,不需要外部数据库。 +- 如需对外开放访问,请同步检查防火墙、安全组和反向代理配置。 + +## 参考资料 +- 官网: +- 文档: +- 源码: + diff --git a/apps/librespeed-linuxserver/data.yml b/apps/librespeed-linuxserver/data.yml new file mode 100644 index 000000000..4aa2179ed --- /dev/null +++ b/apps/librespeed-linuxserver/data.yml @@ -0,0 +1,31 @@ +name: LibreSpeed +tags: +- Tool +title: LibreSpeed 测速服务 +description: LibreSpeed 测速服务 +additionalProperties: + key: librespeed-linuxserver + name: LibreSpeed + tags: + - Tool + shortDescZh: LibreSpeed 测速服务 + shortDescEn: Network speed test service maintained by LinuxServer.io + description: + en: Network speed test service maintained by LinuxServer.io + zh: LibreSpeed 测速服务 + zh-Hant: LibreSpeed 測速服務 + ja: LinuxServer.io が保守するネットワーク速度テストサービス + ko: LinuxServer.io에서 유지 관리하는 네트워크 속도 테스트 서비스 + ru: Сервис проверки скорости сети, поддерживаемый LinuxServer.io + ms: Perkhidmatan ujian kelajuan rangkaian yang diselenggara oleh LinuxServer.io + pt-br: Servico de teste de velocidade de rede mantido pela LinuxServer.io + type: tool + crossVersionUpdate: true + limit: 0 + website: https://librespeed.org/ + github: https://github.com/linuxserver/docker-librespeed + document: https://docs.linuxserver.io/images/docker-librespeed/ + architectures: + - amd64 + - arm64 + diff --git a/apps/librespeed-linuxserver/latest/.env.sample b/apps/librespeed-linuxserver/latest/.env.sample new file mode 100644 index 000000000..144ff9b4c --- /dev/null +++ b/apps/librespeed-linuxserver/latest/.env.sample @@ -0,0 +1,8 @@ +CONTAINER_NAME= +PANEL_APP_PORT_HTTP=80 +CONFIG_PATH=./data/config +TIME_ZONE=Asia/Shanghai +PASSWORD=linuxserver-change-me +CUSTOM_RESULTS=false +IPINFO_APIKEY= + diff --git a/apps/librespeed-linuxserver/latest/data.yml b/apps/librespeed-linuxserver/latest/data.yml new file mode 100644 index 000000000..1a0d3a048 --- /dev/null +++ b/apps/librespeed-linuxserver/latest/data.yml @@ -0,0 +1,107 @@ +additionalProperties: + formFields: + - default: 80 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP 端口 + label: + en: HTTP Port + zh: HTTP 端口 + zh-Hant: HTTP 連接埠 + ja: HTTP ポート + ko: HTTP 포트 + ru: HTTP-порт + ms: Port HTTP + pt-br: Porta HTTP + required: true + type: number + rule: paramPort + - default: ./data/config + edit: true + envKey: CONFIG_PATH + labelEn: Config folder path + labelZh: 配置文件路径 + label: + en: Config folder path + zh: 配置文件路径 + zh-Hant: 設定檔資料夾路徑 + ja: 設定フォルダーのパス + ko: 설정 폴더 경로 + ru: Путь к папке конфигурации + ms: Laluan folder konfigurasi + pt-br: Caminho da pasta de configuração + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TIME_ZONE + labelEn: Time zone + labelZh: 时区 + label: + en: Time zone + zh: 时区 + zh-Hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon waktu + pt-br: Fuso horário + required: true + type: text + - default: linuxserver-change-me + edit: true + envKey: PASSWORD + labelEn: Results database password + labelZh: 结果数据库密码 + label: + en: Results database password + zh: 结果数据库密码 + zh-Hant: 結果資料庫密碼 + ja: 結果データベースのパスワード + ko: 결과 데이터베이스 비밀번호 + ru: Пароль базы данных результатов + ms: Kata laluan pangkalan data keputusan + pt-br: Senha do banco de dados de resultados + random: true + required: true + rule: paramComplexity + type: password + - default: "false" + edit: true + envKey: CUSTOM_RESULTS + labelEn: Custom results page + labelZh: 自定义结果页 + label: + en: Custom results page + zh: 自定义结果页 + zh-Hant: 自訂結果頁 + ja: カスタム結果ページ + ko: 사용자 지정 결과 페이지 + ru: Пользовательская страница результатов + ms: Halaman keputusan tersuai + pt-br: Pagina de resultados personalizada + required: true + type: select + values: + - label: "false" + value: "false" + - label: "true" + value: "true" + - default: "" + edit: true + envKey: IPINFO_APIKEY + labelEn: IPInfo access token + labelZh: IPInfo 访问令牌 + label: + en: IPInfo access token + zh: IPInfo 访问令牌 + zh-Hant: IPInfo 存取權杖 + ja: IPInfo アクセストークン + ko: IPInfo 액세스 토큰 + ru: Токен доступа IPInfo + ms: Token akses IPInfo + pt-br: Token de acesso IPInfo + required: false + type: password + diff --git a/apps/librespeed-linuxserver/latest/docker-compose.yml b/apps/librespeed-linuxserver/latest/docker-compose.yml new file mode 100644 index 000000000..ff8d8fa50 --- /dev/null +++ b/apps/librespeed-linuxserver/latest/docker-compose.yml @@ -0,0 +1,25 @@ +networks: + 1panel-network: + external: true +services: + librespeed: + image: "linuxserver/librespeed:latest" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + volumes: + - "${CONFIG_PATH}:/config" + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TIME_ZONE} + - PASSWORD=${PASSWORD} + - CUSTOM_RESULTS=${CUSTOM_RESULTS} + - DB_TYPE=sqlite + - IPINFO_APIKEY=${IPINFO_APIKEY:-} + labels: + createdBy: "Apps" + diff --git a/apps/librespeed-linuxserver/latest/scripts/init.sh b/apps/librespeed-linuxserver/latest/scripts/init.sh new file mode 100755 index 000000000..8a929d096 --- /dev/null +++ b/apps/librespeed-linuxserver/latest/scripts/init.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -euo pipefail + +paths=( + "${CONFIG_PATH:-./data/config}" +) + +mkdir -p "${paths[@]}" +for path in "${paths[@]}"; do + case "$path" in + ./*|../*) chown -R 1000:1000 "$path" 2>/dev/null || true ;; + esac +done + diff --git a/apps/librespeed-linuxserver/latest/scripts/uninstall.sh b/apps/librespeed-linuxserver/latest/scripts/uninstall.sh new file mode 100755 index 000000000..accdccd70 --- /dev/null +++ b/apps/librespeed-linuxserver/latest/scripts/uninstall.sh @@ -0,0 +1,3 @@ +#!/bin/bash +docker-compose down --volumes + diff --git a/apps/librespeed-linuxserver/latest/scripts/upgrade.sh b/apps/librespeed-linuxserver/latest/scripts/upgrade.sh new file mode 100755 index 000000000..a6eb46bac --- /dev/null +++ b/apps/librespeed-linuxserver/latest/scripts/upgrade.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -euo pipefail + +: + diff --git a/apps/librespeed-linuxserver/logo.png b/apps/librespeed-linuxserver/logo.png new file mode 100644 index 000000000..153102dd7 Binary files /dev/null and b/apps/librespeed-linuxserver/logo.png differ