Compare commits

...

16 Commits

Author SHA1 Message Date
uttarayan21
88df4eef88 feat(dashboards): add Grafana monitoring dashboards for various nodes
Some checks failed
Flake checker / Build Nix targets (push) Has been cancelled
2025-10-24 15:27:33 +05:30
uttarayan21
937f4c8590 fix(git): move signingkey to correct config block 2025-10-24 14:52:59 +05:30
uttarayan21
5539c45489 feat(monitoring): update OIDC config for improved authentication handling 2025-10-24 14:36:15 +05:30
uttarayan21
705c6c0b3b feat(monitoring): update OAuth config for improved security settings 2025-10-24 14:13:59 +05:30
uttarayan21
bda071e9f8 feat(monitoring): add Grafana and Prometheus service configurations 2025-10-24 13:49:43 +05:30
uttarayan21
41d2200b2e refactor(git): update configuration to use centralized email setting
refactor(starship): enhance config with palette and external TOML file
2025-10-24 09:57:05 +05:30
uttarayan21
b2982efef0 refactor(home): use mkForce for config values and disable stylix targets 2025-10-24 09:34:29 +05:30
uttarayan21
322e4e4230 refactor(darwin,nixos): simplify module imports and theme configs 2025-10-24 08:54:36 +05:30
uttarayan21
7e98fc2e52 feat(darwin): add stylix module for enhanced styling options 2025-10-24 08:18:46 +05:30
uttarayan21
32ee60eae4 feat(home): add RetroArch for device "ryu" and update MPV config
Add RetroArch as a home package for devices named "ryu" and enhance MPV configuration with GPU settings. Adjust wallpaper engine service to improve performance. Add a script for enabling HDR with Steam commands.
2025-10-23 00:43:16 +05:30
uttarayan21
d1980ac0ae chore: update flake.lock with latest revisions and narHashes
feat(hyprland): enable direct_scanout and set bitdepth to 10

fix(hyprpaper): conditionally enable based on 'ryu' device

fix(wallpaperengine): add shorthand flag for scaling option

feat(ryu): switch to open NVIDIA driver and use latest package
2025-10-22 03:03:51 +05:30
uttarayan21
5a04c53801 feat(steam): add protonup-qt to system packages 2025-10-21 17:26:16 +05:30
uttarayan21
8ac3e4a723 feat(services): add wallpaperengine service and update configs 2025-10-21 15:41:59 +05:30
uttarayan21
5fe2e20829 feat(apps): add wallpaper engine support in Nix configuration 2025-10-21 12:29:19 +05:30
uttarayan21
907bb67f28 chore: remove commented-out sections for unused services 2025-10-18 14:33:41 +05:30
uttarayan21
6ff9fb3a0a refactor(services): comment out jellyseerr and lidarr, delete sonarr and radarr 2025-10-18 13:40:12 +05:30
42 changed files with 3408 additions and 232 deletions

9
.rules Normal file
View File

@@ -0,0 +1,9 @@
# Identity
You are a sysadmin that manages server configurations and deployments in nixos/nix-darwin and the nix language.
# Instructions
1. DO NOT under any circumstance create any new markdown files in this repository.
2. DO NOT add any helper scripts or shell scripts.
3. DO NOT add any example / snippets or sample code.
4. All configurations must be done using nix expressions if possible.
5. When adding any new file ensure it follows the existing naming conventions and directory structure.

View File

@@ -1,35 +1,27 @@
{ {
devices, devices,
inputs, inputs,
overlays,
home-manager,
nix-darwin, nix-darwin,
overlays,
... ...
}: (builtins.mapAttrs ( }: (builtins.mapAttrs (
name: device: name: device:
nix-darwin.lib.darwinSystem { nix-darwin.lib.darwinSystem {
system = device.system; system = device.system;
specialArgs = { specialArgs = {
inherit device; inherit device inputs;
stablePkgs = inputs.nixpkgs-stable.legacyPackages.${device.system};
}; };
modules = [ modules = [
{nixpkgs.overlays = overlays;} inputs.home-manager.darwinModules.home-manager
./${device.name}/configuration.nix
inputs.sops-nix.darwinModules.sops inputs.sops-nix.darwinModules.sops
home-manager.darwinModules.home-manager inputs.stylix.darwinModules.stylix
{
nixpkgs.config.allowUnfree = true; ./${device.name}/configuration.nix
home-manager = { ../home/module.nix
backupFileExtension = "bak"; {nixpkgs.overlays = overlays;}
useGlobalPkgs = true; ../sops.nix
useUserPackages = true; ../stylix.nix
extraSpecialArgs = {
inherit inputs;
inherit device;
};
users.${device.user}.imports = [../home];
};
}
]; ];
} }
) )

456
flake.lock generated
View File

@@ -233,11 +233,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759499898, "lastModified": 1760101617,
"narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=", "narHash": "sha256-8jf/3ZCi+B7zYpIyV04+3wm72BD7Z801IlOzsOACR7I=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "655e067f96fd44b3f5685e17f566b0e4d535d798", "rev": "1826a9923881320306231b1c2090379ebf9fa4f8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -284,6 +284,74 @@
"type": "github" "type": "github"
} }
}, },
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1752979451,
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"command-runner": { "command-runner": {
"inputs": { "inputs": {
"advisory-db": "advisory-db_2", "advisory-db": "advisory-db_2",
@@ -480,11 +548,11 @@
"csshacks": { "csshacks": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760110610, "lastModified": 1760625958,
"narHash": "sha256-p5mxDrxlQ7itJ3Y5ZC/ge5ym1vmKpjpC9EQo2KQfZAQ=", "narHash": "sha256-Muq68ZReyt8gISEJCt/ChzVQG+sVjkKS7Qq8+aAIswI=",
"owner": "MrOtherGuy", "owner": "MrOtherGuy",
"repo": "firefox-csshacks", "repo": "firefox-csshacks",
"rev": "a53bb3bf96a050719f68535acf9a71a67a2af15e", "rev": "4ca42c4c8d55f0c812869fbe34acdc82fa2e1ffd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -624,6 +692,22 @@
"type": "github" "type": "github"
} }
}, },
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1758112371,
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -890,6 +974,27 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_7": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_2"
@@ -1012,7 +1117,7 @@
}, },
"flake-utils_16": { "flake-utils_16": {
"inputs": { "inputs": {
"systems": "systems_19" "systems": "systems_20"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -1030,7 +1135,7 @@
}, },
"flake-utils_17": { "flake-utils_17": {
"inputs": { "inputs": {
"systems": "systems_20" "systems": "systems_21"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1726560853,
@@ -1048,7 +1153,7 @@
}, },
"flake-utils_18": { "flake-utils_18": {
"inputs": { "inputs": {
"systems": "systems_21" "systems": "systems_22"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -1208,6 +1313,22 @@
"type": "github" "type": "github"
} }
}, },
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"ghostty": { "ghostty": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
@@ -1217,11 +1338,11 @@
"zon2nix": "zon2nix" "zon2nix": "zon2nix"
}, },
"locked": { "locked": {
"lastModified": 1760469165, "lastModified": 1761017224,
"narHash": "sha256-iU9zt9qF1rckFj2QgSSzcY0TlEe0ALhIzC8nWMXlKPs=", "narHash": "sha256-ETFcYfgn8TgRG/Z/y/tX8C2Ef1q0GoQuwt5cYiwPpyw=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "e5247f6d10ae02cc892c77d7435319549769ba1c", "rev": "3548acfac63e7674b5e25896f6b393474fe8ea65",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1274,6 +1395,23 @@
"type": "github" "type": "github"
} }
}, },
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1748186689,
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "48.2",
"repo": "gnome-shell",
"type": "github"
}
},
"guihua": { "guihua": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -1313,11 +1451,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760500983, "lastModified": 1761005073,
"narHash": "sha256-zfY4F4CpeUjTGgecIJZ+M7vFpwLc0Gm9epM/iMQd4w8=", "narHash": "sha256-r6qbieh8iC1q1eCaWv15f4UIp8SeGffwswhNSA1Qk3s=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c53e65ec92f38d30e3c14f8d628ab55d462947aa", "rev": "84e1adb0cdd13f5f29886091c7234365e12b1e7f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1413,11 +1551,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759490292, "lastModified": 1760445448,
"narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=", "narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "9431db625cd9bb66ac55525479dce694101d6d7a", "rev": "50fb9f069219f338a11cf0bcccb9e58357d67757",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1473,11 +1611,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1760531859, "lastModified": 1760959370,
"narHash": "sha256-akjHaa54IEBlgeDNwVuuNdkttbDOStgXpDXeJ5GR2QI=", "narHash": "sha256-tqZWNOZg9P1gpWiHNGtZTTb/UK+2E5LFmFpfEIArTqE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "ab11af9664a80df70fe3398810b79c4298312a33", "rev": "46dab01bcc47b2e29f36cd4d35d04091e4134a67",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1498,11 +1636,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749046714, "lastModified": 1759610243,
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-protocols", "repo": "hyprland-protocols",
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1787,11 +1925,11 @@
"ik_llama": { "ik_llama": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760527240, "lastModified": 1761046190,
"narHash": "sha256-zCP+PR/Wjy8790PjxaWKJRBMfn6cB8pdZfduCPNRGK0=", "narHash": "sha256-kDujswCMCC4YSgJ5d/KHmRviBLBfAoB4DwOsfTUZEHo=",
"owner": "ikawrakow", "owner": "ikawrakow",
"repo": "ik_llama.cpp", "repo": "ik_llama.cpp",
"rev": "9d364b88ba91450e00230453321f5762708ef54f", "rev": "caf9759c9793965591c8ab626c763d4bcb150677",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2010,11 +2148,11 @@
"neorg": { "neorg": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760020070, "lastModified": 1760743016,
"narHash": "sha256-zzOtcbGyyb+3D1yevWF2Yu4TuqweTYjuozyZle1ZOrg=", "narHash": "sha256-8OWc0Dv4AAn6rv1YqgJfNHseu9nn/8xk9eDhkmAwvMs=",
"owner": "nvim-neorg", "owner": "nvim-neorg",
"repo": "neorg", "repo": "neorg",
"rev": "5f61d8b8f52546f6248ec663aedf16264a7ac946", "rev": "1dd99edd73c48196f7fa9ec763089fb774cf5499",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2046,11 +2184,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760338583, "lastModified": 1760721282,
"narHash": "sha256-IGwy02SH5K2hzIFrKMRsCmyvwOwWxrcquiv4DbKL1S4=", "narHash": "sha256-aAHphQbU9t/b2RRy2Eb8oMv+I08isXv2KUGFAFn7nCo=",
"owner": "LnL7", "owner": "LnL7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "9a9ab01072f78823ca627ae5e895e40d493c3ecf", "rev": "c3211fcd0c56c11ff110d346d4487b18f7365168",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2169,11 +2307,11 @@
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1760241904, "lastModified": 1760846226,
"narHash": "sha256-OD7QnaGEVNdukYEbJbUNWPsvnDrpbZOZxVIk6Pt9Jhw=", "narHash": "sha256-xmU8kAsRprJiTGBTaGrwmjBP3AMA9ltlrxHKFuy5JWc=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "c9f5ea45f25652ec2f771f9426ccacb21cbbaeaa", "rev": "5024e1901239a76b7bf94a4cd27f3507e639d49e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2189,11 +2327,11 @@
"nixpkgs": "nixpkgs_7" "nixpkgs": "nixpkgs_7"
}, },
"locked": { "locked": {
"lastModified": 1760493654, "lastModified": 1761011864,
"narHash": "sha256-DRJZnMoBw+p6o0XjaAOfAJjwr4s93d1+eCsCRsAP/jY=", "narHash": "sha256-x1mJJuLDeJCA7ptCpkmJYrYaeBlUQc4A4WnOKDJ0MFg=",
"owner": "Infinidoge", "owner": "Infinidoge",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"rev": "4ca5164f23948b4b5429d8fdcddc142079c6aa6b", "rev": "15115a47e7de2321a81ecd3075e5e0043c28aaac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2297,11 +2435,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1760539229, "lastModified": 1761059842,
"narHash": "sha256-+jSamRIs+nAiqyM5GF+eFA0xSJ1QVIFbpav/ZIHfSok=", "narHash": "sha256-8lTvs2qVqRmBYzDdEk05QnA/YD46cFmsJ2quLOOTrdU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8a41f2d9a20000f9be2c634c273cee915ebf309d", "rev": "94e6ba8aabc211872ab51d9dbb47c2af1598dbc9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2361,11 +2499,11 @@
}, },
"nixpkgs_12": { "nixpkgs_12": {
"locked": { "locked": {
"lastModified": 1760284886, "lastModified": 1760878510,
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", "rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2378,10 +2516,10 @@
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 315532800, "lastModified": 315532800,
"narHash": "sha256-YwoXN6fthkakCFD7nXPcUK+rkNr6ZTNTuF8zdGaxZo0=", "narHash": "sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk=",
"rev": "dc704e6102e76aad573f63b74c742cd96f8f1e6c", "rev": "82c2e0d6dde50b17ae366d2aa36f224dc19af469",
"type": "tarball", "type": "tarball",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre870318.dc704e6102e7/nixexprs.tar.xz" "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre877938.82c2e0d6dde5/nixexprs.tar.xz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@@ -2435,11 +2573,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1760038930, "lastModified": 1760524057,
"narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=", "narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3", "rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2483,11 +2621,11 @@
}, },
"nixpkgs_9": { "nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1760284886, "lastModified": 1760878510,
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", "rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2507,11 +2645,11 @@
"systems": "systems_16" "systems": "systems_16"
}, },
"locked": { "locked": {
"lastModified": 1760538614, "lastModified": 1760960598,
"narHash": "sha256-RSim5VyR6tqq3tJImSNYIXIjdA6k+0BWz6JFgQTkQiQ=", "narHash": "sha256-UP1v+sEkHuvD2+qyhxbkQpBR+dl9U0ljml3/dMI2jeU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "d60696f62d0f9265dd9eff8e54ce2cd4b20c92e1", "rev": "e3b77e803b2350b72f4d72c8f175ab0fbfe5a642",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2532,11 +2670,11 @@
"norg-meta": "norg-meta" "norg-meta": "norg-meta"
}, },
"locked": { "locked": {
"lastModified": 1760631802, "lastModified": 1761028045,
"narHash": "sha256-S7Y99hLRow3m6V3bt65bKpuvwewUF4q5SD/Xm+ZU8+8=", "narHash": "sha256-Sw670APKxEv+psem2F2hZZfBLOEB9GOqaVetlBVta2s=",
"owner": "nvim-neorg", "owner": "nvim-neorg",
"repo": "nixpkgs-neorg-overlay", "repo": "nixpkgs-neorg-overlay",
"rev": "e6919e67252a6ced7f97ab8a6cdd0599b94c0024", "rev": "a4de2f08c180be6410f246ded7fe38a71c9911e3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2592,11 +2730,11 @@
"nixpkgs": "nixpkgs_12" "nixpkgs": "nixpkgs_12"
}, },
"locked": { "locked": {
"lastModified": 1760539645, "lastModified": 1761057802,
"narHash": "sha256-8UtLgwQzg36w8E3d+wkwo3KECra37QcobwCiWJ6IG+o=", "narHash": "sha256-I+/6oqGFCzLBho6IDJaePJyTb2Pk0MSkE5h6rXZRuks=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nur", "repo": "nur",
"rev": "3ec0f68b18b66b46b9791264d9831218fd252fff", "rev": "e0ebb94b9c8b636b877bc038ec936f1c942d8f65",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2605,6 +2743,31 @@
"type": "github" "type": "github"
} }
}, },
"nur_2": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1758998580,
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"nuschtosSearch": { "nuschtosSearch": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_11", "flake-utils": "flake-utils_11",
@@ -2691,11 +2854,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1758108966, "lastModified": 1760663237,
"narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=", "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b", "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2792,6 +2955,7 @@
"rest-nvim": "rest-nvim", "rest-nvim": "rest-nvim",
"rust-overlay": "rust-overlay_8", "rust-overlay": "rust-overlay_8",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix",
"tmux-float": "tmux-float", "tmux-float": "tmux-float",
"tree-sitter-d2": "tree-sitter-d2", "tree-sitter-d2": "tree-sitter-d2",
"tree-sitter-just": "tree-sitter-just", "tree-sitter-just": "tree-sitter-just",
@@ -3019,11 +3183,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760495781, "lastModified": 1761014195,
"narHash": "sha256-3OGPAQNJswy6L4VJyX3U9/z7fwgPFvK6zQtB2NHBV0Y=", "narHash": "sha256-PlIZkwQM0an4ptA7vEC39ZlJcXPxqtKWtsRCwKz3I4w=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "11e0852a2aa3a65955db5824262d76933750e299", "rev": "f34ca7f18bd13e9f4487b0bff3017d3188f21904",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3060,11 +3224,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760393368, "lastModified": 1760998189,
"narHash": "sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E=", "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "ab8d56e85b8be14cff9d93735951e30c3e86a437", "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3073,6 +3237,40 @@
"type": "github" "type": "github"
} }
}, },
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_7",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": "nur_2",
"systems": "systems_19",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1761028816,
"narHash": "sha256-s1XiIeJHpODVWfzsPaK9e21iz1dQSCU3H4/1OxOsyps=",
"owner": "nix-community",
"repo": "stylix",
"rev": "b81dc0a385443099e7d231fe6275189e32c3b760",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "stylix",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
@@ -3283,6 +3481,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_22": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@@ -3388,6 +3601,87 @@
"type": "github" "type": "github"
} }
}, },
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1757716333,
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1757811970,
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1757811247,
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"tmux-float": { "tmux-float": {
"inputs": { "inputs": {
"advisory-db": "advisory-db_5", "advisory-db": "advisory-db_5",
@@ -3448,11 +3742,11 @@
"tree-sitter-nu": { "tree-sitter-nu": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760525538, "lastModified": 1760786516,
"narHash": "sha256-de5r6BAtb/q4EiAwsBqvqt1uIIAp8R53s4871pHtwvY=", "narHash": "sha256-Zkl5V7Rcw+1HoT1U5q8wRVR17wq6qP3gHPhiLYKF7H8=",
"owner": "nushell", "owner": "nushell",
"repo": "tree-sitter-nu", "repo": "tree-sitter-nu",
"rev": "74ff80b2cff6d68286747a3de45531965ad2cf38", "rev": "4f4ac8667c1e7f80d0d9f9534845e63026210aaf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3555,11 +3849,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1755354946, "lastModified": 1760713634,
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", "narHash": "sha256-5HXelmz2x/uO26lvW7MudnadbAfoBnve4tRBiDVLtOM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", "rev": "753bbbdf6a052994da94062e5b753288cef28dfb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3592,11 +3886,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760466542, "lastModified": 1761020606,
"narHash": "sha256-q2QZhrrjHbvW4eFzoEGkj/wUHNU6bVGPyflurx5ka6U=", "narHash": "sha256-XdDpTJHjFqZJ3ss6xzTWYyi3PEObX2fs+kW0Wg/rNDk=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "3446bcbf5f46ecb18e82244888730c4983c30b22", "rev": "637cb6167da4dbf8ef7f5a50e69933c4f9796095",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -13,6 +13,10 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager-stable = { home-manager-stable = {
url = "github:nix-community/home-manager/release-25.05"; url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View File

@@ -38,5 +38,6 @@ lib.optionalAttrs device.hasGui {
./zed.nix ./zed.nix
./zen.nix ./zen.nix
./vial.nix ./vial.nix
./wallpaperengine.nix
]; ];
} }

View File

@@ -7,7 +7,6 @@
enable = device.is "ryu"; enable = device.is "ryu";
installBatSyntax = false; installBatSyntax = false;
settings = { settings = {
theme = "catppuccin-mocha";
font-family = [ font-family = [
"Hasklug Nerd Font Mono" "Hasklug Nerd Font Mono"
]; ];

View File

@@ -1,9 +1,11 @@
{ {
lib,
pkgs, pkgs,
device, device,
inputs, inputs,
... ...
}: { }: {
stylix.targets.kitty.enable = false;
programs.kitty = { programs.kitty = {
enable = true; enable = true;
# enable = false; # enable = false;
@@ -11,11 +13,11 @@
# name = "FiraCode Nerd Font Mono"; # name = "FiraCode Nerd Font Mono";
name = "Hasklug Nerd Font Mono"; name = "Hasklug Nerd Font Mono";
# name = "Monaspace Krypton Var Light"; # name = "Monaspace Krypton Var Light";
size = 13; size = lib.mkForce 13;
}; };
settings = { settings = {
background_opacity = "0.8"; background_opacity = lib.mkForce "0.8";
background = "#000000"; background = lib.mkForce "#000000";
shell = "${pkgs.fish}/bin/fish"; shell = "${pkgs.fish}/bin/fish";
hide_window_decorations = "yes"; hide_window_decorations = "yes";
cursor_trail = 1; cursor_trail = 1;
@@ -25,7 +27,7 @@
darwinLaunchOptions = [ darwinLaunchOptions = [
"--single-instance" "--single-instance"
]; ];
themeFile = "Catppuccin-Mocha"; themeFile = lib.mkForce "Catppuccin-Mocha";
# package = inputs.nixpkgs-stable.legacyPackages.${device.system}.kitty; # package = inputs.nixpkgs-stable.legacyPackages.${device.system}.kitty;
}; };
} }

View File

@@ -1,6 +1,29 @@
{pkgs, ...}: { {pkgs, ...}: {
programs.mpv = { programs.mpv = {
enable = true; enable = true;
config = {
vo = "gpu-next";
gpu-api = "vulkan";
loop-file = "inf";
loop-playlist = "inf";
};
profiles = {
hdr = {
vo = "gpu-next";
gpu-api = "vulkan";
hdr-compute-peak = "yes";
hdr-peak-detect = "yes";
target-peak = 400;
target-prim = "bt.2020";
target-trc = "pq";
inverse-tone-mapping = "yes";
tone-mapping = "spline";
tone-mapping-mode = "auto";
target-colorspace-hint = "auto";
gamut-mapping = "desaturate";
};
};
package = package =
if pkgs.stdenv.isLinux if pkgs.stdenv.isLinux
then pkgs.mpv-unwrapped.wrapper {mpv = pkgs.mpv-unwrapped.override {sixelSupport = true;};} then pkgs.mpv-unwrapped.wrapper {mpv = pkgs.mpv-unwrapped.override {sixelSupport = true;};}

View File

@@ -0,0 +1,9 @@
{
pkgs,
lib,
...
}: {
home.packages = lib.optionals pkgs.stdenv.isLinux [
pkgs.linux-wallpaperengine
];
}

View File

@@ -101,7 +101,7 @@
telemetry = { telemetry = {
metrics = false; metrics = false;
}; };
buffer_font_size = 15; buffer_font_size = lib.mkDefault 15;
# language_models = { # language_models = {
# ollama = { # ollama = {
# api_url = "https://ollama.ryu.darksailor.dev"; # api_url = "https://ollama.ryu.darksailor.dev";
@@ -143,7 +143,7 @@
}; };
}; };
}; };
theme = "Catppuccin Mocha"; theme = lib.mkForce "Catppuccin Mocha";
}; };
userTasks = let userTasks = let
zed = zed =

20
home/module.nix Normal file
View File

@@ -0,0 +1,20 @@
{
device,
inputs,
...
}: {
nixpkgs.config.allowUnfree = true;
home-manager = {
backupFileExtension = "bak";
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit inputs;
inherit device;
stablePkgs = inputs.nixpkgs-stable.legacyPackages.${device.system};
};
users.${device.user}.imports = [
./.
];
};
}

View File

@@ -7,13 +7,6 @@
programs. programs.
bat = { bat = {
enable = true; enable = true;
config = {theme = "catppuccin";};
themes = {
catppuccin = {
src = "${pkgs.catppuccinThemes.bat}/themes";
file = "Catppuccin Mocha.tmTheme";
};
};
# extraPackages = with pkgs.bat-extras; [batman batgrep batwatch]; # extraPackages = with pkgs.bat-extras; [batman batgrep batwatch];
}; };
} }

View File

@@ -38,6 +38,7 @@
./yazi.nix ./yazi.nix
./yt-dlp.nix ./yt-dlp.nix
./zoxide.nix ./zoxide.nix
./retroarch.nix
# ./goread.nix # ./goread.nix
# ./helix.nix # ./helix.nix

View File

@@ -5,6 +5,7 @@
config, config,
... ...
}: { }: {
stylix.targets.fish.enable = false;
programs.fish = { programs.fish = {
enable = true; enable = true;
shellAbbrs = { shellAbbrs = {

View File

@@ -1,15 +1,15 @@
{ {
pkgs, pkgs,
lib, config,
device,
... ...
}: { }: {
programs.git = { programs.git = {
enable = true; enable = true;
lfs.enable = true; lfs.enable = true;
userName = "uttarayan21"; settings = {
userEmail = "email@uttarayan.me"; user.name = "uttarayan21";
extraConfig = { user.email = config.accounts.email.accounts.fastmail.address;
user.signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJfKKrX8yeIHUUury0aPwMY6Ha+BJyUR7P0Gqid90ik/";
color.ui = true; color.ui = true;
core.editor = "nvim"; core.editor = "nvim";
core.pager = "${pkgs.delta}/bin/delta"; core.pager = "${pkgs.delta}/bin/delta";
@@ -18,7 +18,6 @@
merge.conflictStyle = "diff3"; merge.conflictStyle = "diff3";
diff.colorMoved = "default"; diff.colorMoved = "default";
push.autoSetupRemote = true; push.autoSetupRemote = true;
user.signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJfKKrX8yeIHUUury0aPwMY6Ha+BJyUR7P0Gqid90ik/";
gpg.format = "ssh"; gpg.format = "ssh";
commit.gpgsign = true; commit.gpgsign = true;
pull = { pull = {

View File

@@ -0,0 +1,8 @@
{
pkgs,
device,
lib,
...
}: {
home.packages = lib.optionals (device.name == "ryu") [pkgs.retroarch-full];
}

View File

@@ -4,6 +4,7 @@
device, device,
... ...
}: { }: {
stylix.targets.starship.enable = false;
programs.starship = { programs.starship = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;

View File

@@ -9,6 +9,16 @@
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
enableNushellIntegration = true; enableNushellIntegration = true;
theme = builtins.fromTOML (builtins.readFile "${pkgs.catppuccinThemes.yazi}/themes/mocha.toml"); # theme = lib.mkDefault builtins.fromTOML (builtins.readFile "${pkgs.catppuccinThemes.yazi}/themes/mocha.toml");
settings = {
plugin = {
prepend_preloaders = [
{
name = "/run/user/1000/gvfs";
run = "noop";
}
];
};
};
}; };
} }

View File

@@ -12,5 +12,6 @@
./hyprmon.nix ./hyprmon.nix
./hyprland.nix ./hyprland.nix
./hyprpaper.nix ./hyprpaper.nix
./wallpaperengine.nix
]; ];
} }

View File

@@ -4,6 +4,7 @@
device, device,
... ...
}: { }: {
stylix.targets.gtk.enable = false;
gtk = { gtk = {
enable = device.is "ryu"; enable = device.is "ryu";
theme = { theme = {

View File

@@ -32,11 +32,15 @@
systemd.enable = true; systemd.enable = true;
settings = { settings = {
source = "${pkgs.catppuccinThemes.hyprland}/themes/mocha.conf"; # source = "${pkgs.catppuccinThemes.hyprland}/themes/mocha.conf";
render = { render = {
direct_scanout = true;
cm_fs_passthrough = 1; cm_fs_passthrough = 1;
cm_auto_hdr = 1; cm_auto_hdr = 1;
}; };
experimental = {
xx_color_management_v4 = true;
};
monitorv2 = [ monitorv2 = [
{ {
output = device.monitors.primary; output = device.monitors.primary;
@@ -44,10 +48,12 @@
position = "0x0"; position = "0x0";
scale = 1; scale = 1;
transform = 0; transform = 0;
# bitdepth = 10; supports_wide_color = 1;
supports_hdr = 1;
bitdepth = 10;
# cm = "hdr"; # cm = "hdr";
# sdrbrightness = 1.1; # sdrbrightness = 0.005;
# sdrsaturation = 1.2; # sdrsaturation = 200;
} }
{ {
output = device.monitors.secondary; output = device.monitors.secondary;
@@ -85,8 +91,8 @@
gaps_in = 5; gaps_in = 5;
gaps_out = 20; gaps_out = 20;
border_size = 2; border_size = 2;
"col.active_border" = "$mauve $mauve 45deg"; # "col.active_border" = "$mauve $mauve 45deg";
"col.inactive_border" = "$crust"; # "col.inactive_border" = "$crust";
}; };
ecosystem = { ecosystem = {

View File

@@ -13,7 +13,6 @@
silksongFleas = nextcloudWallpapers "silksong-fleas.jpg"; silksongFleas = nextcloudWallpapers "silksong-fleas.jpg";
in { in {
enable = device.is "ryu"; enable = device.is "ryu";
# enable = true;
systemd.enable = true; systemd.enable = true;
systemd.target = "hyprland-session.target"; systemd.target = "hyprland-session.target";
settings.preload = settings.preload =
@@ -22,7 +21,7 @@
silksongFleas silksongFleas
]; ];
settings.wallpapers = { settings.wallpapers = {
"${device.monitors.primary}" = silksongFleas; # "${device.monitors.primary}" = silksongFleas;
"${device.monitors.secondary}" = wallpapers.frieren_3; "${device.monitors.secondary}" = wallpapers.frieren_3;
"${device.monitors.tertiary}" = wallpapers.hornet; "${device.monitors.tertiary}" = wallpapers.hornet;
}; };

View File

@@ -0,0 +1,32 @@
{
pkgs,
device,
lib,
...
}:
lib.mkIf (device.is "ryu") {
systemd.user.services.wallpaperengine = {
Unit = {
Description = "Linux Wallpaper Engine";
After = ["hyprland-session.target"];
Wants = ["hyprland-session.target"];
PartOf = ["hyprland-session.target"];
};
Service = {
Environment = [
"XDG_SESSION_TYPE=wayland"
];
Type = "simple";
ExecStartPre = "${pkgs.coreutils}/bin/sleep 3";
ExecStart = "${pkgs.linux-wallpaperengine}/bin/linux-wallpaperengine --silent --no-audio-processing -f 15 --scaling fill --screen-root HDMI-A-1 --bg 2780316434";
Restart = "on-failure";
RestartSec = 5;
TimeoutStartSec = 30;
};
Install = {
WantedBy = ["hyprland-session.target"];
};
};
}

View File

@@ -1,10 +1,8 @@
{ {
nixpkgs,
devices, devices,
inputs, inputs,
nixpkgs,
overlays, overlays,
home-manager,
nur,
... ...
}: (builtins.mapAttrs ( }: (builtins.mapAttrs (
name: device: name: device:
@@ -16,34 +14,21 @@
lanzaboote = inputs.lanzaboote; lanzaboote = inputs.lanzaboote;
}; };
modules = [ modules = [
nur.modules.nixos.default
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
{nixpkgs.overlays = overlays;}
home-manager.nixosModules.home-manager
inputs.arion.nixosModules.arion inputs.arion.nixosModules.arion
# inputs.command-runner.nixosModules.command-runner inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.home-manager
inputs.lanzaboote.nixosModules.lanzaboote inputs.lanzaboote.nixosModules.lanzaboote
inputs.musnix.nixosModules.musnix inputs.musnix.nixosModules.musnix
inputs.nix-minecraft.nixosModules.minecraft-servers inputs.nix-minecraft.nixosModules.minecraft-servers
{ inputs.nur.modules.nixos.default
nixpkgs.config.allowUnfree = true; inputs.sops-nix.nixosModules.sops
home-manager = { inputs.stylix.nixosModules.stylix
backupFileExtension = "bak";
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit inputs;
inherit device;
stablePkgs = inputs.nixpkgs-stable.legacyPackages.${device.system};
};
users.${device.user}.imports = [
../home
];
};
}
../sops.nix
./${device.name}/configuration.nix ./${device.name}/configuration.nix
../home/module.nix
{nixpkgs.overlays = overlays;}
../sops.nix
../stylix.nix
]; ];
} }
) )

View File

@@ -0,0 +1,615 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\"mirai-node\",mode=\"idle\"}[5m])) * 100)",
"legendFormat": "CPU Usage",
"range": true,
"refId": "A"
}
],
"title": "Mirai CPU Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_memory_MemTotal_bytes{job=\"mirai-node\"} - node_memory_MemAvailable_bytes{job=\"mirai-node\"}",
"legendFormat": "Used Memory",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_memory_MemTotal_bytes{job=\"mirai-node\"}",
"legendFormat": "Total Memory",
"range": true,
"refId": "B"
}
],
"title": "Mirai Memory Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "CPU %"
},
"properties": [
{
"id": "unit",
"value": "percent"
},
{
"id": "custom.cellOptions",
"value": {
"type": "gauge"
}
},
{
"id": "max",
"value": 100
}
]
},
{
"matcher": {
"id": "byName",
"options": "Memory"
},
"properties": [
{
"id": "unit",
"value": "bytes"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "CPU %"
}
]
},
"pluginVersion": "10.0.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "namedprocess_namegroup_cpu_seconds_total{job=\"mirai-process\"}",
"format": "table",
"legendFormat": "__auto",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "namedprocess_namegroup_memory_bytes{job=\"mirai-process\"}",
"format": "table",
"hide": false,
"legendFormat": "__auto",
"range": true,
"refId": "B"
}
],
"title": "Mirai Running Processes",
"transformations": [
{
"id": "merge",
"options": {}
},
{
"id": "organize",
"options": {
"excludeByName": {
"__name__": true,
"instance": true,
"job": true
},
"indexByName": {},
"renameByName": {
"Value #A": "CPU %",
"Value #B": "Memory",
"groupname": "Process Name"
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 16
},
"id": 4,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load1{job=\"mirai-node\"}",
"legendFormat": "1m load",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load5{job=\"mirai-node\"}",
"legendFormat": "5m load",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load15{job=\"mirai-node\"}",
"legendFormat": "15m load",
"range": true,
"refId": "C"
}
],
"title": "Mirai System Load",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 5,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(node_network_receive_bytes_total{job=\"mirai-node\",device!~\"lo|veth.*|docker.*|virbr.*|br-.*\"}[5m])",
"legendFormat": "{{device}} - Inbound",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(node_network_transmit_bytes_total{job=\"mirai-node\",device!~\"lo|veth.*|docker.*|virbr.*|br-.*\"}[5m])",
"legendFormat": "{{device}} - Outbound",
"range": true,
"refId": "B"
}
],
"title": "Mirai Network I/O",
"type": "timeseries"
}
],
"refresh": "30s",
"schemaVersion": 38,
"style": "dark",
"tags": [
"monitoring",
"mirai"
],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Mirai System Monitoring",
"uid": "mirai-monitoring",
"version": 0,
"weekStart": ""
}

View File

@@ -0,0 +1,689 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\"tsuba-node\",mode=\"idle\"}[5m])) * 100)",
"legendFormat": "Tsuba CPU Usage",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\"ryu-node\",mode=\"idle\"}[5m])) * 100)",
"legendFormat": "Ryu CPU Usage",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\"mirai-node\",mode=\"idle\"}[5m])) * 100)",
"legendFormat": "Mirai CPU Usage",
"range": true,
"refId": "C"
}
],
"title": "All Devices - CPU Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 8
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "(node_memory_MemTotal_bytes{job=\"tsuba-node\"} - node_memory_MemAvailable_bytes{job=\"tsuba-node\"}) / node_memory_MemTotal_bytes{job=\"tsuba-node\"} * 100",
"legendFormat": "Tsuba Memory Usage",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "(node_memory_MemTotal_bytes{job=\"ryu-node\"} - node_memory_MemAvailable_bytes{job=\"ryu-node\"}) / node_memory_MemTotal_bytes{job=\"ryu-node\"} * 100",
"legendFormat": "Ryu Memory Usage",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "(node_memory_MemTotal_bytes{job=\"mirai-node\"} - node_memory_MemAvailable_bytes{job=\"mirai-node\"}) / node_memory_MemTotal_bytes{job=\"mirai-node\"} * 100",
"legendFormat": "Mirai Memory Usage",
"range": true,
"refId": "C"
}
],
"title": "All Devices - Memory Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "CPU %"
},
"properties": [
{
"id": "unit",
"value": "percent"
},
{
"id": "custom.cellOptions",
"value": {
"type": "gauge"
}
},
{
"id": "max",
"value": 100
}
]
},
{
"matcher": {
"id": "byName",
"options": "Memory %"
},
"properties": [
{
"id": "unit",
"value": "percent"
},
{
"id": "custom.cellOptions",
"value": {
"type": "gauge"
}
},
{
"id": "max",
"value": 100
}
]
},
{
"matcher": {
"id": "byName",
"options": "Load 1m"
},
"properties": [
{
"id": "unit",
"value": "short"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 16
},
"id": 3,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "10.0.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=~\"tsuba-node|ryu-node|mirai-node\",mode=\"idle\"}[5m])) * 100)",
"format": "table",
"legendFormat": "__auto",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "(node_memory_MemTotal_bytes{job=~\"tsuba-node|ryu-node|mirai-node\"} - node_memory_MemAvailable_bytes{job=~\"tsuba-node|ryu-node|mirai-node\"}) / node_memory_MemTotal_bytes{job=~\"tsuba-node|ryu-node|mirai-node\"} * 100",
"format": "table",
"hide": false,
"legendFormat": "__auto",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load1{job=~\"tsuba-node|ryu-node|mirai-node\"}",
"format": "table",
"hide": false,
"legendFormat": "__auto",
"range": true,
"refId": "C"
}
],
"title": "System Overview",
"transformations": [
{
"id": "merge",
"options": {}
},
{
"id": "organize",
"options": {
"excludeByName": {
"__name__": true,
"instance": true
},
"indexByName": {},
"renameByName": {
"Value #A": "CPU %",
"Value #B": "Memory %",
"Value #C": "Load 1m",
"job": "Device"
}
}
},
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"Device",
"CPU %",
"Memory %",
"Load 1m"
]
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 24
},
"id": 4,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load1{job=\"tsuba-node\"}",
"legendFormat": "Tsuba 1m load",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load1{job=\"ryu-node\"}",
"legendFormat": "Ryu 1m load",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load1{job=\"mirai-node\"}",
"legendFormat": "Mirai 1m load",
"range": true,
"refId": "C"
}
],
"title": "System Load Average (1m)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Process Count"
},
"properties": [
{
"id": "unit",
"value": "short"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 24
},
"id": 5,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "10.0.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "count by (job) (namedprocess_namegroup_num_procs{job=~\"tsuba-process|ryu-process|mirai-process\"})",
"format": "table",
"legendFormat": "__auto",
"range": true,
"refId": "A"
}
],
"title": "Active Process Count by Device",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"__name__": true,
"Time": true
},
"indexByName": {},
"renameByName": {
"Value": "Process Count",
"job": "Device"
}
}
}
],
"type": "table"
}
],
"refresh": "30s",
"schemaVersion": 38,
"style": "dark",
"tags": [
"monitoring",
"overview"
],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Infrastructure Overview",
"uid": "overview-monitoring",
"version": 0,
"weekStart": ""
}

View File

@@ -0,0 +1,615 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\"ryu-node\",mode=\"idle\"}[5m])) * 100)",
"legendFormat": "CPU Usage",
"range": true,
"refId": "A"
}
],
"title": "Ryu CPU Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_memory_MemTotal_bytes{job=\"ryu-node\"} - node_memory_MemAvailable_bytes{job=\"ryu-node\"}",
"legendFormat": "Used Memory",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_memory_MemTotal_bytes{job=\"ryu-node\"}",
"legendFormat": "Total Memory",
"range": true,
"refId": "B"
}
],
"title": "Ryu Memory Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "CPU %"
},
"properties": [
{
"id": "unit",
"value": "percent"
},
{
"id": "custom.cellOptions",
"value": {
"type": "gauge"
}
},
{
"id": "max",
"value": 100
}
]
},
{
"matcher": {
"id": "byName",
"options": "Memory"
},
"properties": [
{
"id": "unit",
"value": "bytes"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "CPU %"
}
]
},
"pluginVersion": "10.0.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "namedprocess_namegroup_cpu_seconds_total{job=\"ryu-process\"}",
"format": "table",
"legendFormat": "__auto",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "namedprocess_namegroup_memory_bytes{job=\"ryu-process\"}",
"format": "table",
"hide": false,
"legendFormat": "__auto",
"range": true,
"refId": "B"
}
],
"title": "Ryu Running Processes",
"transformations": [
{
"id": "merge",
"options": {}
},
{
"id": "organize",
"options": {
"excludeByName": {
"__name__": true,
"instance": true,
"job": true
},
"indexByName": {},
"renameByName": {
"Value #A": "CPU %",
"Value #B": "Memory",
"groupname": "Process Name"
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 16
},
"id": 4,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load1{job=\"ryu-node\"}",
"legendFormat": "1m load",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load5{job=\"ryu-node\"}",
"legendFormat": "5m load",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load15{job=\"ryu-node\"}",
"legendFormat": "15m load",
"range": true,
"refId": "C"
}
],
"title": "Ryu System Load",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 5,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(node_network_receive_bytes_total{job=\"ryu-node\",device!~\"lo|veth.*|docker.*|virbr.*|br-.*\"}[5m])",
"legendFormat": "{{device}} - Inbound",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(node_network_transmit_bytes_total{job=\"ryu-node\",device!~\"lo|veth.*|docker.*|virbr.*|br-.*\"}[5m])",
"legendFormat": "{{device}} - Outbound",
"range": true,
"refId": "B"
}
],
"title": "Ryu Network I/O",
"type": "timeseries"
}
],
"refresh": "30s",
"schemaVersion": 38,
"style": "dark",
"tags": [
"monitoring",
"ryu"
],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Ryu System Monitoring",
"uid": "ryu-monitoring",
"version": 0,
"weekStart": ""
}

View File

@@ -0,0 +1,615 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\"tsuba-node\",mode=\"idle\"}[5m])) * 100)",
"legendFormat": "CPU Usage",
"range": true,
"refId": "A"
}
],
"title": "Tsuba CPU Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_memory_MemTotal_bytes{job=\"tsuba-node\"} - node_memory_MemAvailable_bytes{job=\"tsuba-node\"}",
"legendFormat": "Used Memory",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_memory_MemTotal_bytes{job=\"tsuba-node\"}",
"legendFormat": "Total Memory",
"range": true,
"refId": "B"
}
],
"title": "Tsuba Memory Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "CPU %"
},
"properties": [
{
"id": "unit",
"value": "percent"
},
{
"id": "custom.cellOptions",
"value": {
"type": "gauge"
}
},
{
"id": "max",
"value": 100
}
]
},
{
"matcher": {
"id": "byName",
"options": "Memory"
},
"properties": [
{
"id": "unit",
"value": "bytes"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "CPU %"
}
]
},
"pluginVersion": "10.0.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "namedprocess_namegroup_cpu_seconds_total{job=\"tsuba-process\"}",
"format": "table",
"legendFormat": "__auto",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "namedprocess_namegroup_memory_bytes{job=\"tsuba-process\"}",
"format": "table",
"hide": false,
"legendFormat": "__auto",
"range": true,
"refId": "B"
}
],
"title": "Tsuba Running Processes",
"transformations": [
{
"id": "merge",
"options": {}
},
{
"id": "organize",
"options": {
"excludeByName": {
"__name__": true,
"instance": true,
"job": true
},
"indexByName": {},
"renameByName": {
"Value #A": "CPU %",
"Value #B": "Memory",
"groupname": "Process Name"
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 16
},
"id": 4,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load1{job=\"tsuba-node\"}",
"legendFormat": "1m load",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load5{job=\"tsuba-node\"}",
"legendFormat": "5m load",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "node_load15{job=\"tsuba-node\"}",
"legendFormat": "15m load",
"range": true,
"refId": "C"
}
],
"title": "Tsuba System Load",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 5,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(node_network_receive_bytes_total{job=\"tsuba-node\",device!~\"lo|veth.*|docker.*|virbr.*|br-.*\"}[5m])",
"legendFormat": "{{device}} - Inbound",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(node_network_transmit_bytes_total{job=\"tsuba-node\",device!~\"lo|veth.*|docker.*|virbr.*|br-.*\"}[5m])",
"legendFormat": "{{device}} - Outbound",
"range": true,
"refId": "B"
}
],
"title": "Tsuba Network I/O",
"type": "timeseries"
}
],
"refresh": "30s",
"schemaVersion": 38,
"style": "dark",
"tags": [
"monitoring",
"tsuba"
],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Tsuba System Monitoring",
"uid": "tsuba-monitoring",
"version": 0,
"weekStart": ""
}

View File

@@ -8,9 +8,10 @@
./flaresolverr.nix ./flaresolverr.nix
./gitea.nix ./gitea.nix
./homepage.nix ./homepage.nix
./immich.nix # ./immich.nix
./llama.nix ./llama.nix
./lldap.nix ./lldap.nix
./monitoring.nix
./nextcloud.nix ./nextcloud.nix
./prowlarr.nix ./prowlarr.nix
./resolved.nix ./resolved.nix

View File

@@ -26,13 +26,6 @@
href = "https://jellyfin.tsuba.darksailor.dev"; href = "https://jellyfin.tsuba.darksailor.dev";
}; };
} }
{
"Jellyseerr" = {
icon = "jellyseerr.png";
description = "Jellyseerr: Media Request Management";
href = "https://jellyseerr.tsuba.darksailor.dev";
};
}
{ {
"Sonarr" = { "Sonarr" = {
icon = "sonarr.png"; icon = "sonarr.png";
@@ -47,13 +40,6 @@
href = "https://bazarr.tsuba.darksailor.dev"; href = "https://bazarr.tsuba.darksailor.dev";
}; };
} }
{
"Lidarr" = {
icon = "lidarr.png";
description = "Lidarr: Music Management";
href = "https://lidarr.tsuba.darksailor.dev";
};
}
{ {
"Radarr" = { "Radarr" = {
icon = "radarr.png"; icon = "radarr.png";

View File

@@ -0,0 +1,282 @@
{
config,
pkgs,
...
}: {
sops.secrets = {
"grafana/adminPassword" = {
owner = "grafana";
group = "grafana";
};
oauth-client-secret-grafana-authelia = {
owner = config.systemd.services.authelia-darksailor.serviceConfig.User;
key = "authelia/oidc/grafana/client_secret";
restartUnits = [
"authelia-darksailor.service"
];
};
oauth-client-secret-grafana = {
owner = config.systemd.services.grafana.serviceConfig.User;
key = "authelia/oidc/grafana/client_secret";
restartUnits = [
"grafana"
];
};
};
services = {
prometheus = {
enable = true;
port = 9090;
listenAddress = "0.0.0.0";
scrapeConfigs = [
{
job_name = "tsuba-node";
static_configs = [
{
targets = ["tsuba:9100"];
}
];
scrape_interval = "15s";
scrape_timeout = "10s";
}
{
job_name = "tsuba-process";
static_configs = [
{
targets = ["tsuba:9256"];
}
];
scrape_interval = "15s";
scrape_timeout = "10s";
}
{
job_name = "ryu-node";
static_configs = [
{
targets = ["ryu:9100"];
}
];
scrape_interval = "15s";
scrape_timeout = "10s";
}
{
job_name = "ryu-process";
static_configs = [
{
targets = ["ryu:9256"];
}
];
scrape_interval = "15s";
scrape_timeout = "10s";
}
{
job_name = "mirai-node";
static_configs = [
{
targets = ["localhost:9100"];
}
];
scrape_interval = "15s";
scrape_timeout = "10s";
}
{
job_name = "mirai-process";
static_configs = [
{
targets = ["localhost:9256"];
}
];
scrape_interval = "15s";
scrape_timeout = "10s";
}
];
retentionTime = "30d";
globalConfig = {
scrape_interval = "15s";
evaluation_interval = "15s";
};
};
prometheus.exporters = {
node = {
enable = true;
enabledCollectors = [
"systemd"
"textfile"
"filesystem"
"loadavg"
"meminfo"
"netdev"
"stat"
"time"
"uname"
"vmstat"
];
port = 9100;
};
process = {
enable = true;
settings.process_names = [
{
name = "{{.Comm}}";
cmdline = [".*"];
}
];
};
};
grafana = {
enable = true;
settings = {
server = {
http_addr = "0.0.0.0";
http_port = 3333;
domain = "monitoring.darksailor.dev";
root_url = "https://monitoring.darksailor.dev";
};
security = {
admin_user = "admin";
admin_password = "$__file{${config.sops.secrets."grafana/adminPassword".path}}";
};
auth = {
disable_login_form = true;
};
"auth.basic" = {
enabled = false;
};
"auth.generic_oauth" = {
enabled = true;
name = "Authelia";
client_id = "grafana";
client_secret = "$__file{${config.sops.secrets.oauth-client-secret-grafana.path}}";
scopes = "openid profile email groups";
empty_scopes = false;
auth_url = "https://auth.darksailor.dev/api/oidc/authorization";
token_url = "https://auth.darksailor.dev/api/oidc/token";
api_url = "https://auth.darksailor.dev/api/oidc/userinfo";
login_attribute_path = "email";
groups_attribute_path = "groups";
name_attribute_path = "name";
email_attribute_path = "email";
username_attribute_path = "preferred_username";
use_pkce = true;
auto_login = true;
allow_sign_up = true;
role_attribute_path = "contains(groups[*], 'sso_admin') && 'Admin' || Viewer";
use_refresh_token = false;
id_token_attribute_name = "";
signout_redirect_url = "https://auth.darksailor.dev/logout";
};
};
provision = {
enable = true;
datasources.settings.datasources = [
{
name = "Prometheus";
type = "prometheus";
access = "proxy";
url = "http://localhost:9090";
isDefault = true;
jsonData = {
timeInterval = "15s";
};
}
];
dashboards.settings = {
apiVersion = 1;
providers = [
{
name = "default";
type = "file";
options.path = "/var/lib/grafana/dashboards";
}
];
};
};
};
caddy.virtualHosts."monitoring.darksailor.dev".extraConfig = ''
reverse_proxy localhost:${builtins.toString config.services.grafana.settings.server.http_port}
'';
authelia = {
instances.darksailor = {
settings = {
identity_providers = {
oidc = {
claims_policies = {
grafana = {
id_token = [
"email"
"name"
"groups"
"preferred_username"
];
};
};
clients = [
{
client_name = "Grafana";
client_id = "grafana";
claims_policy = "grafana";
client_secret = ''{{ secret "${config.sops.secrets.oauth-client-secret-grafana-authelia.path}" }}'';
public = false;
authorization_policy = "one_factor";
require_pkce = true;
pkce_challenge_method = "S256";
redirect_uris = [
"https://monitoring.darksailor.dev/login/generic_oauth"
];
scopes = [
"openid"
"profile"
"email"
"groups"
];
response_types = ["code"];
grant_types = ["authorization_code"];
userinfo_signed_response_alg = "none";
id_token_signed_response_alg = "RS256";
access_token_signed_response_alg = "RS256";
token_endpoint_auth_method = "client_secret_basic";
}
];
};
};
};
};
};
};
# SOPS secrets for Grafana
# Create dashboard directory and copy dashboards
systemd.tmpfiles.rules = [
"d /var/lib/grafana/dashboards 0755 grafana grafana"
"C /var/lib/grafana/dashboards/tsuba-monitoring.json 0644 grafana grafana - ${./dashboards/tsuba-monitoring.json}"
"C /var/lib/grafana/dashboards/ryu-monitoring.json 0644 grafana grafana - ${./dashboards/ryu-monitoring.json}"
"C /var/lib/grafana/dashboards/mirai-monitoring.json 0644 grafana grafana - ${./dashboards/mirai-monitoring.json}"
"C /var/lib/grafana/dashboards/overview-monitoring.json 0644 grafana grafana - ${./dashboards/overview-monitoring.json}"
];
# Open firewall ports
networking.firewall = {
allowedTCPPorts = [
3000 # Grafana
9090 # Prometheus
9100 # Node exporter
9256 # Process exporter
];
# Allow Tailscale traffic for metrics scraping
trustedInterfaces = ["tailscale0"];
};
# Ensure Grafana service starts after PostgreSQL
# systemd.services.grafana.after = ["postgresql.service"];
# systemd.services.grafana.requires = ["postgresql.service"];
}

View File

@@ -120,8 +120,6 @@
}; };
plymouth = { plymouth = {
enable = true; enable = true;
theme = "catppuccin-mocha";
themePackages = with pkgs; [(catppuccin-plymouth.override {variant = "mocha";})];
}; };
# Bootloader. # Bootloader.

View File

@@ -8,4 +8,7 @@
pkgs.proton-ge-bin pkgs.proton-ge-bin
]; ];
}; };
environment.systemPackages = [
pkgs.protonup-qt
];
} }

View File

@@ -24,19 +24,20 @@
]; ];
}; };
nvidia = { nvidia = {
open = false; open = true;
modesetting.enable = true; modesetting.enable = true;
powerManagement.enable = true; powerManagement.enable = true;
powerManagement.finegrained = false; powerManagement.finegrained = false;
nvidiaSettings = true; nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.mkDriver { # package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "575.64.05"; # version = "575.64.05";
sha256_64bit = "sha256-hfK1D5EiYcGRegss9+H5dDr/0Aj9wPIJ9NVWP3dNUC0="; # sha256_64bit = "sha256-hfK1D5EiYcGRegss9+H5dDr/0Aj9wPIJ9NVWP3dNUC0=";
sha256_aarch64 = "sha256-GRE9VEEosbY7TL4HPFoyo0Ac5jgBHsZg9sBKJ4BLhsA="; # sha256_aarch64 = "sha256-GRE9VEEosbY7TL4HPFoyo0Ac5jgBHsZg9sBKJ4BLhsA=";
openSha256 = "sha256-mcbMVEyRxNyRrohgwWNylu45vIqF+flKHnmt47R//KU="; # openSha256 = "sha256-mcbMVEyRxNyRrohgwWNylu45vIqF+flKHnmt47R//KU=";
settingsSha256 = "sha256-o2zUnYFUQjHOcCrB0w/4L6xI1hVUXLAWgG2Y26BowBE="; # settingsSha256 = "sha256-o2zUnYFUQjHOcCrB0w/4L6xI1hVUXLAWgG2Y26BowBE=";
persistencedSha256 = "sha256-2g5z7Pu8u2EiAh5givP5Q1Y4zk4Cbb06W37rf768NFU="; # persistencedSha256 = "sha256-2g5z7Pu8u2EiAh5givP5Q1Y4zk4Cbb06W37rf768NFU=";
}; # };
package = config.boot.kernelPackages.nvidiaPackages.latest;
}; };
cpu.intel.updateMicrocode = cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware; lib.mkDefault config.hardware.enableRedistributableFirmware;

View File

@@ -21,6 +21,7 @@
inputs.arion.nixosModules.arion inputs.arion.nixosModules.arion
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
inputs.stylix.nixosModules.stylix
inputs.nix-minecraft.nixosModules.minecraft-servers inputs.nix-minecraft.nixosModules.minecraft-servers
nur.modules.nixos.default nur.modules.nixos.default
home-manager-stable.nixosModules.home-manager home-manager-stable.nixosModules.home-manager

View File

@@ -27,15 +27,15 @@
users.groups.jellyfin = {}; users.groups.jellyfin = {};
services = { services = {
jellyseerr = { # jellyseerr = {
enable = true; # enable = true;
package = unstablePkgs.jellyseerr; # package = unstablePkgs.jellyseerr;
}; # };
caddy = { caddy = {
virtualHosts."jellyseerr.tsuba.darksailor.dev".extraConfig = '' # virtualHosts."jellyseerr.tsuba.darksailor.dev".extraConfig = ''
import hetzner # import hetzner
reverse_proxy localhost:${builtins.toString config.services.jellyseerr.port} # reverse_proxy localhost:${builtins.toString config.services.jellyseerr.port}
''; # '';
virtualHosts."jellyfin.tsuba.darksailor.dev".extraConfig = '' virtualHosts."jellyfin.tsuba.darksailor.dev".extraConfig = ''
import hetzner import hetzner
reverse_proxy localhost:8096 reverse_proxy localhost:8096

View File

@@ -1,11 +0,0 @@
{...}: {
services = {
radarr.enable = true;
caddy = {
virtualHosts."radarr.tsuba.darksailor.dev".extraConfig = ''
import hetzner
reverse_proxy localhost:7878
'';
};
};
}

View File

@@ -1,9 +1,15 @@
{ {
unstablePkgs, unstablePkgs,
config, config,
pkgs,
lib, lib,
... ...
}: { }: {
systemd.services.sonarr = {
serviceConfig = {
path = [pkgs.ffmpeg];
};
};
services = let services = let
settings = { settings = {
auth = { auth = {
@@ -24,12 +30,6 @@
group = "media"; group = "media";
inherit settings; inherit settings;
}; };
lidarr = {
enable = true;
package = unstablePkgs.lidarr;
group = "media";
inherit settings;
};
bazarr = { bazarr = {
enable = true; enable = true;
package = unstablePkgs.bazarr; package = unstablePkgs.bazarr;

View File

@@ -1,24 +0,0 @@
{
pkgs,
unstablePkgs,
...
}: {
services = {
sonarr = {
enable = true;
package = unstablePkgs.sonarr;
};
systemd.services.sonarr = {
serviceConfig = {
path = [pkgs.ffmpeg];
};
};
caddy = {
virtualHosts."sonarr.tsuba.darksailor.dev".extraConfig = ''
import hetzner
reverse_proxy localhost:8989
'';
};
};
}

3
scripts/hdr-steamcommand Normal file
View File

@@ -0,0 +1,3 @@
ENABLE_HDR_WSI=1 DXVK_HDR=1 gamescope -W 2560 -H 1440 -r 240 -e --hdr-enabled -- %command%
PROTON_ENABLE_WAYLAND=1 PROTON_ENABLE_HDR=1 %command%

12
stylix.nix Normal file
View File

@@ -0,0 +1,12 @@
{pkgs, ...}: {
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
fonts = {
monospace = {
package = pkgs.nerd-fonts.hasklug;
name = "Hasklug Nerd Font Mono";
};
};
};
}

View File

@@ -68,8 +68,8 @@ in {
# https://github.com/catppuccin/yazi # https://github.com/catppuccin/yazi
yazi = mkCatppuccin { yazi = mkCatppuccin {
item = "yazi"; item = "yazi";
rev = "0846aed69b2a62d29c98e100af0cf55ca729723d"; rev = "043ffae14e7f7fcc136636d5f2c617b5bc2f5e31";
sha256 = "sha256-2T41qWMe++3Qxl9veRNHMeRI3eU4+LAueKTss02gYNk"; sha256 = "sha256-zkL46h1+U9ThD4xXkv1uuddrlQviEQD3wNZFRgv7M8Y=";
}; };
gtk = pkgs.catppuccin-gtk.override { gtk = pkgs.catppuccin-gtk.override {