diff --git a/nixos/modules/services/networking/mihomo.nix b/nixos/modules/services/networking/mihomo.nix index 312530caeaad..d4bb10496279 100644 --- a/nixos/modules/services/networking/mihomo.nix +++ b/nixos/modules/services/networking/mihomo.nix @@ -25,6 +25,7 @@ in webui = lib.mkOption { default = null; type = lib.types.nullOr lib.types.path; + example = lib.literalExpression "pkgs.metacubexd"; description = '' Local web interface to use. diff --git a/pkgs/by-name/me/metacubexd/package.nix b/pkgs/by-name/me/metacubexd/package.nix new file mode 100644 index 000000000000..c55083e5b224 --- /dev/null +++ b/pkgs/by-name/me/metacubexd/package.nix @@ -0,0 +1,55 @@ +{ + lib, + fetchFromGitHub, + nix-update-script, + nodejs, + pnpm, + stdenv, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "metacubexd"; + version = "1.140.0"; + + src = fetchFromGitHub { + owner = "MetaCubeX"; + repo = "metacubexd"; + rev = "v${finalAttrs.version}"; + hash = "sha256-OVLG+MHgwWTorPuBTHsHUAY1FSN91j7xWgRDJ7FiO7E="; + }; + + nativeBuildInputs = [ + pnpm.configHook + nodejs + ]; + + pnpmDeps = pnpm.fetchDeps { + inherit (finalAttrs) pname version src; + hash = "sha256-24PkWT5UZJwMtL3y8qdf3XFuf3v5PjiP9XESbw3oppY="; + }; + + buildPhase = '' + runHook preBuild + + pnpm build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp -r ./dist $out + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Clash.Meta Dashboard, The Official One, XD"; + homepage = "https://github.com/MetaCubeX/metacubexd"; + license = lib.licenses.mit; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ Guanran928 ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ceac535c016a..3f02d7417d2e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31256,6 +31256,13 @@ with pkgs; manuskript = libsForQt5.callPackage ../applications/editors/manuskript { }; + metacubexd = callPackage ../by-name/me/metacubexd/package.nix { + pnpm = callPackage ../development/tools/pnpm/generic.nix { + version = "9.1.4"; + hash = "sha256-MKGAGsTnI3ee/tE6IfTDn562yfu0ztEBvOBrQiWT18k="; + }; + }; + minari = python3Packages.toPythonApplication python3Packages.minari; mindforger = libsForQt5.callPackage ../applications/editors/mindforger { };