用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.mzph.cn/news/871626.shtml

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

相关文章

STM32编写代码之嵌入式常用位操作

在单片机编程的过程中&#xff0c;经常会遇到位操作进行赋值&#xff0c;例如 //程序1 int a 0,b 0x5b,c 0; //1 for (i 0; i < 8; i ) { //2a b & (0x80 >> i)); //3 c | (0x80 >> i); //4 } 这些位操作是什么意思呢&#xff1f…

GuLi商城-商品服务-API-品牌管理-JSR303自定义校验注解

自定义注解规则: 可以参考@NotNull注解 package com.nanjing.common.valid;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target;i…

跨域解决方案

跨域 当发起请求的协议号、域名、端口号中有一个不一样时就会导致跨域 跨域解决方案 分为两个方面&#xff0c;是否可以修改服务器端。 可以修改服务器端&#xff1a;cors方案、jsonp方案 不可以修改服务器端&#xff1a; 使用代理&#xff1a; 因为跨域主要是针对浏览器…

T113-i系统启动速度优化方案

背景: 硬件:T113-i + emmc 软件:uboot2018 + linux5.4 + QT应用 分支:longan 问题: 全志T113-i的官方系统软件编译出的固件,开机启动时间10多秒,启动时间太长,远远超过行业内linux系统的开机速度,需要进一步优化。 T113-i 优化后启动速度实测数据 启动阶段启动时间(…

Fastgpt本地使用Docker Compose 快速部署

使用 Docker Compose 快速部署 FastGPT 部署架构图 MongoDB:用于存储除了向量外的各类数据 PostgreSQL/Milvus:存储向量数据 OneAPI: 聚合各类 AI API,支持多模型调用 (任何模型问题,先自行通过 OneAPI 测试校验) 推荐配置 PgVector版本 体验测试首选 环境最低配置(单…

MySql性能调优04-[MySql事务与锁机制原理]

MySql事务与锁机制原理 从undo与redo日志&#xff0c;理解事务底层ACID底层原理事务四大隔离级别事务底层锁机制和MVCC并发优化机制串行化底层实现机制读已提交和可重复读底层实现MVCC机制详解脏写问题(重要)读已提交&#xff1f;实现机制 BufferPool缓存与redo日志是如何提升事…

海康相机GrabImage

#include <stdio.h> #include <Windows.h> #include <process.h> #include <conio.h> #include "MvCameraControl.h"bool g_bExit false;// ch:等待按键输入 | en:Wait for key press void WaitForKeyPress(void) {while(!_kbhit()){Sleep(…

6.S081的Lab学习——Lab11: Network

文章目录 前言Network提示&#xff1a;实现e1000_transmit的一些提示&#xff1a;实现e1000_recv的一些提示&#xff1a; 解析 总结 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招。打算尝试6.S081&#xff0c;将它的Lab逐一实现&#xff0c;并记录期间心酸历程。 代码下…

STM32MP135裸机编程:支持内存非对齐访问

0 前言 使用stm32官方可视化初始化代码生成工具STM32CubeMX生成的工程GCC编译选项默认不支持非对齐访问&#xff0c;在我们进行非对齐的访问时就会进入数据异常中断DAbt中。为了解决这一问题&#xff0c;我们需要在GCC编译选项中加上一处配置。 1 操作方法 右键STM32CubeIDE…

【Linux】:重定向和缓冲区

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家带来关于重定向和缓冲区的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精…

Paddle 打包部署

PaddleOCR 打包部署exe 心酸历程 PaddleOCR部署exe模式PaddleOCR安装到本地(稍后有时间再写)PaddleOCR打包过程异常问题记录&#xff01;&#xff01;&#xff01;&#xff01;No such file or directory: D:\\py_project\\paddleOCR\\dist\\paddleOCR\\_internal\\paddleocr\\…

Excel自动化工具-工作簿中sheet页合并-可自行选择需要处理的工作簿

宝子们可以选择直接下载文章顶部资源包【Excel自动化工具-工作簿中sheet页合并.xlsm】&#xff08;或者在博主的资源里下载&#xff09;&#xff0c;该资源功能为&#xff1a;合并sheet页 或者也可以自己编写宏代码&#xff0c;文章最后有附上源代码 没有office excel 的宝子…

linux之find指令基础

目录 前言一、find .二、find xxx -name "*.c"三、组合查找文件名四、find . -type f五、find . -maxdepth 2 -type f六、find . -type f -perm 777七、find . -type f -name "*.txt" ! -perm 777八、借助-exec命令参考链接 前言 testfind下 check1.c ch…

《乡土中国》重新审视自己的故乡,再出发

《乡土中国》重新审视自己的故乡&#xff0c;再出发 费孝通(1910—2005)&#xff0c;中国社会学家、人类学家。被誉为中国社会学和人类学的奠基人之一。江苏吴江人。1980年获国际应用人类学会马林诺斯基荣誉奖。1981年获英国皇家人类学会赫胥黎奖章。代表作有《乡土中国》《江村…

【周末闲谈】Stable Diffusion会魔法的绘画师

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️Python】 文章目录 前言Stable Diffusion介绍 使用ComfyUI 和 WebUIComfyUIWebUI 配置需求 Stable Diffusion资源分享吐司AiAUTOMATIC1111Civitai绘世整合包Nenly同学stability.ai 前言 在很早之前&…

【数学建模】2005建模A题:长江水质综合评价与预测

数据的无量纲化处理 数据的无量纲化处理是一种统计学中的预处理技术&#xff0c;主要用于消除数据中的量纲影响&#xff0c;使得不同单位或量级的指标可以相互比较和结合。无量纲化通过调整数据的范围或尺度&#xff0c;使得数据集中的每个特征或变量处于相似的数值区间内。以…

【React】Google 账号之个性化一键登录按钮功能

“使用 Google 帐号登录”功能可快速管理网站上的用户身份验证。用户登录 Google 账号、表示同意&#xff0c;并安全地与平台共享其个人基础资料信息。 官方文档&#xff1a;链接 一、获取 Google API 客户端 ID 打开 Google API 控制台 中的凭据页面 创建或选择 Google API 项…

网络分层及通信过程

网络分层体系 主流的理论体系中主要包含三种网络分层模型&#xff0c;即ISO的七层网络模型、TCP/IP的四层网络模型以及结合两种模型优点的五层网络模型&#xff0c;关于网络模型&#xff0c;主要起到对网络体系的一个整体认识&#xff0c;作为网络知识学习的开始&#xff0c;这…

【并发编程】进程 线程 协程

进程&#xff08;Process&#xff09;、线程&#xff08;Thread&#xff09;和协程&#xff08;Coroutine&#xff09;构成了计算机科学中实现任务并发执行的三种核心抽象机制。通常&#xff0c;为了提高程序的执行效率&#xff0c;开发者会根据应用场景和性能需求&#xff0c;…

Linux对文件访问的基本权限

文件权限控制对文件的访问。 有三种权限类别可应用&#xff1a;读取、写入和执行。 权限对文件和目录的影响&#xff1a; 权限 对文件的影响 对目录的影响 r读取 可以读取文件的内容 可以列出目录的内容 w写入 可以更改文件的内容 可以创建或删除目录中任一文件 x执行…