Personal-use NixOS configuration
1{
2 lib,
3 pkgs,
4 buildDotnetModule,
5 dotnetCorePackages,
6 fetchFromGitHub,
7}:
8
9buildDotnetModule rec {
10 pname = "network-optimizer";
11 version = "1.11.5";
12
13 src = fetchFromGitHub {
14 owner = "Ozark-Connect";
15 repo = "NetworkOptimizer";
16 tag = "v${version}";
17 hash = "sha256-d7htjw7gozUnnqzmuDlg5Ala828nJ9zeBZsf3EFxbm4=";
18 };
19
20 nugetDeps = ./deps.json;
21
22 dotnet-sdk = dotnetCorePackages.sdk_10_0;
23 dotnet-runtime = dotnetCorePackages.aspnetcore_10_0;
24
25 projectFile = "src/NetworkOptimizer.Web";
26
27 dotnetBuildFlags = [
28 "-p:OverridePackageVersion=${version}"
29 ];
30
31 patches = [
32 ./ignore_local_packages.patch
33 ];
34
35 buildPhase = ''
36 runHook preBuild
37
38 env dotnet publish $dotnetProjectFiles \
39 --configuration Release \
40 --self-contained \
41 --output "$out/lib/${pname}" \
42 --no-restore \
43 ''${dotnetInstallFlags[@]} \
44 ''${dotnetFlags[@]}
45
46 runHook postBuild
47 '';
48
49 selfContainedBuild = true;
50 enableParallelBuilding = false;
51
52 nativeBuildInputs = with pkgs; [
53 git
54 ];
55
56 meta = {
57 description = "Self-hosted performance optimization and security audit tool for UniFi Networks";
58 homepage = "https://github.com/Ozark-Connect/NetworkOptimizer";
59 license = lib.licenses.bsl11;
60 maintainers = with lib.maintainers; [ encode42 ];
61 mainProgram = "NetworkOptimizer.Web";
62 };
63}