用Speedtest-Tracker跟踪上网速度(续)

在这里插入图片描述

什么是 Speedtest Tracker ?

Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 OoklaSpeedtest 服务运行速度测试检查。

之前老苏介绍的另一个 https://github.com/henrywhitaker3/Speedtest-Tracker 已被放弃。现在这个是积极维护的替代品,具有改进的用户界面和功能集。

文章传送门:用Speedtest-Tracker跟踪上网速度

Speedtest Tracker 会保留历史记录,所以会用到数据库做存储,支持的数据库类型包括 SQLiteMySQLMariaDBPostgreSQL

图形界面安装,老苏默认使用了 SQLite ,命令行安装,则使用了群晖套件中自带的 MariaDB 和容器部署的 MariaDB

建数据库

老苏用了群晖自带的 MariaDB 10 数据库。

phpMyAdmin 中创建名为 speedtest 的空数据库。

为便于说明,假设数据库密码为 123456

所以根据上面的设置,最后得到的数据库相关的参数如下:

  • 数据库主机:192.168.0.197,与群晖主机 IP 一致;
  • 数据库端口:3307
  • 数据库用户:speedtest
  • 数据库密码:123456
  • 数据库库名:speedtest,因为勾选了与用户同名;

安装

在群晖上以 Docker 方式安装。

关于镜像,一开始是 ajustesen/speedtest-tracker,本文写作时, latest 版本对应为 v0.14.5,但这个版本到 v0.19.0 就不再更新了

与这个版本对应的是 ghcr.io/alexjustesen/speedtest-tracker

官方现在推荐的版本是 lscr.io/linuxserver/speedtest-tracker,在 dockerhub 上就是 linuxserver/speedtest-tracker,本文修订时的最新版本为 0.20.6

docker 文件夹中,创建一个新文件夹 speedtest,并在其中建一个子文件夹 config

文件夹装载路径说明
docker/speedtest/config/config存放数据库和网页文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
876480

默认对外暴露了 3 端口

  • 80 端口是 http 协议的
  • 443 端口是 http 协议的

老苏只保留了 80 端口

环境

可变
PUID设为 1000
PGID设为 1000
DB_CONNECTION设置数据库类型,支持 sqlitemysql
APP_KEY用于加密和解密数据的密钥
APP_TIMEZONE如果数据库不使用 UTC 作为默认时区,则应设置应用程序时区
SPEEDTEST_SCHEDULE用于按计划运行速度测试的 Cron 表达式
PRUNE_RESULTS_OLDER_THAN保存测试结果的天数
  • APP_KEY:可以在 https://speedtest-tracker.dev 生成

  • SPEEDTEST_SCHEDULE:可以问 AI,老苏用了 */10 * * * *,这是 10 分钟

更多环境变量的说明,请参考官方文档:
https://docs.speedtest-tracker.dev/getting-started/environment-variables

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 speedtest 和 子目录
mkdir -p /volume1/docker/speedtest/config# 进入 speedtest 目录
cd /volume1/docker/speedtest# 运行容器
docker run -d \--restart unless-stopped \--name speedtest-tracker \-p 8764:80 \-v $(pwd)/config:/config \-e PUID=1000 \-e PGID=1000 \-e APP_KEY=base64:Bl8DLs4k220iy5Y5OkdRh51wuDzur0IFmOXS5Qi+L6M= \-e DB_CONNECTION=sqlite \-e APP_TIMEZONE=Asia/Shanghai \-e SPEEDTEST_SCHEDULE="*/10 * * * *" \-e PRUNE_RESULTS_OLDER_THAN=7 \linuxserver/speedtest-tracker

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

直接使用群晖 mariadb 数据库的 docker-compose.yml 文件

version: '3'services:speedtest-tracker:image: linuxserver/speedtest-tracker:latestcontainer_name: speedtest-trackerrestart: unless-stoppedports:- '8764:80'volumes:- ./config:/configenvironment:- PUID=1000- PGID=1000- DB_CONNECTION=mysql- DB_HOST=192.168.0.197- DB_PORT=3307- DB_DATABASE=speedtest- DB_USERNAME=speedtest- DB_PASSWORD=123456- APP_KEY=base64:Bl8DLs4k220iy5Y5OkdRh51wuDzur0IFmOXS5Qi+L6M=- APP_TIMEZONE=Asia/Shanghai- SPEEDTEST_SCHEDULE="*/10 * * * *"- PRUNE_RESULTS_OLDER_THAN=7

独立部署数据库的 docker-compose.yml 文件

version: '3'services:speedtest-tracker:image: linuxserver/speedtest-tracker:latestcontainer_name: speedtest-trackerrestart: unless-stoppedports:- '8764:80'volumes:- ./config:/configenvironment:- PUID=1000- PGID=1000- DB_CONNECTION=mysql- DB_HOST=db- DB_PORT=3306- DB_DATABASE=speedtest- DB_USERNAME=speedtest- DB_PASSWORD=123456- APP_KEY=base64:Bl8DLs4k220iy5Y5OkdRh51wuDzur0IFmOXS5Qi+L6M=- APP_TIMEZONE=Asia/Shanghai- SPEEDTEST_SCHEDULE="*/10 * * * *"- PRUNE_RESULTS_OLDER_THAN=7depends_on:- dbdb:image: mariadb:10.6container_name: speedtest-dbrestart: alwaysvolumes:- ./data:/var/lib/mysqlenvironment:- MARIADB_DATABASE=speedtest- MARIADB_USER=speedtest- MARIADB_PASSWORD=123456- MARIADB_RANDOM_ROOT_PASSWORD=true

然后执行下面的命令

# 新建文件夹 speedtest 和 子目录
mkdir -p /volume1/docker/speedtest/{config,data}# 进入 speedtest 目录
cd /volume1/docker/speedtest# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8764 就能看到注册界面

缺省的账号: admin@example.com,密码:password

登录成功后的界面

如果你不想等待,可以进行手动测试。点右上角黄色按钮 Run Speedtest,会有一行小字 Ookla speedtest

继续点 Ookla speedtest,会看到 Ookla speedtest started

这时候,你会看到有数据显示了

如果测试总是失败

可以考虑通过 SPEEDTEST_SERVERS 参数,指定用于速度测试的服务器

可以通过内置的命令,获取附近的服务器列表

docker exec speedtest-tracker php /app/www/artisan app:ookla-list-servers

或者在这里 https://linuxspeedtest.com查 ID

可能这里国内的会更多一些,https://williamyaps.github.io/wlmjavascript/servercli.html

docker-cli 中,可以增加环境变量

   -e SPEEDTEST_SERVERS="3633,45170,54312" \

docker-compose.yml 中增加环境变量

      - SPEEDTEST_SERVERS="3633,45170,54312"

Docker 管理器中,只要编辑原来的容器,新增一条即可

如果 SPEEDTEST_SCHEDULE 设置有问题,可能导致下面👇的错误

参考文档

alexjustesen/speedtest-tracker: Speedtest Tracker is a self-hosted internet performance tracking application that runs speedtest checks against Ookla’s Speedtest service.
地址:https://github.com/alexjustesen/speedtest-tracker

Introduction - Speedtest Tracker
地址:https://docs.speedtest-tracker.dev/

MySQL - connection refused - New install of both · Issue #1078 · alexjustesen/speedtest-tracker
地址:https://github.com/alexjustesen/speedtest-tracker/issues/1078

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/375926.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

192.168.1.1路由器管理系统使用教程

节选自:192.168.1.1路由器管理系统-厂商有哪些-如何使用-无法登录原因-苏州稳联 什么是 192.168.1.1 路由器管理系统? 192.168.1.1 是大多数家庭路由器的默认 IP 地址,用于访问路由器的管理控制台。通过这个管理系统,用户可以配…

彻底搞懂JVM垃圾回收

哈喽,大家好🎉,我是世杰。 欢迎大家关注我的公众号『程序员世杰』获取更多后端技术干货🎉🎉! 本文我为大家介绍「JVM垃圾回收那些事」 面试连环call 如何判断对象是否应被回收?finalize方法的实现机制是什么?如何判…

在Windows环境下安装pycharm

Python环境搭建 第一步下载安装python 等待安装完成 验证python是否安装成功 Python开发工具安装部署 JetBrains: Essential tools for software developers and teams PyCharm: the Python IDE for data science and web development 下载社区版本的PyCharm 双击打开下载好的…

python制作甘特图的基本知识(附Demo)

目录 前言1. matplotlib2. plotly 前言 甘特图是一种常见的项目管理工具,用于表示项目任务的时间进度 直观地看到项目的各个任务在时间上的分布和进度 常用的绘制甘特图的工具是 matplotlib 和 plotly 主要以Demo的形式展示 1. matplotlib 功能强大的绘图库&a…

nx上darknet的使用-目标检测-在python中的使用

1 内置的代码 在darknet中已经内置了两个py文件 darknet_video.py与darknet_images.py用法类似,都是改一改给的参数就行了,我们说一下几个关键的参数 input 要预测哪张图像weights 要使用哪个权重config_file 要使用哪个cfg文件data_file 要使用哪个da…

SQLite 命令行客户端 + HTA 实现简易UI

SQLite 命令行客户端 HTA 实现简易UI SQLite 客户端.hta目录结构V2V3参考资料 仅用于探索可行性&#xff0c;就只实现了 SELECT。 SQLite 客户端.hta <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html;…

StarRocks分布式元数据源码解析

1. 支持元数据表 https://github.com/StarRocks/starrocks/pull/44276/files 核心类&#xff1a;LogicalIcebergMetadataTable&#xff0c;Iceberg元数据表&#xff0c;将元数据的各个字段做成表的列&#xff0c;后期可以通过sql操作从元数据获取字段&#xff0c;这个表的组成…

Java版Flink使用指南——从RabbitMQ中队列中接入消息流

大纲 创建RabbitMQ队列新建工程新增依赖编码设置数据源配置读取、处理数据完整代码 打包、上传和运行任务测试 工程代码 在《Java版Flink使用指南——安装Flink和使用IntelliJ制作任务包》一文中&#xff0c;我们完成了第一个小型Demo的编写。例子中的数据是代码预先指定的。而…

人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像

摘要 商品工业属性画像是电商产品经理在进行商品管理、推荐、搜索、广告等业务时的重要依据。通过对商品的工业属性&#xff08;如品类、品牌、规格、功能、风格等&#xff09;的准确识别和标注&#xff0c;可以提高商品的展示效果、匹配度、转化率和用户满意度。然而&#xf…

如何为IP申请SSL证书

目录 以下是如何轻松为IP地址申请SSL证书的详细步骤&#xff1a; 申请IP证书的基本条件&#xff1a; 申请IP SSL证书的方式&#xff1a; 确保网络通信安全的核心要素之一&#xff0c;是有效利用SSL证书来加密数据传输&#xff0c;特别是对于那些直接通过IP地址访问的资源。I…

Java 将图片转base64和base64转图片

工具 Base64 和 图片互转。 导入的依赖 <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl --><dependency><groupId>com.sun.xml.bind</groupId><artifactId>jaxb-impl</artifactId><version>4.0.5</versi…

【linux】进程间通信(IPC)——匿名管道,命名管道与System V内核方案的共享内存,以及消息队列和信号量的原理概述

目录 ✈必备知识 进程间通信概述 &#x1f525;概述 &#x1f525;必要性 &#x1f525;原理 管道概述 &#x1f525;管道的本质 &#x1f525;管道的相关特性 &#x1f525;管道的同步与互斥机制 匿名管道 &#x1f525;系统调用接口介绍 &#x1f525;内核原理 …

【开发环境】搭建PX4+ROS2+MAVROS2+Simulink+Optitrack实物联合仿真环境

搭建PX4ROS2MAVROS2SimulinkOptiTrack实物联合仿真环境 Ubuntu中的安装过程下载并编译PX4固件代码安装ROS2安装VRPN动捕数据转换ROS2话题库安装VRPN库拉取vrpn_client_ros2节点代码并配置VRPN server参数编译软件包启动vrpn_client_ros2节点重命名话题名 /vrpn/fly/pose 为 /ma…

Mac VSCode 突然闪退、崩溃、打不开了

vscode 1.90.2版本下载&#xff0c;刚上传还在审核中 1、 思路历程 VSCode 作为前端常用开发工具&#xff0c;其重要性就不一一描述了。 所以 VSCode 突然打不开了&#xff0c;真的是让我一脸懵逼。 本来以为问题不大&#xff0c;于是 &#xff1a; 1、重启了一下VSCode 2、…

Python 爬虫:使用打码平台来识别各种验证码:

本课程使用的是 超级鹰 打码平台&#xff0c; 没有账户的请自行注册&#xff01; 超级鹰验证码识别-专业的验证码云端识别服务,让验证码识别更快速、更准确、更强大 使用打码平台来攻破验证码难题&#xff0c; 是很简单容易的&#xff0c; 但是要钱&#xff01; 案例代码及测…

记录些Redis题集(1)

Redis内存淘汰触发条件的相关配置如下&#xff1a; Redis通过配置项maxmemory来设定其允许使用的最大内存容量。当Redis实际占用的内存达到这一阈值时&#xff0c;将触发内存淘汰机制&#xff0c;开始删除部分数据以释放内存空间&#xff0c;防止服务因内存溢出而异常。 Redi…

vitest 单元测试应用与配置

vitest 应用与配置 一、简介 Vitest 旨在将自己定位为 Vite 项目的首选测试框架&#xff0c;即使对于不使用 Vite 的项目也是一个可靠的替代方案。它本身也兼容一些Jest的API用法。 二、安装vitest // npm npm install -D vitest // yarn yarn add -D vitest // pnpm pnpm …

【Linux】vim详解

1.什么是vi/vim? 简单来说&#xff0c;vi是老式的文本编辑器&#xff0c;不过功能已经很齐全了&#xff0c;但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具&#xff0c;就连 vim的官方网站&#xff08; http://www.vim.org&#xff09;自己也说vim是一…

【公益案例展】华为云X《无尽攀登》——攀登不停,向上而行

‍ 华为云公益案例 本项目案例由华为云投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2024中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 夏伯渝&#xff0c;中国无腿登珠峰第一人&#xff0c;一生43年…

语言模型演进:从NLP到LLM的跨越之旅

在人工智能的浩瀚宇宙中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是一个充满挑战和机遇的领域。随着技术的发展&#xff0c;我们见证了从传统规则到统计机器学习&#xff0c;再到深度学习和预训练模型的演进。如今&#xff0c;我们站在了大型语言模型&#xff…