modules.services.speedtest: init

This commit is contained in:
2025-07-17 13:37:49 +08:00
parent 377a1a9011
commit 0cd648767b
8 changed files with 58 additions and 1 deletions

View File

@@ -28,6 +28,7 @@ inputs:
xray = { client.dnsmasq.hosts."git.nas.chn.moe" = "127.0.0.1"; xmuServer = {}; };
beesd."/" = { hashTableSizeMB = 10 * 128; threads = 4; };
nfs."/" = [(inputs.topInputs.self.config.dns."chn.moe".getAddress "wg1.pc")];
speedtest = {};
};
};
};

17
flake.lock generated
View File

@@ -1190,6 +1190,7 @@
"rsshub": "rsshub",
"rycee": "rycee",
"sops-nix": "sops-nix",
"speedtest": "speedtest",
"sqlite-orm": "sqlite-orm",
"sticker": "sticker",
"stickerpicker": "stickerpicker",
@@ -1253,6 +1254,22 @@
"type": "github"
}
},
"speedtest": {
"flake": false,
"locked": {
"lastModified": 1739473165,
"narHash": "sha256-QimemnDZXlL5Ip+RFD0uxO21Aaol3kCw6Mf/0E3jHQc=",
"owner": "librespeed",
"repo": "speedtest",
"rev": "a1c43977ad9bf73f09f81e8df3c22ea914ab9131",
"type": "github"
},
"original": {
"owner": "librespeed",
"repo": "speedtest",
"type": "github"
}
},
"sqlite-orm": {
"flake": false,
"locked": {

View File

@@ -62,6 +62,7 @@
mac-style = { url = "github:SergioRibera/s4rchiso-plymouth-theme?lfs=1"; flake = false; };
phono3py = { url = "github:phonopy/phono3py"; flake = false; };
sticker = { url = "git+https://git.chn.moe/chn/sticker.git?lfs=1"; flake = false; };
speedtest = { url = "github:librespeed/speedtest"; flake = false; };
};
outputs = inputs: let localLib = import ./flake/lib inputs.nixpkgs.lib; in

View File

@@ -4,7 +4,7 @@ let
{
autoroute = [ "api" "git" "grafana" "matrix" "peertube" "send" "synapse" "vikunja" "" ];
nas = [ "initrd.nas" ];
office = [ "srv2-node0" "xserverxmu" ];
office = [ "srv2-node0" "xserverxmu" "409test" ];
vps4 = [ "initrd.vps4" "xserver2.vps4" ];
vps6 =
[

View File

@@ -0,0 +1,24 @@
inputs:
{
options.nixos.services.speedtest = let inherit (inputs.lib) mkOption types; in mkOption
{
type = types.nullOr (types.submodule { options =
{
hostname = mkOption { type = types.nonEmptyStr; default = "409test.chn.moe"; };
};});
default = null;
};
config = let inherit (inputs.config.nixos.services) speedtest; in inputs.lib.mkIf (speedtest != null)
{
nixos.services =
{
phpfpm.instances.speedtest = {};
nginx.https.${speedtest.hostname} = let pkg = inputs.pkgs.localPackages.speedtest; in
{
global.root = "${pkg}";
location."~ ^.+?\.php(/.*)?$".php =
{ root = "${pkg}"; fastcgiPass = inputs.config.nixos.services.phpfpm.instances.speedtest.fastcgi; };
};
};
};
}

View File

@@ -47,6 +47,7 @@ inputs:
synapse-synapse = 2009;
synapse-matrix = 2010;
hpcstat = 2011;
speedtest = 2012;
};
};
gid = mkOption

View File

@@ -141,6 +141,7 @@ inputs: rec
license = inputs.pkgs.callPackage ./lumerical/license.nix
{ src = inputs.topInputs.self.src.lumerical.licenseManager.license; };
};
speedtest = inputs.pkgs.callPackage ./speedtest.nix { src = inputs.topInputs.speedtest; };
fromYaml = content: builtins.fromJSON (builtins.readFile
(inputs.pkgs.runCommand "toJSON" {}

12
packages/speedtest.nix Normal file
View File

@@ -0,0 +1,12 @@
{ stdenv, src, }: stdenv.mkDerivation
{
name = "speedtest";
inherit src;
dontConfigure = true;
dontBuild = true;
installPhase =
''
mkdir -p $out
cp -r $src/{index.html,speedtest.js,speedtest_worker.js,favicon.ico,backend} $out
'';
}