部署SpeedTest-EX

SpeedTest-EX 是一个以Go Gin为框架的LiberSpeed实现.

与类似项目的区别

与 LiberSpeed 的区别与对比

  • 技术栈: LiberSpeed 基于 PHP 实现, SpeedTest-EX 基于 Go Gin 实现.
  • 功能: SpeedTest-EX 基本可以认为是 LiberSpeed 的超集
  • Docker: SpeedTest-EX 提供 Docker 镜像, 且更加轻量化(仅9.55 MB)
  • 数据库: SpeedTest-EX 采用 BBolt 作为数据库, 以实现结果存储
  • 统计图表: SpeedTest-EX 加入了统计图表功能, 方便用户查看测速结果
  • 部署: 基于Go语言开发, 无需安装环境, 使部署变得更加简单

与 Speedtest-X 的区别与对比

  • 技术栈: Speedtest-X 基于 PHP 实现, SpeedTest-EX 基于 Go Gin 实现.
  • 功能: 与 Speedtest-X 功能相差不大
  • 统计图表: SpeedTest-EX 实现了更加现代化的统计图表功能
  • 部署: 基于Go语言开发, 无需安装环境, 使部署变得更加简单
  • Docker: SpeedTest-X 提供 Docker 镜像, 但体积较大(171.59 MB) , 而 SpeedTest-EX 提供的 Docker 镜像体积更小(9.55 MB)

SpeedTest-EX 简述

SpeedTest-EX 是一个以Go Gin作为路由框架, 基于BoltDB作为数据库, 前端保持对LiberSpeed的兼容, 实现了更加现代化的统计图表功能, 并提供了Docker镜像, 使部署变得更加简单.

项目地址: https://github.com/WJQSERVER/speedtest-ex

若项目对您有帮助, 请给项目一个Star!

部署

Docker 部署

  • Docker-Cli:
# 运行容器
docker run -d \
  --name speedtest-ex \
  --restart always \
  -v ./speedtest-ex/config:/data/speedtest-ex/config \
  -v ./speedtest-ex/log:/data/speedtest-ex/log \
  -v ./speedtest-ex/db:/data/speedtest-ex/db \
  -p 8989:8989 \
  wjqserver/speedtest-ex:latest
  
  • Docker-Compose:
  1. 创建目录

此处以/root/data/docker_data/speedtest-ex为例,创建目录并进入:

mkdir -p /root/data/docker_data/speedtest-ex
cd /root/data/docker_data/speedtest-ex
  1. 创建compose文件
touch docker-compose.yml
  1. 编辑compose文件
version: '3'
services:
  speedtest-ex:
    image: 'wjqserver/speedtest-ex:latest'
    restart: always
    volumes:
      - './speedtest-ex/config:/data/speedtest-ex/config' # 配置文件
      - './speedtest-ex/log:/data/speedtest-ex/log' # 日志文件
      - './speedtest-ex/db:/data/speedtest-ex/db' # 数据库文件
    ports:
      - '8989:8989' # 端口映射
  1. 启动服务
docker-compose up -d

编辑配置文件

  • 按照上文Docker-Cli部署, 配置文件位于./speedtest-ex/config/config.toml
  • 按照上文Docker-Compose部署, 配置文件位于/root/data/docker_data/speedtest-ex/speedtest-ex/config/config.toml
[server]
host = "0.0.0.0" # 监听地址
port = 8989 # 监听端口
basePath = "" # 兼容LiberSpeed而保留, 无需求请不要修改

[log]
logFilePath = "/data/speedtest-ex/log/speedtest-ex.log" # 日志文件路径
maxLogSize = 5 # MB 日志文件最大容量

[ipinfo]
model = "ipinfo" # ip(自托管) 或 ipinfo(ipinfo.io)
ipinfo_url = "" #使用自托管时请填写您的ip服务地址
ipinfo_api_key = "" # ipinfo.io API key 若有可以填写

[database]
model = "bolt"  # 数据库类型, 目前仅支持BoltDB
path = "/data/speedtest-ex/db/speedtest.db" # 数据库文件路径

[frontend]
chartlist = 100 # 默认显示最近100条数据

前端演示

SpeedTest-EX Index Page

SpeedTest-EX Chart Page

注意事项

❗ 注意:基于网页测速的原理,程序会生成无用块供测速者下载来计算真实下行带宽,一定程度上存在被恶意刷流量的风险,在对外分享你的测速页面后,请注意观察服务器流量使用情况,避免流量使用异常。

许可证

本项目基于 LGPL-3.0 许可证发布。

Copyright (C) 2016-2020 Federico Dossena

Copyright (C) 2020 Maddie Zhan

Copyright (C) 2025 WJQSERVER

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see https://www.gnu.org/licenses/lgpl .


本文使用CC BY-NC-SA 4.0许可发布