mirror of
https://github.com/CHN-beta/nixos.git
synced 2026-01-11 07:49:24 +08:00
modules.services.speedtest: init
This commit is contained in:
@@ -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
17
flake.lock
generated
@@ -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": {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 =
|
||||
[
|
||||
|
||||
24
modules/services/speedtest.nix
Normal file
24
modules/services/speedtest.nix
Normal 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; };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -47,6 +47,7 @@ inputs:
|
||||
synapse-synapse = 2009;
|
||||
synapse-matrix = 2010;
|
||||
hpcstat = 2011;
|
||||
speedtest = 2012;
|
||||
};
|
||||
};
|
||||
gid = mkOption
|
||||
|
||||
@@ -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
12
packages/speedtest.nix
Normal 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
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user