Compare commits

...

190 Commits

Author SHA1 Message Date
Richie 23ad4e19dd added transmission.nix 2025-01-03 13:02:09 -05:00
Richie 349cfa26f7 added media/services and torrenting/transmission datasets 2025-01-03 10:02:29 -05:00
Richie abd7101062 updated qbitvpn and added devices
https://github.com/binhex/arch-qbittorrentvpn/issues/296
https://github.com/binhex/arch-qbittorrentvpn/issues/294
https://github.com/binhex/arch-delugevpn/issues/418
2024-12-29 23:25:09 -05:00
github-actions[bot] 14b229a354 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/fec1195120bbcff43da5d2d34018e71f81bc7b0c?dir=pkgs/firefox-addons&narHash=sha256-l/HL7yeStHQ5QnXBzH%2BsT8RhkYaJJop2JCieVSZ1YU8%3D' (2024-12-19)
  → 'gitlab:rycee/nur-expressions/5b2c380332cf5a3022fde931d0346e2b868b544e?dir=pkgs/firefox-addons&narHash=sha256-22NF70bxkMY7/IY2NG0pC7WzgJ0bI67FGSUP37d2mQ8%3D' (2024-12-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/83ecd50915a09dca928971139d3a102377a8d242?narHash=sha256-wNX3hsScqDdqKWOO87wETUEi7a/QlPVgpC/Lh5rFOuA%3D' (2024-12-16)
  → 'github:nix-community/home-manager/35b98d20ca8f4ca1f6a2c30b8a2c8bb305a36d84?narHash=sha256-Gm%2B0DcbUS338vvkwyYWms5jsWlx8z8MeQBzcnIDuIkw%3D' (2024-12-24)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/a364e6a5e9eb93253daf93c747b150e31e09b13c?narHash=sha256-c/7bsbMcVMb8c4wiLA142ZQfL08U8qYJROGf9NCkfQE%3D' (2024-12-17)
  → 'github:lilyinstarlight/nixos-cosmic/847b93e3b63bcea9a477dd86bb4b56ce7e051f0e?narHash=sha256-Tm%2BBsKXJS/EdJd9DvLxDbw%2BchPI1o7A9RHKIFxho36I%3D' (2024-12-25)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/314e12ba369ccdb9b352a4db26ff419f7c49fa84?narHash=sha256-5fNndbndxSx5d%2BC/D0p/VF32xDiJCJzyOqorOYW4JEo%3D' (2024-12-13)
  → 'github:NixOS/nixpkgs/1807c2b91223227ad5599d7067a61665c52d1295?narHash=sha256-Pzyb%2BYNG5u3zP79zoi8HXYMs15Q5dfjDgwCdUI5B0nY%3D' (2024-12-22)
• Updated input 'nixos-cosmic/rust-overlay':
    'github:oxalica/rust-overlay/83ee8ff74d6294a7657320f16814754c4594127b?narHash=sha256-0aLx44yMblcOGpfFXKCzp2GhU5JaE6OTvdU%2BJYrXiUc%3D' (2024-12-16)
  → 'github:oxalica/rust-overlay/fb5fdba697ee9a2391ca9ceea3b853b4e3ce37a5?narHash=sha256-NdhUgB9BkLGW9I%2BQ1GyUUCc3CbDgsg7HLWjG7WZBR5Q%3D' (2024-12-24)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/b12e314726a4226298fe82776b4baeaa7bcf3dcd?narHash=sha256-mfv%2BJ/vO4nqmIOlq8Y1rRW8hVsGH3M%2BI2ESMjhuebDs%3D' (2024-12-16)
  → 'github:nixos/nixos-hardware/def1d472c832d77885f174089b0d34854b007198?narHash=sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl%2Bfk%3D' (2024-12-23)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d3c42f187194c26d9f0309a8ecc469d6c878ce33?narHash=sha256-cHar1vqHOOyC7f1%2BtVycPoWTfKIaqkoe1Q6TnKzuti4%3D' (2024-12-17)
  → 'github:nixos/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507?narHash=sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ%3D' (2024-12-19)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/10fa4d5157ce8775c341e011c1f7d0054885904d?narHash=sha256-6mYxwU%2BAGQUwTBCJpK05gDeg73evqRLOU7QQC71Ddp8%3D' (2024-12-19)
  → 'github:nixos/nixpkgs/138326d6e9841ab9e6161730d40e09cedd670c40?narHash=sha256-O1OXa12dHaObowGsfiM8pgphWfSXJj5v8sTxFoPXR0A%3D' (2024-12-25)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/bcba2fbf6963bf6bed3a749f9f4cf5bff4adb96d?narHash=sha256-LwcGIkORU8zfQ/8jAgptgPY8Zf9lGKB0vtNdQyEkaN8%3D' (2024-12-14)
  → 'github:nixos/nixpkgs/6df924734e1b626efd70925545de844b1c25246f?narHash=sha256-JG6n9tQET7ZLjvwjH9BdYE6pES/Alcduxv2FDXliuBM%3D' (2024-12-22)
2024-12-25 20:04:49 -05:00
Richie 02084080d2 moved muninn to desktop.nix
moved pipewire and kernel into desktop.nix
2024-12-25 18:30:50 -05:00
Richie 4a348041c4 set the Firefox user agent to PlayStation 5 2024-12-25 18:30:50 -05:00
Richie 9a245fb8c2 added plex-media-player 2024-12-25 18:30:50 -05:00
Richie be342d9ae8 adding sof-firmware 2024-12-25 18:30:50 -05:00
Richie 74d61236b6 adding defaultSession and removing gamescope.sh 2024-12-25 18:30:50 -05:00
github-actions[bot] 40f51d9934 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/bbc2409e8f7f1895987dd89a08f79bffb5294115?dir=pkgs/firefox-addons&narHash=sha256-eOoHTZE8Dc1pNiGHcFgFA0QmfdGN3DjUqhyMJP9e6IY%3D' (2024-12-17)
  → 'gitlab:rycee/nur-expressions/fec1195120bbcff43da5d2d34018e71f81bc7b0c?dir=pkgs/firefox-addons&narHash=sha256-l/HL7yeStHQ5QnXBzH%2BsT8RhkYaJJop2JCieVSZ1YU8%3D' (2024-12-19)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/3566ab7246670a43abd2ffa913cc62dad9cdf7d5?narHash=sha256-AKU6qqskl0yf2%2BJdRdD0cfxX4b9x3KKV5RqA6wijmPM%3D' (2024-12-13)
  → 'github:nixos/nixpkgs/d3c42f187194c26d9f0309a8ecc469d6c878ce33?narHash=sha256-cHar1vqHOOyC7f1%2BtVycPoWTfKIaqkoe1Q6TnKzuti4%3D' (2024-12-17)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/959dee99129777e1d58841db740cfe674dabd114?narHash=sha256-bvcAAMTX9Id5OGPaqtoTtQjJRwRDyAHqtaPUx9i%2BSL8%3D' (2024-12-17)
  → 'github:nixos/nixpkgs/10fa4d5157ce8775c341e011c1f7d0054885904d?narHash=sha256-6mYxwU%2BAGQUwTBCJpK05gDeg73evqRLOU7QQC71Ddp8%3D' (2024-12-19)
2024-12-19 06:52:51 -05:00
Richie 3bb8873e7d adding protontricks 2024-12-18 11:48:37 -05:00
Richie fe53feed59 moved all systems to linuxPackages_6_12
moved desktops off master
2024-12-17 21:56:31 -05:00
github-actions[bot] e7231d2bd1 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/46f83e2238a7028d4fd9cc266eea47a2dd8ff14b?dir=pkgs/firefox-addons&narHash=sha256-GjNY1VcpItYjU8D4%2BMaumj9eY06ASF05Q8eZApnRvrY%3D' (2024-12-12)
  → 'gitlab:rycee/nur-expressions/bbc2409e8f7f1895987dd89a08f79bffb5294115?dir=pkgs/firefox-addons&narHash=sha256-eOoHTZE8Dc1pNiGHcFgFA0QmfdGN3DjUqhyMJP9e6IY%3D' (2024-12-17)
• Updated input 'home-manager':
    'github:nix-community/home-manager/6e5b2d9e8014b5572e3367937a329e7053458d34?narHash=sha256-CN6q6iCzxI1gkNyk4xLdwaMKi10r7n%2BaJkRzWj8PXwQ%3D' (2024-12-11)
  → 'github:nix-community/home-manager/83ecd50915a09dca928971139d3a102377a8d242?narHash=sha256-wNX3hsScqDdqKWOO87wETUEi7a/QlPVgpC/Lh5rFOuA%3D' (2024-12-16)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/ad6f64f6512957048bdfd21be5f4ed54c8a53f37?narHash=sha256-uYdtD2nAjT55fXv8EW4TcItKFU1ugoZkFke4WSPxVs4%3D' (2024-12-12)
  → 'github:lilyinstarlight/nixos-cosmic/a364e6a5e9eb93253daf93c747b150e31e09b13c?narHash=sha256-c/7bsbMcVMb8c4wiLA142ZQfL08U8qYJROGf9NCkfQE%3D' (2024-12-17)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/a0f3e10d94359665dba45b71b4227b0aeb851f8e?narHash=sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk%3D' (2024-12-10)
  → 'github:NixOS/nixpkgs/314e12ba369ccdb9b352a4db26ff419f7c49fa84?narHash=sha256-5fNndbndxSx5d%2BC/D0p/VF32xDiJCJzyOqorOYW4JEo%3D' (2024-12-13)
• Updated input 'nixos-cosmic/rust-overlay':
    'github:oxalica/rust-overlay/d0483df44ddf0fd1985f564abccbe568e020ddf2?narHash=sha256-8GXR9kC07dyOIshAyfZhG11xfvBRSZzYghnZ2weOKJU%3D' (2024-12-11)
  → 'github:oxalica/rust-overlay/83ee8ff74d6294a7657320f16814754c4594127b?narHash=sha256-0aLx44yMblcOGpfFXKCzp2GhU5JaE6OTvdU%2BJYrXiUc%3D' (2024-12-16)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/cf737e2eba82b603f54f71b10cb8fd09d22ce3f5?narHash=sha256-%2BjjPup/ByS0LEVIrBbt7FnGugJgLeG9oc%2BivFASYn2U%3D' (2024-12-10)
  → 'github:nixos/nixos-hardware/b12e314726a4226298fe82776b4baeaa7bcf3dcd?narHash=sha256-mfv%2BJ/vO4nqmIOlq8Y1rRW8hVsGH3M%2BI2ESMjhuebDs%3D' (2024-12-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/a73246e2eef4c6ed172979932bc80e1404ba2d56?narHash=sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU%3D' (2024-12-09)
  → 'github:nixos/nixpkgs/3566ab7246670a43abd2ffa913cc62dad9cdf7d5?narHash=sha256-AKU6qqskl0yf2%2BJdRdD0cfxX4b9x3KKV5RqA6wijmPM%3D' (2024-12-13)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/b59108b804bd6c133afa2844de7bbaca17ca8555?narHash=sha256-YnCyUSG6BZn2daBd/XkRYgHTwMQrwFkHAqQfsG/dyfo%3D' (2024-12-12)
  → 'github:nixos/nixpkgs/959dee99129777e1d58841db740cfe674dabd114?narHash=sha256-bvcAAMTX9Id5OGPaqtoTtQjJRwRDyAHqtaPUx9i%2BSL8%3D' (2024-12-17)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/7109b680d161993918b0a126f38bc39763e5a709?narHash=sha256-dlK7n82FEyZlHH7BFHQAM5tua%2BlQO1Iv7aAtglc1O5s%3D' (2024-12-09)
  → 'github:nixos/nixpkgs/bcba2fbf6963bf6bed3a749f9f4cf5bff4adb96d?narHash=sha256-LwcGIkORU8zfQ/8jAgptgPY8Zf9lGKB0vtNdQyEkaN8%3D' (2024-12-14)
2024-12-17 21:56:31 -05:00
Richie cbec4e6deb moving to desktops to linuxPackages_6_12 2024-12-12 21:16:12 -05:00
Richie 60478dd979 moving to nvidiaPackages.beta 2024-12-12 20:45:21 -05:00
Richie 1490b31bb9 moved off zen kernel 2024-12-08 19:41:21 -05:00
github-actions[bot] 6e0a402d26 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/51d5446f359b67d5b6fdf45a145391c4d8679b3e?dir=pkgs/firefox-addons&narHash=sha256-7n66bpxbXkwBow1VSVHQe%2BrEW%2B8zPyawmDJ7Rd0uHNI%3D' (2024-12-03)
  → 'gitlab:rycee/nur-expressions/7b549b626e367b694787ab2b7c53d3ad9b37a61d?dir=pkgs/firefox-addons&narHash=sha256-7xW7DiA/jMajC9ZfOuK28xlFmnd0gv3qlzREOtc91Rk%3D' (2024-12-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/bf23fe41082aa0289c209169302afd3397092f22?narHash=sha256-zFOtOaqjzZfPMsm1mwu98syv3y%2BjziAq5DfWygaMtLg%3D' (2024-12-02)
  → 'github:nix-community/home-manager/d00c6f6d0ad16d598bf7e2956f52c1d9d5de3c3a?narHash=sha256-i5ay20XsvpW91N4URET/nOc0VQWOAd4c4vbqYtcH8Rc%3D' (2024-12-06)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/e1b76524988d600dcf415ec5355a727ca2c5debe?narHash=sha256-sMd0QBqmH68O2N7DAfz7WtCTPzgY2MWjAIw18dUgNcg%3D' (2024-12-03)
  → 'github:lilyinstarlight/nixos-cosmic/b9ec66ed4e1430061ca044e938bb10f3ab629ba3?narHash=sha256-oeBPiHmg8T/Qsf4qMkUqOrn6/xkJwREGo1jA%2B4xDssk%3D' (2024-12-08)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/62c435d93bf046a5396f3016472e8f7c8e2aed65?narHash=sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT%2B34%3D' (2024-11-30)
  → 'github:NixOS/nixpkgs/4dc2fc4e62dbf62b84132fe526356fbac7b03541?narHash=sha256-FillH0qdWDt/nlO6ED7h4cmN%2BG9uXwGjwmCnHs0QVYM%3D' (2024-12-05)
• Updated input 'nixos-cosmic/rust-overlay':
    'github:oxalica/rust-overlay/c65e91d4a33abc3bc4a892d3c5b5b378bad64ea1?narHash=sha256-dge02pUSe2QeC/B3PriA0R8eAX%2BEU3aDoXj9FcS3XDw%3D' (2024-11-30)
  → 'github:oxalica/rust-overlay/66526479b295ad238843a8a7367d2da7ec102757?narHash=sha256-FEDfBpM82XGdHDbLDJC4lV%2BQXSVN1rERt1MqtBGJZds%3D' (2024-12-07)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/cceee0a31d2f01bcc98b2fbd591327c06a4ea4f9?narHash=sha256-fc6jTzIwCIVWTX50FtW6AZpuukuQWSEbPiyg6ZRGWFY%3D' (2024-12-03)
  → 'github:nixos/nixos-hardware/e563803af3526852b6b1d77107a81908c66a9fcf?narHash=sha256-IS3bxa4N1VMSh3/P6vhEAHQZecQ3oAlKCDvzCQSO5Is%3D' (2024-12-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/55d15ad12a74eb7d4646254e13638ad0c4128776?narHash=sha256-M1%2BuCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo%3D' (2024-12-03)
  → 'github:nixos/nixpkgs/22c3f2cf41a0e70184334a958e6b124fb0ce3e01?narHash=sha256-Qn3nPMSopRQJgmvHzVqPcE3I03zJyl8cSbgnnltfFDY%3D' (2024-12-07)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/cb35b9803fabf35ca2fe05a37eba550ee1fe171c?narHash=sha256-1V8BU6AeZmKO4II9qXHYvAIdenJ3a22w2giCGIScmOY%3D' (2024-12-03)
  → 'github:nixos/nixpkgs/a181967099dfbc714420c6c78db43d8c39166fed?narHash=sha256-SP0qxLNo2HETa3aUKtu9ycJA4sscWSPo1/y7yZX%2B7wk%3D' (2024-12-08)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/bcb68885668cccec12276bbb379f8f2557aa06ce?narHash=sha256-Yh5XZ9yVurrcYdNTSWxYgW4%2BEJ0pcOqgM1043z9JaRc%3D' (2024-12-03)
  → 'github:nixos/nixpkgs/190c31a89e5eec80dd6604d7f9e5af3802a58a13?narHash=sha256-K5DJ2LpPqht7K76bsxetI%2BYHhGGRyVteTPRQaIIKJpw%3D' (2024-12-05)
2024-12-08 19:41:21 -05:00
Richie db60b2f1a9 removed docker.nix from global default.nix 2024-12-08 18:14:45 -05:00
Richie 5e68283ef8 updated trusted_proxies 2024-12-08 13:42:16 -05:00
Richie 9400d75176 added myself to the hass group 2024-12-08 13:42:16 -05:00
Richie fb38c4e4bc added automation script scene and group yaml file 2024-12-08 13:42:16 -05:00
Richie 7325332d11 updated trusted_proxies 2024-12-08 13:42:16 -05:00
Richie 95c0f2cbb7 adding homeassistant to haproxy 2024-12-08 13:42:16 -05:00
Richie 40c0927d6c adding ouch 2024-12-08 13:41:58 -05:00
Richie 34e756e5a8 added fonts i want 2024-12-04 19:10:38 -05:00
github-actions[bot] cc43883400 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/ac70253fea187562c44006f32ad2b480997e0866?dir=pkgs/firefox-addons&narHash=sha256-bx%2BljzcUpVOKqu6k/HJGvij8x/sdFYkehGP8oPVqqRY%3D' (2024-11-28)
  → 'gitlab:rycee/nur-expressions/51d5446f359b67d5b6fdf45a145391c4d8679b3e?dir=pkgs/firefox-addons&narHash=sha256-7n66bpxbXkwBow1VSVHQe%2BrEW%2B8zPyawmDJ7Rd0uHNI%3D' (2024-12-03)
• Updated input 'home-manager':
    'github:nix-community/home-manager/2f7739d01080feb4549524e8f6927669b61c6ee3?narHash=sha256-6TrknJ8CpvSSF4gviQSeD%2Bwyj3siRcMvdBKhOXkEMKU%3D' (2024-11-28)
  → 'github:nix-community/home-manager/bf23fe41082aa0289c209169302afd3397092f22?narHash=sha256-zFOtOaqjzZfPMsm1mwu98syv3y%2BjziAq5DfWygaMtLg%3D' (2024-12-02)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/5116835b8eb2ec18ec258050a11d374d38ac8764?narHash=sha256-zADldaLfiSb2iGPhcSJPokGypYa1Fix0llhWkMvm8pQ%3D' (2024-11-28)
  → 'github:lilyinstarlight/nixos-cosmic/e1b76524988d600dcf415ec5355a727ca2c5debe?narHash=sha256-sMd0QBqmH68O2N7DAfz7WtCTPzgY2MWjAIw18dUgNcg%3D' (2024-12-03)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/e8c38b73aeb218e27163376a2d617e61a2ad9b59?narHash=sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g%3D' (2024-11-16)
  → 'github:NixOS/nixpkgs/62c435d93bf046a5396f3016472e8f7c8e2aed65?narHash=sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT%2B34%3D' (2024-11-30)
• Updated input 'nixos-cosmic/rust-overlay':
    'github:oxalica/rust-overlay/414e748aae5c9e6ca63c5aafffda03e5dad57ceb?narHash=sha256-J2/hxOO1VtBA/u%2Ba%2B9E%2B3iJpWT3xsBdghgYAVfoGCJo%3D' (2024-11-26)
  → 'github:oxalica/rust-overlay/c65e91d4a33abc3bc4a892d3c5b5b378bad64ea1?narHash=sha256-dge02pUSe2QeC/B3PriA0R8eAX%2BEU3aDoXj9FcS3XDw%3D' (2024-11-30)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/45348ad6fb8ac0e8415f6e5e96efe47dd7f39405?narHash=sha256-kF6rDeCshoCgmQz%2B7uiuPdREVFuzhIorGOoPXMalL2U%3D' (2024-11-24)
  → 'github:nixos/nixos-hardware/cceee0a31d2f01bcc98b2fbd591327c06a4ea4f9?narHash=sha256-fc6jTzIwCIVWTX50FtW6AZpuukuQWSEbPiyg6ZRGWFY%3D' (2024-12-03)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/4633a7c72337ea8fd23a4f2ba3972865e3ec685d?narHash=sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0%3D' (2024-11-25)
  → 'github:nixos/nixpkgs/55d15ad12a74eb7d4646254e13638ad0c4128776?narHash=sha256-M1%2BuCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo%3D' (2024-12-03)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/95dbdbbd9a4ba4a0d78a865d860142489150e576?narHash=sha256-9AwJ/lbIuFmwwNh9H%2B4p2i4FX5908JoPyFsZIqKQsRs%3D' (2024-11-29)
  → 'github:nixos/nixpkgs/cb35b9803fabf35ca2fe05a37eba550ee1fe171c?narHash=sha256-1V8BU6AeZmKO4II9qXHYvAIdenJ3a22w2giCGIScmOY%3D' (2024-12-03)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/0c5b4ecbed5b155b705336aa96d878e55acd8685?narHash=sha256-T38FQOg0BV5M8FN1712fovzNakSOENEYs%2BCSkg31C9Y%3D' (2024-11-27)
  → 'github:nixos/nixpkgs/bcb68885668cccec12276bbb379f8f2557aa06ce?narHash=sha256-Yh5XZ9yVurrcYdNTSWxYgW4%2BEJ0pcOqgM1043z9JaRc%3D' (2024-12-03)
2024-12-04 19:10:38 -05:00
Richie d5ad93e6a9 adding cache to zerotier 2024-12-03 22:11:26 -05:00
Richie 2b1ad2a2b7 fixed substituters 2024-12-03 22:11:26 -05:00
Richie 1e46071754 moved home_assistant dir 2024-12-03 10:37:22 -05:00
Richie 66771e32d3 updated system_tools 2024-12-01 16:57:55 -05:00
Richie 467a42b5cf decommissioning arch mirror 2024-12-01 16:57:55 -05:00
Richie 350667786d created pipewire.nix
centralized pipewire settings
2024-11-29 22:41:33 -05:00
Richie 3d54a3eefd set static address for jeeves 2024-11-29 12:10:58 -05:00
github-actions[bot] 90d22b05cc flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/f2b3bfe45192e09f82776de70f5c041f43bcdc56?dir=pkgs/firefox-addons&narHash=sha256-gXO6%2BBdLn0rLr7E/CTDZLoGrZ85CdVEh/fhsoI91gyM%3D' (2024-11-23)
  → 'gitlab:rycee/nur-expressions/ac70253fea187562c44006f32ad2b480997e0866?dir=pkgs/firefox-addons&narHash=sha256-bx%2BljzcUpVOKqu6k/HJGvij8x/sdFYkehGP8oPVqqRY%3D' (2024-11-28)
• Updated input 'home-manager':
    'github:nix-community/home-manager/16fe78182e924c9a2b0cffa1f343efea80945ef2?narHash=sha256-FnTC1Eycct/oD1I0ZUuy9FmQFfBeuymbVD2ptlQWaGc%3D' (2024-11-23)
  → 'github:nix-community/home-manager/2f7739d01080feb4549524e8f6927669b61c6ee3?narHash=sha256-6TrknJ8CpvSSF4gviQSeD%2Bwyj3siRcMvdBKhOXkEMKU%3D' (2024-11-28)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/bc4a00d212cf3ddf81bceb2dff0c365338fda9c8?narHash=sha256-6eq96vy8ZD%2BsuPLESVe4UMBZu7cJl4U0UJWpODWkQfM%3D' (2024-11-23)
  → 'github:lilyinstarlight/nixos-cosmic/5116835b8eb2ec18ec258050a11d374d38ac8764?narHash=sha256-zADldaLfiSb2iGPhcSJPokGypYa1Fix0llhWkMvm8pQ%3D' (2024-11-28)
• Updated input 'nixos-cosmic/rust-overlay':
    'github:oxalica/rust-overlay/a229311fcb45b88a95fdfa5cecd8349c809a272a?narHash=sha256-NWI8csIK0ujFlFuEXKnoc%2B7hWoCiEtINK9r48LUUMeU%3D' (2024-11-22)
  → 'github:oxalica/rust-overlay/414e748aae5c9e6ca63c5aafffda03e5dad57ceb?narHash=sha256-J2/hxOO1VtBA/u%2Ba%2B9E%2B3iJpWT3xsBdghgYAVfoGCJo%3D' (2024-11-26)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/672ac2ac86f7dff2f6f3406405bddecf960e0db6?narHash=sha256-UhWmEZhwJZmVZ1jfHZFzCg%2BZLO9Tb/v3Y6LC0UNyeTo%3D' (2024-11-16)
  → 'github:nixos/nixos-hardware/45348ad6fb8ac0e8415f6e5e96efe47dd7f39405?narHash=sha256-kF6rDeCshoCgmQz%2B7uiuPdREVFuzhIorGOoPXMalL2U%3D' (2024-11-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/23e89b7da85c3640bbc2173fe04f4bd114342367?narHash=sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w%3D' (2024-11-19)
  → 'github:nixos/nixpkgs/4633a7c72337ea8fd23a4f2ba3972865e3ec685d?narHash=sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0%3D' (2024-11-25)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/15bd4e4059780124ea366f829989ea4d6a652953?narHash=sha256-CcvM9dqmRMWNdTVbgri0mBl0M%2BNbTvww959lkvIPfBc%3D' (2024-11-23)
  → 'github:nixos/nixpkgs/95dbdbbd9a4ba4a0d78a865d860142489150e576?narHash=sha256-9AwJ/lbIuFmwwNh9H%2B4p2i4FX5908JoPyFsZIqKQsRs%3D' (2024-11-29)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/e8c38b73aeb218e27163376a2d617e61a2ad9b59?narHash=sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g%3D' (2024-11-16)
  → 'github:nixos/nixpkgs/0c5b4ecbed5b155b705336aa96d878e55acd8685?narHash=sha256-T38FQOg0BV5M8FN1712fovzNakSOENEYs%2BCSkg31C9Y%3D' (2024-11-27)
2024-11-29 10:07:13 -05:00
Richie 0a65d204a0 enabled gamescope
capSysNice allows game scope to set nice value for scheduler

: References
https://man7.org/linux/man-pages/man7/capabilities.7.html
CAP_SYS_NICE

https://wiki.archlinux.org/title/Gamescope
3.3 Setting Gamescopes priority
2024-11-28 11:53:29 -05:00
Richie cdacebfbd5 decreasing daily and hourly snapshots for root pool
Having this many daily copy was creating storage problems with steam
2024-11-28 09:43:26 -05:00
Richie 327c9b4181 removed --accept-flake-config 2024-11-25 15:12:42 -05:00
Richie 234d32b678 adding substituters to nix settings 2024-11-25 15:11:49 -05:00
Richie c902ab7e6e added --accept-flake-config 2024-11-25 15:05:58 -05:00
Richie 03a0f4ead7 adding nixos-rebuild to extraPackages 2024-11-25 14:44:44 -05:00
Richie 6daea826b8 adding nixos-rebuild to extraPackages 2024-11-25 14:38:03 -05:00
Richie 361e5c296d removed nix shell 2024-11-25 14:33:47 -05:00
Richie f57029c32f removing Install Nix 2024-11-25 14:29:20 -05:00
Richie 9403241342 testing build_systems.yml 2024-11-25 14:27:03 -05:00
Richie 3f6f652caf added github-runners user and group 2024-11-25 14:25:57 -05:00
Richie 03b177ddfb creating github-runners nix_builder 2024-11-25 14:25:57 -05:00
Richie a0f488a017 added build_rhapsody-in-green workflow 2024-11-24 20:02:25 -05:00
Richie c63a0b1367 added build_muninn workflow 2024-11-24 20:02:12 -05:00
Richie 8380d53405 added build_bob workflow 2024-11-24 19:55:20 -05:00
Richie d6253da3a5 removed system matrix 2024-11-24 19:55:00 -05:00
Richie 18742349eb adding system matrix 2024-11-24 19:00:09 -05:00
Richie 740908e42e moving path 2024-11-24 18:52:50 -05:00
Richie 54cf268ec8 testing nix-shell 2024-11-24 18:47:59 -05:00
Richie 5b088efecb adding jeeves-build action 2024-11-24 10:46:06 -05:00
Richie a85746629d added update-flake-lock action 2024-11-24 10:12:23 -05:00
Richie 09b1f36488 added steam to rhapsody-in-green 2024-11-23 14:59:41 -05:00
Richie 32ffe18495 updated kitty theme setting 2024-11-23 14:56:58 -05:00
Richie 06f8d2e4e1 nix_flake_update_11-23-24 2024-11-23 14:56:58 -05:00
Richie a6ae422e92 removed sonarr and prowlarr 2024-11-23 13:26:09 -05:00
Richie b40051f5d0 updating qbit version 2024-11-23 13:25:56 -05:00
Richie a83ca2afb0 added 29432 to allowedUDPPorts 2024-11-23 12:50:24 -05:00
Richie ea0fd25c19 removed nix setting from home manager configs 2024-11-23 11:01:50 -05:00
Richie 52ff8beb28 moved postgres secrets to storage_secrets 2024-11-22 20:25:42 -05:00
Richie 539dc78bcc removed lib.mkDefault from user global.nix 2024-11-21 21:07:57 -05:00
Richie 529c54d71a clean up 2024-11-21 21:02:12 -05:00
Richie f878f2d5d5 added framework-11th-gen-intel nixos-hardware 2024-11-21 21:02:12 -05:00
Richie 6ef5507bf8 added muninn to ssh_config.nix 2024-11-21 21:02:12 -05:00
Richie 9fa3ab6758 added desktop_kernel 2024-11-21 21:02:12 -05:00
Richie 515f8163d3 removed loginProgram 2024-11-21 21:02:12 -05:00
Richie 8ecc9b2358 adding environment loginShellInit 2024-11-21 21:02:12 -05:00
Richie 3582f3c50b improved gamescope.sh 2024-11-21 21:02:12 -05:00
Richie 8af120b6cf testing gs.sh 2024-11-21 21:02:12 -05:00
Richie 1de57f8251 desktop.nix 2024-11-21 21:02:12 -05:00
Richie 967e0c8622 removed displayManager 2024-11-21 21:02:12 -05:00
Richie e6a8c32622 testing getty 2024-11-21 21:02:12 -05:00
Richie 043b3a2810 adding gaming user 2024-11-21 21:02:12 -05:00
Richie b8e46ee341 test 2024-11-21 21:02:12 -05:00
Richie 89fdac6abf enabling displayManager 2024-11-21 21:02:12 -05:00
Richie 33e6afb24a testing sway 2024-11-21 21:02:12 -05:00
Richie 554a94d010 updating displayManager and removing x11 2024-11-21 21:02:12 -05:00
Richie 304e257a66 setting up keyFile for muninn 2024-11-21 21:02:12 -05:00
Richie a318ee74fe enabled postgres 2024-11-21 20:24:11 -05:00
Richie 9430bc96f8 updated to python313 2024-11-21 20:22:47 -05:00
Richie fe13af644d added update.nix to muninn 2024-11-21 20:22:23 -05:00
Richie 3783b21416 fixed update.nix 2024-11-21 20:21:28 -05:00
Richie 65804cf07c added kitty terminal 2024-11-19 18:41:56 -05:00
Richie a0fea7c972 fixed github definedAliases 2024-11-17 08:24:53 -05:00
Richie 5044a71b70 nix flake update 11-15-24 2024-11-17 08:24:53 -05:00
Richie f004c7fc25 enabling fwupdmgr 2024-11-16 12:17:10 -05:00
Richie 55197d599c removed fish from global default.nix
this is unnecessarily increasing compile time and is not being used
2024-11-16 10:54:32 -05:00
Richie f492e3a613 nix_flake_update_11-15-24 2024-11-15 21:29:07 -05:00
Richie 1c3ea5f270 moved zfs_unstable and linuxPackages_zen off nixos master 2024-11-15 21:29:07 -05:00
Richie 0874e79ac7 added github search engine 2024-11-15 20:11:56 -05:00
Richie 0d97c77ad9 adding muninn 2024-11-11 09:20:05 -05:00
Richie 75b19254aa fixed bug 2024-11-02 22:41:18 -04:00
Richie 6c760d4f84 moved kagi.png 2024-11-02 22:39:29 -04:00
Richie 9dde857047 created search_engines.nix and firefox dir 2024-11-02 22:38:25 -04:00
Richie dea58e0413 testing kagi 2024-11-02 22:38:25 -04:00
Richie af71cb796e removing Kernel Packages Update github action 2024-11-02 22:34:57 -04:00
Richie 9869f88a3e added nixpkgs-master 2024-11-02 22:34:57 -04:00
Richie 2d0c2baee4 removing default global kernel and moving desktop.nix to zfs unstable and linuxPackages_zen
Im testing this to allow jeeves to be stable and desktops stay on the latest kernel
2024-11-02 22:34:57 -04:00
Richie 436b9e7efd nix flake update 11-02-24 2024-11-02 22:34:57 -04:00
Richie 4c22c3e764 fixed typo in installer.py name 2024-11-01 21:31:12 -04:00
Richie f887375c8d renamed datasets.sh to zfs.sh 2024-11-01 21:30:51 -04:00
Richie 2d5fbb8555 removed -O primarycache=metadata from installer 2024-11-01 21:30:07 -04:00
Richie 88fd69ab9f added compression= to zpool create commands 2024-11-01 21:29:09 -04:00
Richie 86025d17c4 moved fonts.nix to global setings 2024-10-31 14:48:26 -04:00
Richie 151e444a07 added fonts.nix 2024-10-31 14:48:26 -04:00
Richie 0f03542255 adding cli tools 2024-10-26 23:32:17 -04:00
Richie 10277825eb opened firewall for nix-serve 2024-10-26 19:45:51 -04:00
Richie c1c0c28a13 adding prismlauncher 2024-10-26 19:41:36 -04:00
Richie c72934fb3c removed firewall rules from reverse_proxy.nix 2024-10-26 17:38:16 -04:00
Richie d99bf1b27b fixed photoprism 2024-10-26 17:38:16 -04:00
Richie 47e01ac591 split up web.nix 2024-10-26 17:38:16 -04:00
Richie d706ca8fb3 sorted haproxy.cfg 2024-10-26 17:38:16 -04:00
Richie 366f7f2a7b enabled firewall on jeeves 2024-10-26 17:38:16 -04:00
Richie 5eb99e11a3 enabled firewall on rhapsody-in-green 2024-10-26 17:38:16 -04:00
Richie e88d017014 enabled firewall on bob 2024-10-26 17:38:16 -04:00
Richie f706463500 moved common out of systems 2024-10-25 16:47:36 -04:00
Richie 84ad676d17 moved bob off of zen kernel 2024-10-21 12:20:22 -04:00
Richie b08db3057b nix_flake_update_10-20-24 2024-10-20 10:58:20 -04:00
Richie 2992847913 set allowDiscards = true to jeeves root drives 2024-10-20 10:37:09 -04:00
Richie 152ca85dbf adding scanner support to bob 2024-10-20 10:36:54 -04:00
Richie 68d629ec5c removing books from syncthing 2024-10-20 10:10:34 -04:00
Richie d174873bf5 adding syncthing dirs 2024-10-16 18:30:23 -04:00
Richie 8e846543e4 adding audiobookshelf to haproxy 2024-10-14 18:33:02 -04:00
Richie ac7bc3ee1b testing audiobookshelf 2024-10-14 18:33:02 -04:00
Richie 51fe1f673b replacing root_pool drives 2024-10-13 18:45:28 -04:00
Richie 3351efa8a5 adding special drive to torrenting 2024-10-13 18:05:25 -04:00
Richie 22a5e1b06b added snapshot_manager to rhapsody-in-green 2024-10-13 12:12:21 -04:00
Richie c49a39fb64 updated flake.lock 2024-10-13 12:12:21 -04:00
Richie b727f67c2d updated jeeves snapshot_manager and config 2024-10-13 12:12:21 -04:00
Richie 4bd0c21202 added snapshot_manager to bob 2024-10-13 12:12:21 -04:00
Richie 7d8c973b71 made snapshot_manager.nix 2024-10-13 12:12:21 -04:00
Richie bb90cb306e updated .gitignore 2024-10-13 10:50:01 -04:00
Richie 49cfa77bb8 updated haproxy.cfg 2024-10-12 05:37:36 -04:00
Richie 3718980379 cleaned up web.nix 2024-10-12 05:26:48 -04:00
Richie 468c38044d updated jeeves id 2024-10-12 03:54:55 -04:00
Richie f5007927ef cleaned up internal.nix 2024-10-12 03:54:42 -04:00
Richie d765ac6959 nix flake update 10-10-24 2024-10-10 23:03:11 -04:00
Richie 133af1854b added services dir 2024-10-10 23:00:14 -04:00
Richie 5c8a55c420 moved cache-priv-key.pem to storage_secrets 2024-10-10 23:00:14 -04:00
Richie d670af616a settings up nixos binary cache 2024-10-10 23:00:14 -04:00
Richie ad770612e1 fixed typo 2024-10-10 21:55:49 -04:00
Richie ee72ea2cee created storage/secrets 2024-10-10 21:55:49 -04:00
Richie 14b6f14532 added users to richie 2024-10-10 21:55:49 -04:00
Richie a4a73264c3 fixed bug 2024-10-10 21:55:49 -04:00
Richie d27ce41ab9 removed swapDevices 2024-10-10 21:55:49 -04:00
Richie bb589662d2 added root_pool/nix 2024-10-10 21:55:49 -04:00
Richie 025ad362f2 removed duplicate -O xattr=sa 2024-10-06 12:28:19 -04:00
Richie b97bb50ee4 adding rhapsody-in-green ssh key 2024-10-04 21:33:57 -04:00
Richie a3fb414ef7 generated hardware.nix 2024-10-04 21:28:54 -04:00
Richie 6700faff43 fixed syncthing 2024-10-04 21:28:54 -04:00
Richie 6c8380946e added rhapsody-in-green to flake.nix 2024-10-04 21:28:54 -04:00
Richie 81e0bd8517 adding rhapsody-in-green 2024-10-04 21:28:54 -04:00
Richie fd407de917 update action name 2024-10-03 21:48:10 -04:00
Richie 68a116ca86 update PR msg 2024-10-03 21:46:07 -04:00
Richie 74d2b971a8 added bypassWorkqueues and allowDiscards to bob 2024-10-03 21:13:40 -04:00
Richie 3df8f729fc nix_flake_update_10-03-24 2024-10-03 20:32:04 -04:00
Richie 16b68b5ad3 adding photoprism 2024-10-03 20:22:41 -04:00
Richie b6afb05e03 improved updated action 2024-09-29 20:11:44 -04:00
Richie 922fdfe586 feature/adding workflow_dispatch kernel_packages_update 2024-09-29 12:26:55 -04:00
Richie edde8fa713 adding github action to update kernelPackages daily 2024-09-29 11:09:11 -04:00
Richie 4bffd7adfb setting kernelPackages default to linuxPackages_6_10 2024-09-29 11:09:11 -04:00
Richie 86dd410cc8 added ioit-vlan 2024-09-29 09:59:03 -04:00
Richie d9c3f36341 created home_assistant.nix for jeeves 2024-09-29 09:59:03 -04:00
Richie ff2f07739e created syncthing.nix for jeeves 2024-09-29 09:59:03 -04:00
Richie 4276d03209 removing framework module from bob 2024-09-29 09:58:53 -04:00
Richie 2f28ea983e nix flake update 09-29-2024 2024-09-29 09:58:01 -04:00
Richie 847f26e006 encrypted last drives 2024-09-29 09:48:17 -04:00
Richie 9aaec0f1f8 disabled postgres 2024-09-29 09:48:17 -04:00
Richie 0799e7b0b4 added richie group 2024-09-29 09:48:17 -04:00
Richie 5558f041e8 added datasets.sh 2024-09-29 09:48:17 -04:00
Richie 87109b1fdc fixed snapshot_manager 2024-09-29 09:48:17 -04:00
Richie c749bf3f12 updated vars 2024-09-29 09:48:17 -04:00
Richie fa40a200b4 encrypted most of Storage pool 2024-09-29 09:48:17 -04:00
Richie 85f84fea57 encrypted Torrenting pool 2024-09-29 09:48:17 -04:00
Richie 0d5933246e encrypted Media pool 2024-09-29 09:48:17 -04:00
Richie a289560ffc adding arch-mirror user 2024-09-29 08:59:22 -04:00
Richie 4294512d93 created syncthing.nix 2024-09-29 08:52:05 -04:00
Richie 5479f4398b sorted home.packages 2024-09-29 08:52:05 -04:00
Richie c3ba9a7e78 added yubikey.nix 2024-09-29 08:52:05 -04:00
Richie 9e7c595e35 creating installer 2024-09-17 07:57:11 -04:00
Richie 5dc572af76 nix_flake_update_09-15-2024 2024-09-16 12:29:10 -04:00
Richie f2588e210b setting up jeeves swap 2024-09-15 14:42:44 -04:00
Richie d142dfdbad testing zen kernel 2024-09-15 14:35:29 -04:00
Richie ad79fcfea2 adding cSpell works 2024-09-15 14:16:12 -04:00
Richie 0b74a1d054 sorted global/default.nix 2024-09-15 14:16:00 -04:00
Richie 334c30709a added zramSwap.enable = true;
set tmp to use ram
2024-09-15 14:16:00 -04:00
Richie e94d4cc685 Merge pull request #4 from RichieCahill/updating-bobs-zfs-settings
added trim and autoScrub
2024-09-15 14:14:51 -04:00
85 changed files with 2152 additions and 685 deletions
+22
View File
@@ -0,0 +1,22 @@
name: build_jeeves
on:
workflow_dispatch:
pull_request:
push:
branches: [main]
jobs:
build:
name: build-${{ matrix.system }}
runs-on: self-hosted
strategy:
matrix:
system:
- "bob"
- "jeeves"
- "muninn"
- "rhapsody-in-green"
steps:
- uses: actions/checkout@v4
- name: Build default package
run: "nixos-rebuild build --flake ./#${{ matrix.system }}"
+21
View File
@@ -0,0 +1,21 @@
name: update-flake-lock
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@main
with:
pr-title: "Update flake.lock"
pr-labels: |
dependencies
automated
+3
View File
@@ -160,3 +160,6 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
test.*
secrets.*
+93
View File
@@ -1,27 +1,45 @@
{
"cSpell.words": [
"aboutwelcome",
"acltype",
"addstr",
"advplyr",
"ahci",
"aioesphomeapi",
"alsa",
"archlinux",
"ashift",
"asrouter",
"attroff",
"attron",
"audiobooks",
"audiobookshelf",
"auditd",
"autofetch",
"autologin",
"autopull",
"autotrim",
"azuretools",
"bantime",
"bazarr",
"binhex",
"bitwarden",
"blkdiscard",
"breakpad",
"btop",
"cachix",
"canmount",
"captivedetect",
"cgroupdriver",
"charliermarsh",
"cloudflared",
"codezombiech",
"compactmode",
"Compat",
"contentblocking",
"cookiebanners",
"crlite",
"cryptsetup",
"darkreader",
"datareporting",
"davidanson",
@@ -32,44 +50,68 @@
"diffie",
"direnv",
"dmask",
"dnodesize",
"dotfiles",
"drawio",
"eamodio",
"endlessh",
"errorlens",
"esbenp",
"esphome",
"extest",
"fastforwardteam",
"FASTFOX",
"ffmpegthumbnailer",
"filebot",
"filebrowser",
"fileroller",
"findbar",
"Fira",
"fmask",
"fontconfig",
"formfill",
"foxundermoon",
"FULLSCREEN",
"fwupd",
"fxaccounts",
"gamemode",
"gamescope",
"getch",
"getmaxyx",
"ghdeploy",
"globalprivacycontrol",
"gparted",
"gtts",
"hass",
"healthreport",
"Heatsink",
"hediet",
"hexeditor",
"hicolor",
"hmac",
"homeassistant",
"HPKP",
"htmlaboutaddons",
"hurlenko",
"hwloc",
"INITDB",
"iocharset",
"ioit",
"iperf",
"isal",
"jnoortheen",
"jsbc",
"kagi",
"kuma",
"levelname",
"libglvnd",
"libmysqlclient",
"libsodium",
"libssh",
"libvirtd",
"localtime",
"louislam",
"lsnew",
"luks",
"lynis",
"mangohud",
@@ -78,46 +120,80 @@
"maxtime",
"mechatroner",
"mediainfo",
"mklabel",
"mkpart",
"modesetting",
"mountpoint",
"mountpoints",
"mousewheel",
"mtxr",
"muninn",
"ncdu",
"nemo",
"neofetch",
"nerdfonts",
"netdev",
"netdevs",
"Networkd",
"networkmanager",
"newtabpage",
"nixos",
"nixpkgs",
"nmap",
"noauto",
"noecho",
"nonsponsored",
"Noto",
"nvme",
"OCSP",
"oderwat",
"oneshot",
"optimise",
"optoutstudies",
"overalljails",
"overscroll",
"overseerr",
"pbmode",
"pciutils",
"pcscd",
"pdfjs",
"peerconnection",
"PESKYFOX",
"PGID",
"photoprism",
"pipewire",
"pkgs",
"plugdev",
"poppler",
"posixacl",
"primarycache",
"prismlauncher",
"privatebrowsing",
"PRIVOXY",
"prowlarr",
"proxychains",
"prusa",
"psycopg",
"PUID",
"pulseaudio",
"punycode",
"pylance",
"pymetno",
"qbit",
"qbittorrent",
"qbittorrentvpn",
"qbitvpn",
"quicksuggest",
"radarr",
"readahead",
"Redistributable",
"referer",
"REFERERS",
"relatime",
"Rhosts",
"ripgrep",
"routable",
"rspace",
"rtkit",
"rycee",
"safebrowsing",
@@ -129,30 +205,39 @@
"signon",
"Signons",
"skia",
"smartd",
"smartmontools",
"SMOOTHFOX",
"socialtracking",
"sonarr",
"sponsorblock",
"sqltools",
"ssdp",
"stdenv",
"subresource",
"substituters",
"supermaven",
"sysstat",
"tabmanager",
"tamasfe",
"tiktok",
"timonwong",
"tmmworkshop",
"Tmpfs",
"topsites",
"topstories",
"torrenting",
"twimg",
"uaccess",
"ublock",
"uitour",
"unrar",
"unsubmitted",
"urlbar",
"urlclassifier",
"usbhid",
"usbutils",
"useragent",
"usernamehw",
"userprefs",
"vfat",
@@ -161,12 +246,20 @@
"vpnpromourl",
"webchannel",
"WEBRTC",
"WEBUI",
"wireshark",
"Workqueues",
"xattr",
"xhci",
"yazi",
"yubikey",
"yubioath",
"yzhang",
"zeroconf",
"zerotier",
"zerotierone",
"zoxide",
"zram",
"zstd"
]
}
+6
View File
@@ -0,0 +1,6 @@
#!/bin/sh
nixos-rebuild build --flake /home/richie/projects/dotfiles#bob
nixos-rebuild build --flake /home/richie/projects/dotfiles#jeeves
nixos-rebuild build --flake /home/richie/projects/dotfiles#muninn
nixos-rebuild build --flake /home/richie/projects/dotfiles#rhapsody-in-green
@@ -1,33 +1,31 @@
{
config,
lib,
inputs,
lib,
outputs,
pkgs,
...
}:
{
imports = [
inputs.home-manager.nixosModules.home-manager
./docker.nix
./fail2ban.nix
./fonts.nix
./libs.nix
./locale.nix
./nh.nix
./nix.nix
./programs.nix
./ssh.nix
./snapshot_manager.nix
];
boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
security.auditd.enable = lib.mkDefault true;
programs = {
zsh.enable = true;
fish.enable = true;
boot = {
tmp.useTmpfs = true;
kernelPackages = lib.mkDefault pkgs.linuxPackages_6_12;
zfs.package = lib.mkDefault pkgs.zfs;
};
users.mutableUsers = lib.mkDefault true;
hardware.enableRedistributableFirmware = true;
home-manager = {
useGlobalPkgs = true;
@@ -35,7 +33,23 @@
extraSpecialArgs = {inherit inputs outputs;};
};
nixpkgs.config.allowUnfree = true;
nixpkgs = {
overlays = builtins.attrValues outputs.overlays;
config = {
allowUnfree = true;
};
};
hardware.enableRedistributableFirmware = true;
services.fwupd.enable = true;
programs.zsh.enable = true;
security.auditd.enable = lib.mkDefault true;
users.mutableUsers = lib.mkDefault true;
zramSwap = {
enable = lib.mkDefault true;
priority = 1000;
};
}
+12
View File
@@ -0,0 +1,12 @@
{ pkgs, ... }:
{
fonts = {
fontconfig.enable = true;
enableDefaultPackages = true;
packages = with pkgs; [
nerd-fonts.roboto-mono
nerd-fonts.intone-mono
nerd-fonts.symbols-only
];
};
}
+43
View File
@@ -0,0 +1,43 @@
{
inputs,
lib,
...
}: let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in {
nix = {
settings = {
trusted-users = [
"root"
"@wheel"
];
trusted-substituters = [
"https://cache.nixos.org"
"https://cache.tmmworkshop.com"
"https://nix-community.cachix.org"
];
substituters = [
"https://cache.nixos.org/?priority=2&want-mass-query=true"
"https://cache.tmmworkshop.com/?priority=2&want-mass-query=true"
"https://nix-community.cachix.org/?priority=10&want-mass-query=true"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cache.tmmworkshop.com:jHffkpgbmEdstQPoihJPYW9TQe6jnQbWR2LqkNGV3iA="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
auto-optimise-store = lib.mkDefault true;
experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
];
warn-dirty = false;
flake-registry = ""; # disable global flake registries
};
# Add each flake input as a registry and nix_path
registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs;
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
};
}
@@ -2,6 +2,6 @@
{
environment.systemPackages = with pkgs; [
git
python312
python313
];
}
+29
View File
@@ -0,0 +1,29 @@
["default"]
15_min = 8
hourly = 24
daily = 0
monthly = 0
["root_pool/home"]
15_min = 8
hourly = 12
daily = 1
monthly = 0
["root_pool/root"]
15_min = 8
hourly = 24
daily = 0
monthly = 0
["root_pool/nix"]
15_min = 4
hourly = 0
daily = 0
monthly = 0
["root_pool/var"]
15_min = 8
hourly = 24
daily = 30
monthly = 6
+44
View File
@@ -0,0 +1,44 @@
{ inputs, pkgs, lib, config, ... }:
let
cfg = config.services.snapshot_manager;
in
{
options = {
services.snapshot_manager = {
enable = lib.mkOption {
default = true;
example = true;
description = "Whether to enable k3s-net.";
type = lib.types.bool;
};
path = lib.mkOption {
type = lib.types.path;
description = "Path that needs to be updated via git pull";
default = ./snapshot_config.toml;
};
};
};
config = lib.mkIf cfg.enable {
systemd = {
services."snapshot_manager" = {
description = "ZFS Snapshot Manager";
requires = [ "zfs-import.target" ];
after = [ "zfs-import.target" ];
path = [ pkgs.zfs ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${inputs.system_tools.packages.x86_64-linux.default}/bin/snapshot_manager --config-file='${cfg.path}'";
};
};
timers."snapshot_manager" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "15m";
OnUnitActiveSec = "15m";
Unit = "snapshot_manager.service";
};
};
};
};
}
+32
View File
@@ -0,0 +1,32 @@
{ pkgs, ... }:
{
boot = {
kernelPackages = pkgs.linuxPackages_6_12;
zfs.package = pkgs.zfs;
};
services = {
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
desktopManager.plasma6.enable = true;
xserver = {
enable = true;
xkb = {
layout = "us";
variant = "";
};
};
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{
hardware.sane = {
enable = true;
drivers.scanSnap.enable = true;
};
}
@@ -10,8 +10,13 @@
gamescopeSession.enable = true;
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [proton-ge-bin];
extest.enable = true;
};
gamescope = {
enable = true;
capSysNice = true;
};
};
}
@@ -9,9 +9,10 @@
settings = {
devices = {
phone.id = "LTGPLAE-M4ZDJTM-TZ3DJGY-SLLAVWF-CQDVEVS-RGCS75T-GAPZYK3-KUM6LA5"; # cspell:disable-line
jeeves.id = "RCDU465-AIQRBEJ-VWC4EZF-2AMXABC-F3S4NFW-QA4ZUAQ-OVNUBLI-BUJJTA2"; # cspell:disable-line
jeeves.id = "ICRHXZW-ECYJCUZ-I4CZ64R-3XRK7CG-LL2HAAK-FGOHD22-BQA4AI6-5OAL6AG"; # cspell:disable-line
ipad.id = "KI76T3X-SFUGV2L-VSNYTKR-TSIUV5L-SHWD3HE-GQRGRCN-GY4UFMD-CW6Z6AX"; # cspell:disable-line
bob.id = "CJIAPEJ-VO74RR4-F75VU6M-QNZAMYG-FYUJG7Y-6AT62HJ-355PRPL-PJFETAZ"; # cspell:disable-line
rhapsody-in-green.id = "ASL3KC4-3XEN6PA-7BQBRKE-A7JXLI6-DJT43BY-Q4WPOER-7UALUAZ-VTPQ6Q4"; # cspell:disable-line
};
};
};
+32
View File
@@ -0,0 +1,32 @@
{ lib, pkgs, ... }:
{
systemd = {
services."autopull@dotfiles" = {
requires = [ "multi-user.target" ];
after = [ "multi-user.target" ];
description = "Pull the latest data for dotfiles";
serviceConfig = {
Type = "oneshot";
User = "root";
WorkingDirectory = /root/dotfiles;
ExecStart = "${pkgs.git}/bin/git pull --all --prune";
};
};
timers."autopull@dotfiles" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "1h";
OnUnitActiveSec = "1h";
Unit = "autopull@dotfiles.service";
};
};
};
system.autoUpgrade = {
enable = lib.mkDefault true;
flags = [ "--accept-flake-config" ];
randomizedDelaySec = "1h";
persistent = true;
flake = "github:RAD-Development/nix-dotfiles";
};
}
+6
View File
@@ -0,0 +1,6 @@
{ pkgs, ... }:
{
services.pcscd.enable = true;
environment.systemPackages = [ pkgs.yubioath-flutter ];
}
+11
View File
@@ -0,0 +1,11 @@
{
services.zerotierone = {
enable = true;
joinNetworks = [ "e4da7455b2ae64ca" ];
};
nix.settings = {
trusted-substituters = [ "http://192.168.90.40:5000" ];
substituters = [ "http://192.168.90.40:5000/?priority=1&want-mass-query=true" ];
trusted-public-keys = [ "cache.tmmworkshop.com:jHffkpgbmEdstQPoihJPYW9TQe6jnQbWR2LqkNGV3iA=" ];
};
}
Generated
+58 -109
View File
@@ -9,11 +9,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1725940994,
"narHash": "sha256-PCj5WMvCMg2g8gBNf3izt4rPu5b5Mi/7zxmXHit3N3U=",
"lastModified": 1735099403,
"narHash": "sha256-22NF70bxkMY7/IY2NG0pC7WzgJ0bI67FGSUP37d2mQ8=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "93857a3619db67e72f5012ce3cb001e402b86dbe",
"rev": "5b2c380332cf5a3022fde931d0346e2b868b544e",
"type": "gitlab"
},
"original": {
@@ -39,28 +39,6 @@
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixos-cosmic",
"nix-update",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719994518,
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"locked": {
"lastModified": 1629284811,
@@ -81,11 +59,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@@ -101,11 +79,11 @@
]
},
"locked": {
"lastModified": 1725948275,
"narHash": "sha256-4QOPemDQ9VRLQaAdWuvdDBhh+lEUOAnSMHhdr4nS1mk=",
"lastModified": 1735053786,
"narHash": "sha256-Gm+0DcbUS338vvkwyYWms5jsWlx8z8MeQBzcnIDuIkw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e5fa72bad0c6f533e8d558182529ee2acc9454fe",
"rev": "35b98d20ca8f4ca1f6a2c30b8a2c8bb305a36d84",
"type": "github"
},
"original": {
@@ -123,11 +101,11 @@
]
},
"locked": {
"lastModified": 1703863825,
"narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=",
"lastModified": 1729742964,
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "5163432afc817cf8bd1f031418d1869e4c9d5547",
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
"type": "github"
},
"original": {
@@ -136,33 +114,9 @@
"type": "github"
}
},
"nix-update": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixos-cosmic",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1725635983,
"narHash": "sha256-haSfwdurfltqQ/7YEmDcmWLnWwvAgelIHnXsHG34P1k=",
"owner": "lilyinstarlight",
"repo": "nix-update",
"rev": "ed54a7546affb3f8c9c3e10a6fa6fdb21756ec8f",
"type": "github"
},
"original": {
"owner": "lilyinstarlight",
"repo": "nix-update",
"type": "github"
}
},
"nixos-cosmic": {
"inputs": {
"flake-compat": "flake-compat",
"nix-update": "nix-update",
"nixpkgs": [
"nixpkgs"
],
@@ -170,11 +124,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1725932078,
"narHash": "sha256-IATccCX01KHY3QDYmpCMu70WRWxJH4V7z9vp71RlSAs=",
"lastModified": 1735090583,
"narHash": "sha256-Tm+BsKXJS/EdJd9DvLxDbw+chPI1o7A9RHKIFxho36I=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "0452cc841e9b30160ae48db636164fb7a6d6bb72",
"rev": "847b93e3b63bcea9a477dd86bb4b56ce7e051f0e",
"type": "github"
},
"original": {
@@ -185,11 +139,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1725885300,
"narHash": "sha256-5RLEnou1/GJQl+Wd+Bxaj7QY7FFQ9wjnFq1VNEaxTmc=",
"lastModified": 1734954597,
"narHash": "sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl+fk=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "166dee4f88a7e3ba1b7a243edb1aca822f00680e",
"rev": "def1d472c832d77885f174089b0d34854b007198",
"type": "github"
},
"original": {
@@ -201,11 +155,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1725634671,
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
"lastModified": 1734649271,
"narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
"rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507",
"type": "github"
},
"original": {
@@ -215,29 +169,45 @@
"type": "github"
}
},
"nixpkgs-master": {
"locked": {
"lastModified": 1735170897,
"narHash": "sha256-O1OXa12dHaObowGsfiM8pgphWfSXJj5v8sTxFoPXR0A=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "138326d6e9841ab9e6161730d40e09cedd670c40",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1725826545,
"narHash": "sha256-L64N1rpLlXdc94H+F6scnrbuEu+utC03cDDVvvJGOME=",
"lastModified": 1734875076,
"narHash": "sha256-Pzyb+YNG5u3zP79zoi8HXYMs15Q5dfjDgwCdUI5B0nY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f4c846aee8e1e29062aa8514d5e0ab270f4ec2f9",
"rev": "1807c2b91223227ad5599d7067a61665c52d1295",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1725826545,
"narHash": "sha256-L64N1rpLlXdc94H+F6scnrbuEu+utC03cDDVvvJGOME=",
"lastModified": 1734835170,
"narHash": "sha256-JG6n9tQET7ZLjvwjH9BdYE6pES/Alcduxv2FDXliuBM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f4c846aee8e1e29062aa8514d5e0ab270f4ec2f9",
"rev": "6df924734e1b626efd70925545de844b1c25246f",
"type": "github"
},
"original": {
@@ -259,14 +229,14 @@
"nixpkgs"
],
"systems": "systems_2",
"treefmt-nix": "treefmt-nix_2"
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1723343306,
"narHash": "sha256-/6sRkPq7/5weX2y0V8sQ29Sz35nt8kyj+BsFtkhgbJE=",
"lastModified": 1731205797,
"narHash": "sha256-F7N1mxH1VrkVNHR3JGNMRvp9+98KYO4b832KS8Gl2xI=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "4a1c112ff0c67f496573dc345bd0b2247818fc29",
"rev": "f554d27c1544d9c56e5f1f8e2b8aff399803674e",
"type": "github"
},
"original": {
@@ -282,6 +252,7 @@
"nixos-cosmic": "nixos-cosmic",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"nixpkgs-master": "nixpkgs-master",
"nixpkgs-stable": "nixpkgs-stable_2",
"system_tools": "system_tools",
"systems": "systems_3"
@@ -295,11 +266,11 @@
]
},
"locked": {
"lastModified": 1725848835,
"narHash": "sha256-u4lCr+tOEWhsFiww5G04U5jUNzaQJi0/ZMIDGiLeT14=",
"lastModified": 1735007320,
"narHash": "sha256-NdhUgB9BkLGW9I+Q1GyUUCc3CbDgsg7HLWjG7WZBR5Q=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "2ef910a6276a2f34513d18f2f826a8dea72c3b3f",
"rev": "fb5fdba697ee9a2391ca9ceea3b853b4e3ce37a5",
"type": "github"
},
"original": {
@@ -317,11 +288,11 @@
"poetry2nix": "poetry2nix"
},
"locked": {
"lastModified": 1725312414,
"narHash": "sha256-IWztoUBuZjqw5Mti/CJvvPvAHNpCfnZVS/gGNMdQUhQ=",
"lastModified": 1733083480,
"narHash": "sha256-B13faNyBbA3MeI7Jp6pFVbp58rI2Rx5Uvd83csW2p48=",
"owner": "RichieCahill",
"repo": "system_tools",
"rev": "632a465087f5b9ab7d6efc125bebfe6af57c1d58",
"rev": "bc357d8fabd83c1423611829091e5b1d86dd913c",
"type": "github"
},
"original": {
@@ -375,28 +346,6 @@
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixos-cosmic",
"nix-update",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719887753,
"narHash": "sha256-p0B2r98UtZzRDM5miGRafL4h7TwGRC4DII+XXHDHqek=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "bdb6355009562d8f9313d9460c0d3860f525bc6c",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"system_tools",
@@ -405,11 +354,11 @@
]
},
"locked": {
"lastModified": 1719749022,
"narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=",
"lastModified": 1730120726,
"narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd",
"rev": "9ef337e492a5555d8e17a51c911ff1f02635be15",
"type": "github"
},
"original": {
+12 -1
View File
@@ -3,11 +3,13 @@
nixConfig = {
extra-substituters = [
"https://cache.nixos.org/?priority=1&want-mass-query=true"
"https://cache.nixos.org/?priority=2&want-mass-query=true"
"https://cache.tmmworkshop.com/?priority=2&want-mass-query=true"
"https://nix-community.cachix.org/?priority=10&want-mass-query=true"
];
extra-trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cache.tmmworkshop.com:jHffkpgbmEdstQPoihJPYW9TQe6jnQbWR2LqkNGV3iA="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache-nix-dot:Od9KN34LXc6Lu7y1ozzV1kIXZa8coClozgth/SYE7dU="
];
@@ -16,6 +18,7 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs-master.url = "github:nixos/nixpkgs/master";
systems.url = "github:nix-systems/default-linux";
nixos-hardware.url = "github:nixos/nixos-hardware/master";
@@ -75,6 +78,14 @@
modules = [./systems/jeeves];
specialArgs = {inherit inputs outputs;};
};
rhapsody-in-green = lib.nixosSystem {
modules = [./systems/rhapsody-in-green];
specialArgs = {inherit inputs outputs;};
};
muninn = lib.nixosSystem {
modules = [./systems/muninn];
specialArgs = {inherit inputs outputs;};
};
};
};
}
+7
View File
@@ -6,4 +6,11 @@
config.allowUnfree = true;
};
};
# When applied, the master nixpkgs set (declared in the flake inputs) will be accessible through 'pkgs.master'
master = final: _prev: {
master = import inputs.nixpkgs-master {
system = final.system;
config.allowUnfree = true;
};
};
}
+13 -67
View File
@@ -1,25 +1,25 @@
{
inputs,
...
}:
{
imports = [
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
../../users/richie
../common/global
../common/optional/desktop.nix
../common/optional/steam.nix
../common/optional/syncthing_base.nix
../common/optional/systemd-boot.nix
../common/optional/zerotier.nix
../../common/global
../../common/optional/desktop.nix
../../common/optional/docker.nix
../../common/optional/scanner.nix
../../common/optional/steam.nix
../../common/optional/syncthing_base.nix
../../common/optional/systemd-boot.nix
../../common/optional/yubikey.nix
../../common/optional/zerotier.nix
./hardware.nix
./nvidia.nix
./syncthing.nix
];
networking = {
hostName = "bob";
networkmanager.enable = true;
hostId = "7c678a41";
firewall.enable = true;
networkmanager.enable = true;
};
hardware = {
@@ -34,65 +34,11 @@
services = {
displayManager.sddm.enable = true;
openssh.ports = [ 262 ];
printing.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
syncthing.settings.folders = {
"notes" = {
id = "l62ul-lpweo"; # cspell:disable-line
path = "/home/richie/notes";
devices = [
"jeeves"
];
fsWatcherEnabled = true;
};
"books" = {
id = "6uppx-vadmy"; # cspell:disable-line
path = "/home/richie/books";
devices = [
"phone"
"jeeves"
];
fsWatcherEnabled = true;
};
"important" = {
id = "4ckma-gtshs"; # cspell:disable-line
path = "/home/richie/important";
devices = [
"phone"
"jeeves"
];
fsWatcherEnabled = true;
};
"music" = {
id = "vprc5-3azqc"; # cspell:disable-line
path = "/home/richie/music";
devices = [
"ipad"
"phone"
"jeeves"
];
fsWatcherEnabled = true;
};
"projects" = {
id = "vyma6-lqqrz"; # cspell:disable-line
path = "/home/richie/projects";
devices = [
"jeeves"
];
fsWatcherEnabled = true;
};
};
snapshot_manager.enable = true;
zfs = {
trim.enable = true;
+4 -2
View File
@@ -22,8 +22,10 @@
"sd_mod"
];
kernelModules = [ ];
luks.devices = {
"luks-root-pool-nvme-Samsung_SSD_990_PRO_with_Heatsink_1TB_S73JNJ0X114418B-part2".device = "/dev/disk/by-id/nvme-Samsung_SSD_990_PRO_with_Heatsink_1TB_S73JNJ0X114418B-part2";
luks.devices."luks-root-pool-nvme-Samsung_SSD_990_PRO_with_Heatsink_1TB_S73JNJ0X114418B-part2" = {
device = "/dev/disk/by-id/nvme-Samsung_SSD_990_PRO_with_Heatsink_1TB_S73JNJ0X114418B-part2";
bypassWorkqueues = true;
allowDiscards = true;
};
};
kernelModules = [ "kvm-amd" ];
+2 -1
View File
@@ -5,8 +5,9 @@
nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
package = config.boot.kernelPackages.nvidiaPackages.production;
package = config.boot.kernelPackages.nvidiaPackages.beta;
nvidiaSettings = true;
open = true;
};
nvidia-container-toolkit.enable = true;
};
+58
View File
@@ -0,0 +1,58 @@
{
services.syncthing.settings.folders = {
"notes" = {
id = "l62ul-lpweo"; # cspell:disable-line
path = "/home/richie/notes";
devices = [
"jeeves"
"rhapsody-in-green"
];
fsWatcherEnabled = true;
};
"important" = {
id = "4ckma-gtshs"; # cspell:disable-line
path = "/home/richie/important";
devices = [
"phone"
"jeeves"
"rhapsody-in-green"
];
fsWatcherEnabled = true;
};
"music" = {
id = "vprc5-3azqc"; # cspell:disable-line
path = "/home/richie/music";
devices = [
"ipad"
"phone"
"jeeves"
"rhapsody-in-green"
];
fsWatcherEnabled = true;
};
"projects" = {
id = "vyma6-lqqrz"; # cspell:disable-line
path = "/home/richie/projects";
devices = [
"jeeves"
"rhapsody-in-green"
];
fsWatcherEnabled = true;
};
"temp" = {
id = "bob_temp";
path = "/home/richie/temp";
devices = [
"jeeves"
];
fsWatcherEnabled = true;
};
"vault" = {
path = "/home/richie/vault";
devices = [
"rhapsody-in-green"
];
fsWatcherEnabled = true;
};
};
}
-28
View File
@@ -1,28 +0,0 @@
{
inputs,
lib,
...
}: let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in {
nix = {
settings = {
trusted-users = [
"root"
"@wheel"
];
auto-optimise-store = lib.mkDefault true;
experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
];
warn-dirty = false;
flake-registry = ""; # disable global flake registries
};
# Add each flake input as a registry and nix_path
registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs;
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
};
}
-12
View File
@@ -1,12 +0,0 @@
{
services = {
desktopManager.plasma6.enable = true;
xserver = {
enable = true;
xkb = {
layout = "us";
variant = "";
};
};
};
}
-19
View File
@@ -1,19 +0,0 @@
{ lib, ... }:
{
services.autopull = {
enable = lib.mkDefault true;
repo.dotfiles = {
enable = lib.mkDefault true;
ssh-key = lib.mkDefault "/root/.ssh/id_ed25519_ghdeploy";
path = lib.mkDefault /root/dotfiles;
};
};
system.autoUpgrade = {
enable = lib.mkDefault true;
flags = [ "--accept-flake-config" ];
randomizedDelaySec = "1h";
persistent = true;
flake = "github:RAD-Development/nix-dotfiles";
};
}
-6
View File
@@ -1,6 +0,0 @@
{
services.zerotierone = {
enable = true;
joinNetworks = [ "e4da7455b2ae64ca" ];
};
}
-29
View File
@@ -1,29 +0,0 @@
{ inputs, pkgs, ... }:
let
vars = import ./vars.nix;
in
{
virtualisation.oci-containers.containers.arch_mirror = {
image = "ubuntu/apache2:latest";
volumes = [
"${../common/docker_templates}/file_server/sites/:/etc/apache2/sites-enabled/"
"${vars.media_mirror}:/data"
];
ports = [ "800:80" ];
extraOptions = [ "--network=web" ];
autoStart = true;
};
systemd.services.sync_mirror = {
requires = [ "network-online.target" ];
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
description = "validates startup";
path = [ pkgs.rsync ];
serviceConfig = {
Environment = "MIRROR_DIR=${vars.media_mirror}/archlinux/";
Type = "simple";
ExecStart = "${inputs.system_tools.packages.x86_64-linux.default}/bin/sync_mirror";
};
};
}
+21 -76
View File
@@ -1,21 +1,23 @@
{ config, pkgs, ... }:
let
vars = import ./vars.nix;
in
{
imports = [
../../users/richie
../common/global
../common/optional/ssh_decrypt.nix
../common/optional/syncthing_base.nix
../common/optional/systemd-boot.nix
../common/optional/zerotier.nix
./arch_mirror.nix
../../common/global
../../common/optional/docker.nix
../../common/optional/ssh_decrypt.nix
../../common/optional/syncthing_base.nix
../../common/optional/zerotier.nix
./docker
./hardware.nix
./home_assistant.nix
./networking.nix
./programs.nix
./runner.nix
./services.nix
./syncthing.nix
./transmission.nix
];
boot.zfs.extraPools = [
@@ -27,89 +29,32 @@ in
services = {
openssh.ports = [ 629 ];
nix-serve = {
enable = true;
secretKeyFile = "${vars.storage_secrets}/services/nix-cache/cache-priv-key.pem";
openFirewall = true;
};
plex = {
enable = true;
dataDir = vars.media_plex;
openFirewall = true;
};
smartd.enable = true;
sysstat.enable = true;
syncthing.guiAddress = "192.168.90.40:8384";
syncthing.settings.folders = {
"notes" = {
id = "l62ul-lpweo"; # cspell:disable-line
path = vars.media_notes;
devices = [
"bob"
];
fsWatcherEnabled = true;
};
"books" = {
id = "6uppx-vadmy"; # cspell:disable-line
path = "${vars.storage_syncthing}/books";
devices = [
"bob"
"phone"
];
fsWatcherEnabled = true;
};
"important" = {
id = "4ckma-gtshs"; # cspell:disable-line
path = "${vars.storage_syncthing}/important";
devices = [
"bob"
"phone"
];
fsWatcherEnabled = true;
};
"music" = {
id = "vprc5-3azqc"; # cspell:disable-line
path = "${vars.storage_syncthing}/music";
devices = [
"bob"
"ipad"
"phone"
];
fsWatcherEnabled = true;
};
"projects" = {
id = "vyma6-lqqrz"; # cspell:disable-line
path = "${vars.storage_syncthing}/projects";
devices = [
"bob"
];
fsWatcherEnabled = true;
};
snapshot_manager = {
enable = true;
path = ./snapshot_config.toml;
};
sysstat.enable = true;
zfs = {
trim.enable = true;
autoScrub.enable = true;
};
};
systemd = {
services."snapshot_manager" = {
description = "ZFS Snapshot Manager";
requires = [ "zfs-import.target" ];
after = [ "zfs-import.target" ];
serviceConfig = {
Environment = "ZFS_BIN=${pkgs.zfs}/bin/zfs";
Type = "oneshot";
ExecStart = "${pkgs.python3}/bin/python3 ${vars.media_scripts}/ZFS/snapshot_manager.py --config-file='${./snapshot_config.toml}'";
};
};
timers."snapshot_manager" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "15m";
OnUnitActiveSec = "15m";
Unit = "snapshot_manager.service";
};
};
};
system.stateVersion = "24.05";
}
+19
View File
@@ -0,0 +1,19 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers.audiobookshelf = {
image = "ghcr.io/advplyr/audiobookshelf:latest";
volumes = [
"${vars.media_docker_configs}/audiobookshelf:/config"
"${vars.media_docker_configs}/audiobookshelf:/metadata"
"${vars.storage_library}/audiobooks:/audiobooks"
"${vars.storage_library}/books:/books"
];
environment = {
TZ = "America/New_York";
};
extraOptions = [ "--network=web" ];
autoStart = true;
};
}
+12
View File
@@ -0,0 +1,12 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers.grafana = {
image = "grafana/grafana-enterprise:latest";
volumes = [ "${vars.media_docker_configs}/grafana:/var/lib/grafana" ];
user = "600:600";
extraOptions = [ "--network=web" ];
autoStart = true;
};
}
+22 -19
View File
@@ -25,44 +25,47 @@ frontend ContentSwitching
bind *:443 ssl crt /etc/ssl/certs/cloudflare.pem
mode http
# tmmworkshop.com
acl host_mirror hdr(host) -i mirror.tmmworkshop.com
acl host_dndrules hdr(host) -i dndrules.tmmworkshop.com
acl host_grafana hdr(host) -i grafana.tmmworkshop.com
acl host_audiobookshelf hdr(host) -i audiobookshelf.tmmworkshop.com
acl host_cache hdr(host) -i cache.tmmworkshop.com
acl host_filebrowser hdr(host) -i filebrowser.tmmworkshop.com
acl host_grafana hdr(host) -i grafana.tmmworkshop.com
acl host_homeassistant hdr(host) -i homeassistant.tmmworkshop.com
acl host_photoprism hdr(host) -i photoprism.tmmworkshop.com
acl host_uptime_kuma hdr(host) -i uptimekuma-jeeves.tmmworkshop.com
acl host_overseerr hdr(host) -i overseerr.tmmworkshop.com
use_backend mirror_nodes if host_mirror
use_backend dndrules_nodes if host_dndrules
use_backend grafana_nodes if host_grafana
use_backend audiobookshelf_nodes if host_audiobookshelf
use_backend cache_nodes if host_cache
use_backend filebrowser_nodes if host_filebrowser
use_backend grafana_nodes if host_grafana
use_backend homeassistant_nodes if host_homeassistant
use_backend photoprism_nodes if host_photoprism
use_backend uptime_kuma_nodes if host_uptime_kuma
use_backend overseerr_nodes if host_overseerr
backend mirror_nodes
backend audiobookshelf_nodes
mode http
server server arch_mirror:80
server server audiobookshelf:80
backend mirror_rsync
backend cache_nodes
mode http
server server arch_mirror:873
server server 192.168.90.40:5000
backend grafana_nodes
mode http
server server grafana:3000
backend dndrules_nodes
mode http
server server dnd_file_server:80
backend filebrowser_nodes
mode http
server server filebrowser:8080
backend homeassistant_nodes
mode http
server server 192.168.95.14:8123
backend photoprism_nodes
mode http
server server photoprism:2342
backend uptime_kuma_nodes
mode http
server server uptime_kuma:3001
backend overseerr_nodes
mode http
server server overseerr:5055
-144
View File
@@ -1,144 +0,0 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers = {
qbit = {
image = "ghcr.io/linuxserver/qbittorrent:latest";
ports = [
"6881:6881"
"6881:6881/udp"
"8082:8082"
"29432:29432"
];
volumes = [
"${vars.media_docker_configs}/qbit:/config"
"${vars.torrenting_qbit}:/data"
];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
WEBUI_PORT = "8082";
};
autoStart = true;
};
qbitvpn = {
image = "binhex/arch-qbittorrentvpn:latest";
extraOptions = [ "--cap-add=NET_ADMIN" ];
ports = [
"6882:6881"
"6882:6881/udp"
"8081:8081"
"8118:8118"
];
volumes = [
"${vars.media_docker_configs}/qbitvpn:/config"
"${vars.torrenting_qbitvpn}:/data"
"/etc/localtime:/etc/localtime:ro"
];
environment = {
WEBUI_PORT = "8081";
PUID = "600";
PGID = "100";
VPN_ENABLED = "yes";
VPN_CLIENT = "openvpn";
STRICT_PORT_FORWARD = "yes";
ENABLE_PRIVOXY = "yes";
LAN_NETWORK = "192.168.90.0/24";
NAME_SERVERS = "1.1.1.1,1.0.0.1";
UMASK = "000";
DEBUG = "false";
DELUGE_DAEMON_LOG_LEVEL = "debug";
DELUGE_WEB_LOG_LEVEL = "debug";
};
environmentFiles = [/root/secrets/docker/qbitvpn];
autoStart = true;
};
bazarr = {
image = "ghcr.io/linuxserver/bazarr:latest";
ports = [ "6767:6767" ];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
};
volumes = [
"${vars.media_docker_configs}/bazarr:/config"
"${vars.storage_plex}/movies:/movies"
"${vars.storage_plex}/tv:/tv"
];
autoStart = true;
};
prowlarr = {
image = "ghcr.io/linuxserver/prowlarr:latest";
ports = [ "9696:9696" ];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
};
volumes = [ "${vars.media_docker_configs}/prowlarr:/config" ];
autoStart = true;
};
radarr = {
image = "ghcr.io/linuxserver/radarr:latest";
ports = [ "7878:7878" ];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
};
volumes = [
"${vars.media_docker_configs}/radarr:/config"
"${vars.storage_plex}/movies:/movies"
"${vars.torrenting_qbitvpn}:/data"
];
autoStart = true;
};
sonarr = {
image = "ghcr.io/linuxserver/sonarr:latest";
ports = [ "8989:8989" ];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
};
volumes = [
"${vars.media_docker_configs}/sonarr:/config"
"${vars.storage_plex}/tv:/tv"
"${vars.torrenting_qbitvpn}:/data"
];
autoStart = true;
};
overseerr = {
image = "ghcr.io/linuxserver/overseerr";
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
};
volumes = [ "${vars.media_docker_configs}/overseerr:/config" ];
dependsOn = [
"radarr"
"sonarr"
];
extraOptions = [ "--network=web" ];
autoStart = true;
};
whisper = {
image = "ghcr.io/linuxserver/faster-whisper:latest";
ports = [ "10300:10300" ];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
WHISPER_MODEL = "tiny-int8";
WHISPER_LANG = "en";
WHISPER_BEAM = "1";
};
volumes = [ "${vars.media_docker_configs}/whisper:/config" ];
autoStart = true;
};
};
}
+53
View File
@@ -0,0 +1,53 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers.photoprism = {
image = "photoprism/photoprism:latest";
volumes = [
"${vars.media_docker_configs}/photoprism:/photoprism/storage"
"${vars.storage_photos}/originals:/photoprism/originals"
"${vars.storage_photos}/import:/photoprism/import"
];
environment = {
PHOTOPRISM_ADMIN_USER="admin";
PHOTOPRISM_AUTH_MODE="password";
PHOTOPRISM_DISABLE_TLS="false";
PHOTOPRISM_DEFAULT_TLS="true";
PHOTOPRISM_ORIGINALS_LIMIT="30000";
PHOTOPRISM_HTTP_COMPRESSION="gzip";
PHOTOPRISM_LOG_LEVEL="info";
PHOTOPRISM_READONLY="false";
PHOTOPRISM_EXPERIMENTAL="false";
PHOTOPRISM_DISABLE_CHOWN="false";
PHOTOPRISM_DISABLE_WEBDAV="false";
PHOTOPRISM_DISABLE_SETTINGS="false";
PHOTOPRISM_DISABLE_TENSORFLOW="false";
PHOTOPRISM_DISABLE_FACES="false";
PHOTOPRISM_DISABLE_CLASSIFICATION="false";
PHOTOPRISM_DISABLE_VECTORS="false";
PHOTOPRISM_DISABLE_RAW="false";
PHOTOPRISM_RAW_PRESETS="false";
PHOTOPRISM_SIDECAR_YAML="true";
PHOTOPRISM_BACKUP_ALBUMS="true";
PHOTOPRISM_BACKUP_DATABASE="true";
PHOTOPRISM_BACKUP_SCHEDULE="daily";
PHOTOPRISM_INDEX_SCHEDULE="";
PHOTOPRISM_AUTO_INDEX="300";
PHOTOPRISM_AUTO_IMPORT= "-1";
PHOTOPRISM_DETECT_NSFW="false";
PHOTOPRISM_UPLOAD_NSFW="true";
PHOTOPRISM_DATABASE_DRIVER="sqlite";
PHOTOPRISM_SITE_CAPTION="AI-Powered Photos App";
PHOTOPRISM_SITE_DESCRIPTION="";
PHOTOPRISM_SITE_AUTHOR="";
PHOTOPRISM_UID="600";
PHOTOPRISM_GID="600";
# PHOTOPRISM_UMASK: 0000
};
environmentFiles = ["${vars.storage_secrets}/docker/photoprism"];
autoStart = true;
extraOptions = [ "--network=web" ];
};
}
+2 -2
View File
@@ -15,7 +15,7 @@ in
virtualisation.oci-containers.containers = {
postgres = {
image = "postgres:16";
image = "postgres:17";
ports = [ "5432:5432" ];
volumes = [ "${vars.media_database}/postgres:/var/lib/postgresql/data" ];
environment = {
@@ -23,7 +23,7 @@ in
POSTGRES_DB = "archive";
POSTGRES_INITDB_ARGS = "--auth-host=scram-sha-256";
};
environmentFiles = [/root/secrets/docker/postgres];
environmentFiles = [ "${vars.storage_secrets}/docker/postgres" ];
autoStart = true;
user = "postgres:postgres";
};
+29
View File
@@ -0,0 +1,29 @@
let
vars = import ../vars.nix;
in
{
networking.firewall = {
allowedTCPPorts = [ 6881 8082 29432 ];
allowedUDPPorts = [ 6881 29432 ];
};
virtualisation.oci-containers.containers.qbit = {
image = "ghcr.io/linuxserver/qbittorrent:5.0.2";
ports = [
"6881:6881"
"6881:6881/udp"
"8082:8082"
"29432:29432"
];
volumes = [
"${vars.media_docker_configs}/qbit:/config"
"${vars.torrenting_qbit}:/data"
];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
WEBUI_PORT = "8082";
};
autoStart = true;
};
}
+42
View File
@@ -0,0 +1,42 @@
let
vars = import ../vars.nix;
in
{
networking.firewall = {
allowedTCPPorts = [ 6882 8081 8118 ];
allowedUDPPorts = [ 6882 ];
};
virtualisation.oci-containers.containers.qbitvpn = {
image = "binhex/arch-qbittorrentvpn:5.0.3-1-01";
devices = [ "/dev/net/tun:/dev/net/tun" ];
extraOptions = [ "--cap-add=NET_ADMIN" ];
ports = [
"6882:6881"
"6882:6881/udp"
"8081:8081"
"8118:8118"
];
volumes = [
"${vars.media_docker_configs}/qbitvpn:/config"
"${vars.torrenting_qbitvpn}:/data"
"/etc/localtime:/etc/localtime:ro"
];
environment = {
WEBUI_PORT = "8081";
PUID = "600";
PGID = "100";
VPN_ENABLED = "yes";
VPN_CLIENT = "openvpn";
STRICT_PORT_FORWARD = "yes";
ENABLE_PRIVOXY = "yes";
LAN_NETWORK = "192.168.90.0/24";
NAME_SERVERS = "1.1.1.1,1.0.0.1";
UMASK = "000";
DEBUG = "false";
DELUGE_DAEMON_LOG_LEVEL = "debug";
DELUGE_WEB_LOG_LEVEL = "debug";
};
environmentFiles = ["${vars.storage_secrets}/docker/qbitvpn"];
autoStart = true;
};
}
+39
View File
@@ -0,0 +1,39 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers = {
haproxy = {
image = "haproxy:latest";
user = "600:600";
environment = {
TZ = "Etc/EST";
};
volumes = [
"${vars.storage_secrets}/docker/cloudflare.pem:/etc/ssl/certs/cloudflare.pem"
"${./haproxy.cfg}:/usr/local/etc/haproxy/haproxy.cfg"
];
dependsOn = [
"audiobookshelf"
"filebrowser"
"grafana"
"photoprism"
"uptime_kuma"
];
extraOptions = [ "--network=web" ];
autoStart = true;
};
cloud_flare_tunnel = {
image = "cloudflare/cloudflared:latest";
user = "600:600";
cmd = [
"tunnel"
"run"
];
environmentFiles = ["${vars.storage_secrets}/docker/cloud_flare_tunnel"];
dependsOn = [ "haproxy" ];
extraOptions = [ "--network=web" ];
autoStart = true;
};
};
}
-56
View File
@@ -1,56 +0,0 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers = {
grafana = {
image = "grafana/grafana-enterprise:latest";
volumes = [ "${vars.media_docker_configs}/grafana:/var/lib/grafana" ];
user = "600:600";
extraOptions = [ "--network=web" ];
autoStart = true;
};
dnd_file_server = {
image = "ubuntu/apache2:latest";
volumes = [
"${../../common/docker_templates}/file_server/sites/:/etc/apache2/sites-enabled/"
"${vars.storage_main}/Table_Top/:/data"
];
extraOptions = [ "--network=web" ];
autoStart = true;
};
haproxy = {
image = "haproxy:latest";
user = "600:600";
environment = {
TZ = "Etc/EST";
};
volumes = [
"/root/secrets/docker/cloudflare.pem:/etc/ssl/certs/cloudflare.pem"
"${./haproxy.cfg}:/usr/local/etc/haproxy/haproxy.cfg"
];
dependsOn = [
"arch_mirror"
"dnd_file_server"
"filebrowser"
"grafana"
"overseerr"
"uptime_kuma"
];
extraOptions = [ "--network=web" ];
autoStart = true;
};
cloud_flare_tunnel = {
image = "cloudflare/cloudflared:latest";
user = "600:600";
cmd = [
"tunnel"
"run"
];
environmentFiles = [/root/secrets/docker/cloud_flare_tunnel];
dependsOn = [ "haproxy" ];
extraOptions = [ "--network=web" ];
autoStart = true;
};
};
}
+105 -6
View File
@@ -1,9 +1,26 @@
{ config, lib, modulesPath, ... }:
{ config, lib, modulesPath, ... }:
{
imports =[ (modulesPath + "/installer/scan/not-detected.nix") ];
boot = {
loader = {
grub = {
enable = true;
zfsSupport = true;
efiSupport = true;
mirroredBoots = [
{
devices = [ "nodev" ];
path = "/boot0";
}
{
devices = [ "nodev" ];
path = "/boot1";
}
];
};
efi.canTouchEfiVariables = true;
};
initrd = {
availableKernelModules = [
"ahci"
@@ -17,8 +34,77 @@
];
kernelModules = [ ];
luks.devices = {
"luks-root-pool-wwn-0x500a0751e6c3c01e-part2".device = "/dev/disk/by-id/wwn-0x500a0751e6c3c01e-part2";
"luks-root-pool-wwn-0x500a0751e6c3c01c-part2".device = "/dev/disk/by-id/wwn-0x500a0751e6c3c01c-part2";
# cspell:disable
# Root pool
"luks-root-pool-wwn-0x55cd2e4150f01519-part2" = {
device = "/dev/disk/by-id/wwn-0x55cd2e4150f01519-part2";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-root-pool-wwn-0x55cd2e4150f01556-part2" = {
device = "/dev/disk/by-id/wwn-0x55cd2e4150f01556-part2";
bypassWorkqueues = true;
allowDiscards = true;
};
# Media pool
"luks-media_pool-nvme-INTEL_SSDPEK1A118GA_BTOC14120V2J118B-part1" = {
device = "/dev/disk/by-id/nvme-INTEL_SSDPEK1A118GA_BTOC14120V2J118B-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-media_pool-nvme-INTEL_SSDPEK1A118GA_BTOC14120WAG118B-part1" = {
device = "/dev/disk/by-id/nvme-INTEL_SSDPEK1A118GA_BTOC14120WAG118B-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-media_pool-nvme-INTEL_SSDPE2ME012T4_CVMD5130000G1P2HGN-part1" = {
device = "/dev/disk/by-id/nvme-INTEL_SSDPE2ME012T4_CVMD5130000G1P2HGN-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-media_pool-nvme-INTEL_SSDPE2ME012T4_CVMD5130000U1P2HGN-part1" = {
device = "/dev/disk/by-id/nvme-INTEL_SSDPE2ME012T4_CVMD5130000U1P2HGN-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
# Storage pool
"luks-storage_pool-nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834822N-part1" = {
device = "/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834822N-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-storage_pool-nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834817F-part1" = {
device = "/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834817F-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-storage_pool-nvme-INTEL_MEMPEK1W016GA_PHBT828104DF016D-part1" = {
device = "/dev/disk/by-id/nvme-INTEL_MEMPEK1W016GA_PHBT828104DF016D-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-storage_pool-nvme-INTEL_MEMPEK1W016GA_PHBT828105A8016D-part1" = {
device = "/dev/disk/by-id/nvme-INTEL_MEMPEK1W016GA_PHBT828105A8016D-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-storage_pool-wwn-0x5000cca23bc438dd-part1".device = "/dev/disk/by-id/wwn-0x5000cca23bc438dd-part1";
"luks-storage_pool-wwn-0x5000cca23bd035f5-part1".device = "/dev/disk/by-id/wwn-0x5000cca23bd035f5-part1";
"luks-storage_pool-wwn-0x5000cca23bd00ad6-part1".device = "/dev/disk/by-id/wwn-0x5000cca23bd00ad6-part1";
"luks-storage_pool-wwn-0x5000cca23bcf313e-part1".device = "/dev/disk/by-id/wwn-0x5000cca23bcf313e-part1";
"luks-storage_pool-wwn-0x5000cca23bcdf3b8-part1".device = "/dev/disk/by-id/wwn-0x5000cca23bcdf3b8-part1";
"luks-storage_pool-wwn-0x5000cca23bd02746-part1".device = "/dev/disk/by-id/wwn-0x5000cca23bd02746-part1";
"luks-storage_pool-wwn-0x5000cca23bcf9f89-part1".device = "/dev/disk/by-id/wwn-0x5000cca23bcf9f89-part1";
"luks-storage_pool-wwn-0x5000cca23bd00ae9-part1".device = "/dev/disk/by-id/wwn-0x5000cca23bd00ae9-part1";
# Torrenting pool
"luks-torrenting_pool-wwn-0x500a0751e6c3c01e-part1" = {
device = "/dev/disk/by-id/wwn-0x500a0751e6c3c01e-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
"luks-torrenting_pool-wwn-0x5000cca264f080a3-part1".device = "/dev/disk/by-id/wwn-0x5000cca264f080a3-part1";
"luks-torrenting_pool-wwn-0x5000cca298c33ae5-part1".device = "/dev/disk/by-id/wwn-0x5000cca298c33ae5-part1";
# cspell:enable
};
};
kernelModules = [ "kvm-amd" ];
@@ -36,19 +122,32 @@
fsType = "zfs";
};
"/nix" =
{ device = "root_pool/nix";
fsType = "zfs";
};
"/var" = {
device = "root_pool/var";
fsType = "zfs";
};
"/boot" = {
device = "/dev/disk/by-id/wwn-0x500a0751e6c3c01e-part1";
"/boot0" = {
device = "/dev/disk/by-id/wwn-0x55cd2e4150f01556-part1";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
"/boot1" = {
device = "/dev/disk/by-id/wwn-0x55cd2e4150f01519-part1";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
};
swapDevices = [ ];
+57
View File
@@ -0,0 +1,57 @@
let
vars = import ./vars.nix;
in
{
services.home-assistant = {
enable = true;
openFirewall = true;
configDir = vars.media_home_assistant;
config = {
http = {
server_port = 8123;
server_host = [
"192.168.95.14"
"192.168.90.40"
"192.168.98.4"
];
use_x_forwarded_for = true;
trusted_proxies = "172.18.0.0/24";
};
homeassistant = {
time_zone = "America/New_York";
unit_system = "imperial";
temperature_unit = "F";
};
assist_pipeline = { };
backup = { };
bluetooth = { };
config = { };
dhcp = { };
energy = { };
history = { };
homeassistant_alerts = { };
image_upload = { };
logbook = { };
media_source = { };
mobile_app = { };
ssdp = { };
sun = { };
webhook = { };
zeroconf = { };
automation = "!include automations.yaml";
script = "!include scripts.yaml";
scene = "!include scenes.yaml";
group = "!include groups.yaml";
};
extraPackages =
python3Packages: with python3Packages; [
psycopg2
gtts
aioesphomeapi
esphome-dashboard-api
bleak-esphome
pymetno
];
extraComponents = [ "isal" ];
};
}
+21 -8
View File
@@ -2,36 +2,49 @@
networking = {
hostName = "jeeves";
hostId = "0e15ce35";
firewall.enable = false;
firewall.enable = true;
useNetworkd = true;
};
systemd.network = {
enable = true;
netdevs = {
"20-ioit-vlan" = {
netdevConfig = {
Kind = "vlan";
Name = "ioit-vlan";
};
vlanConfig.Id = 20;
};
};
networks = {
"10-1GB_Primary" = {
matchConfig.Name = "enp98s0f0";
DHCP = "yes";
address = [ "192.168.95.14/24" ];
routes = [{ Gateway = "192.168.95.1"; }];
vlan = [ "ioit-vlan" ];
linkConfig.RequiredForOnline = "routable";
};
};
networks = {
"10-1GB_Secondary" = {
matchConfig.Name = "enp98s0f1";
DHCP = "yes";
};
};
networks = {
"10-10GB_Primary" = {
matchConfig.Name = "enp97s0f0np0";
DHCP = "yes";
linkConfig.RequiredForOnline = "routable";
};
};
networks = {
"10-10GB_Secondary" = {
matchConfig.Name = "enp97s0f1np1";
DHCP = "yes";
};
"40-ioit-vlan" = {
matchConfig.Name = "ioit-vlan";
DHCP = "yes";
};
};
};
+29
View File
@@ -0,0 +1,29 @@
{ pkgs, ... }:
let
vars = import ./vars.nix;
in
{
users = {
users.github-runners = {
isSystemUser = true;
group = "github-runners";
uid = 601;
};
groups.github-runners = {
gid = 601;
};
};
services.github-runners.nix_builder = {
enable = true;
replace = true;
workDir = "/zfs/media/github-runners/nix_builder/";
url = "https://github.com/RichieCahill/dotfiles";
extraLabels = [ "nixos" ];
tokenFile = "${vars.storage_secrets}/services/github_runners/nix_builder";
user = "github-runners";
group = "github-runners";
extraPackages = [ pkgs.nixos-rebuild ];
# extraEnvironment
};
}
+41
View File
@@ -0,0 +1,41 @@
#!/bin/bash
# zpools
# media
sudo zpool create -o ashift=12 -O acltype=posixacl -O atime=off -O dnodesize=auto -O xattr=sa -O compression=zstd -m /zfs/media media mirror
sudo zpool add media -o ashift=12 special mirror
# storage
sudo zpool create -o ashift=12 -O acltype=posixacl -O atime=off -O dnodesize=auto -O xattr=sa -O compression=zstd -m /zfs/storage storage
sudo zpool add storage -o ashift=12 special mirror
sudo zpool add storage -o ashift=12 logs mirror
# torrenting
sudo zpool create -o ashift=12 -O acltype=posixacl -O atime=off -O dnodesize=auto -O xattr=sa -O compression=zstd -m /zfs/torrenting torrenting
sudo zpool add torrenting -o ashift=12 special
# media datasets
sudo zfs create -o compression=zstd-9 media/docker
sudo zfs create -o recordsize=1M -o compression=zstd-19 media/library
sudo zfs create -o compression=zstd-9 -o sync=disabled media/github-runners
sudo zfs create -o exec=off media/minio
sudo zfs create -o copies=3 media/notes
sudo zfs create -o recordsize=16k -o primarycache=metadata -o mountpoint=/zfs/media/database/photoprism_mariadb media/photoprism_mariadb
sudo zfs create -o compression=zstd-9 media/plex
sudo zfs create -o compression=zstd-9 media/services
sudo zfs create -o compression=zstd-19 media/home_assistant
sudo zfs create -o recordsize=16k -o primarycache=metadata -o mountpoint=/zfs/media/database/postgres media/postgres
# storage datasets
sudo zfs create -o recordsize=1M -o compression=zstd-19 storage/archive
sudo zfs create -o compression=zstd-19 storage/main
sudo zfs create -o recordsize=16K -o compression=zstd-19 -o copies=2 storage/photos
sudo zfs create -o recordsize=1M -o compression=zstd-19 storage/plex
sudo zfs create -o compression=zstd-19 -o copies=3 storage/secrets
sudo zfs create -o compression=zstd-19 storage/syncthing
# torrenting datasets
sudo zfs create -o recordsize=16K -o exec=off -o sync=disabled torrenting/qbit
sudo zfs create -o recordsize=16K -o exec=off -o sync=disabled torrenting/qbitvpn
sudo zfs create -o recordsize=16K -o exec=off -o sync=disabled torrenting/transmission
+4 -1
View File
@@ -3,6 +3,9 @@
pkgs,
...
}:
let
vars = import ./vars.nix;
in
{
systemd = {
services = {
@@ -20,7 +23,7 @@
description = "validates startup";
path = [ pkgs.zfs ];
serviceConfig = {
EnvironmentFile = "/root/secrets/services/server-validation";
EnvironmentFile = "${vars.storage_secrets}/services/server-validation";
Type = "oneshot";
ExecStart = "${inputs.system_tools.packages.x86_64-linux.default}/bin/validate_jeeves";
};
+26 -2
View File
@@ -1,8 +1,32 @@
["media/Notes"]
["default"]
15_min = 8
hourly = 24
daily = 0
monthly = 0
["root_pool/home"]
15_min = 8
hourly = 24
daily = 14
monthly = 0
["root_pool/root"]
15_min = 8
hourly = 24
daily = 0
monthly = 0
["root_pool/nix"]
15_min = 4
hourly = 0
daily = 0
monthly = 0
["root_pool/var"]
15_min = 8
hourly = 24
daily = 30
monthly = 12
monthly = 6
["storage/plex"]
15_min = 6
+63
View File
@@ -0,0 +1,63 @@
let
vars = import ./vars.nix;
in
{
services.syncthing = {
guiAddress = "192.168.90.40:8384";
settings.folders = {
"bob_temp" = {
path = "${vars.storage_syncthing}/bob_temp";
devices = [
"jeeves"
];
fsWatcherEnabled = true;
};
"notes" = {
id = "l62ul-lpweo"; # cspell:disable-line
path = vars.media_notes;
devices = [
"bob"
"rhapsody-in-green"
];
fsWatcherEnabled = true;
};
"important" = {
id = "4ckma-gtshs"; # cspell:disable-line
path = "${vars.storage_syncthing}/important";
devices = [
"bob"
"rhapsody-in-green"
"phone"
];
fsWatcherEnabled = true;
};
"music" = {
id = "vprc5-3azqc"; # cspell:disable-line
path = "${vars.storage_syncthing}/music";
devices = [
"bob"
"rhapsody-in-green"
"ipad"
"phone"
];
fsWatcherEnabled = true;
};
"projects" = {
id = "vyma6-lqqrz"; # cspell:disable-line
path = "${vars.storage_syncthing}/projects";
devices = [
"bob"
"rhapsody-in-green"
];
fsWatcherEnabled = true;
};
"rhapsody-in-green_temp" = {
path = "${vars.storage_syncthing}/rhapsody-in-green_temp";
devices = [
"rhapsody-in-green"
];
fsWatcherEnabled = true;
};
};
};
}
+28
View File
@@ -0,0 +1,28 @@
{ pkgs, ... }:
let
vars = import ./vars.nix;
in
{
environment.systemPackages = with pkgs; [
transmission-rss
];
services.transmission = {
enable = true;
package = pkgs.transmission_4;
home = "${vars.media_docker_configs}/transmission";
group = "users";
openRPCPort = true;
openPeerPorts = true;
openFirewall = true;
webHome = pkgs.flood-for-transmission;
settings = {
message-level = 2;
incomplete-dir-enabled = true;
incomplete-dir = "${vars.torrenting_transmission}/incomplete";
download-dir = "${vars.torrenting_transmission}/download";
download-queue-enabled = false;
peer-limit-global = 10000;
peer-limit-per-torrent = 100;
};
};
}
+9 -3
View File
@@ -6,18 +6,24 @@ in
{
inherit zfs_media zfs_storage zfs_torrenting;
# media
media_database = "${zfs_media}/syncthing/database";
media_database = "${zfs_media}/database";
media_docker = "${zfs_media}/docker";
media_docker_configs = "${zfs_media}/docker/configs";
media_services = "${zfs_media}/services";
media_services_configs = "${zfs_media}/services/configs";
media_mirror = "${zfs_media}/mirror";
media_notes = "${zfs_media}/notes";
media_plex = "${zfs_media}/plex/";
media_scripts = "${zfs_media}/scripts";
media_plex = "${zfs_media}/plex";
media_home_assistant = "${zfs_media}/home_assistant";
# storage
storage_main = "${zfs_storage}/main";
storage_photos = "${zfs_storage}/photos";
storage_plex = "${zfs_storage}/plex";
storage_secrets = "${zfs_storage}/secrets";
storage_syncthing = "${zfs_storage}/syncthing";
storage_library = "${zfs_storage}/library";
# torrenting
torrenting_qbit = "${zfs_torrenting}/qbit";
torrenting_qbitvpn = "${zfs_torrenting}/qbitvpn";
torrenting_transmission = "${zfs_torrenting}/transmission";
}
+61
View File
@@ -0,0 +1,61 @@
{ inputs, pkgs, ... }:
{
imports = [
../../users/gaming
../../users/richie
../../common/global
../../common/optional/desktop.nix
../../common/optional/steam.nix
../../common/optional/systemd-boot.nix
../../common/optional/update.nix
./hardware.nix
inputs.nixos-hardware.nixosModules.framework-11th-gen-intel
];
environment.systemPackages = with pkgs; [
plex-media-player
];
networking = {
hostName = "muninn";
hostId = "a43179c5";
firewall.enable = true;
networkmanager.enable = true;
};
hardware = {
pulseaudio.enable = false;
bluetooth = {
enable = true;
powerOnBoot = true;
};
firmware = [ pkgs.sof-firmware ];
};
security.rtkit.enable = true;
services = {
displayManager = {
enable = true;
autoLogin = {
user = "gaming";
enable = true;
};
defaultSession = "steam";
# defaultSession = "plasma";
};
openssh.ports = [ 295 ];
printing.enable = true;
snapshot_manager.enable = true;
zfs = {
trim.enable = true;
autoScrub.enable = true;
};
};
system.stateVersion = "24.05";
}
+63
View File
@@ -0,0 +1,63 @@
{ config, lib, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot = {
initrd = {
availableKernelModules = [
"nvme"
"xhci_pci"
"thunderbolt"
"usb_storage"
"sd_mod"
];
kernelModules = [ ];
luks.devices."luks-root-pool-nvme-INTEL_SSDPEKKW256G7_BTPY63820XBH256D-part2" = {
device = "/dev/disk/by-id/nvme-INTEL_SSDPEKKW256G7_BTPY63820XBH256D-part2";
bypassWorkqueues = true;
allowDiscards = true;
keyFileSize = 4096;
keyFile = "/dev/disk/by-id/usb-SanDisk_Ultra_T_C_4C530001020919102244-0:0";
};
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
fileSystems = {
"/" = lib.mkDefault {
device = "root_pool/root";
fsType = "zfs";
};
"/home" = {
device = "root_pool/home";
fsType = "zfs";
};
"/nix" = {
device = "root_pool/nix";
fsType = "zfs";
};
"/var" = {
device = "root_pool/var";
fsType = "zfs";
};
"/boot" = {
device = "/dev/disk/by-uuid/12CE-A600";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+50
View File
@@ -0,0 +1,50 @@
{ inputs, ... }:
{
imports = [
../../users/richie
../../common/global
../../common/optional/desktop.nix
../../common/optional/docker.nix
../../common/optional/steam.nix
../../common/optional/syncthing_base.nix
../../common/optional/systemd-boot.nix
../../common/optional/yubikey.nix
../../common/optional/zerotier.nix
./hardware.nix
./syncthing.nix
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
];
networking = {
hostName = "rhapsody-in-green";
hostId = "6404140d";
firewall.enable = true;
networkmanager.enable = true;
};
hardware = {
pulseaudio.enable = false;
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
security.rtkit.enable = true;
services = {
openssh.ports = [ 922 ];
printing.enable = true;
snapshot_manager.enable = true;
zfs = {
trim.enable = true;
autoScrub.enable = true;
};
};
system.stateVersion = "24.05";
}
+56
View File
@@ -0,0 +1,56 @@
{ config, lib, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot = {
initrd = {
availableKernelModules = [
"nvme"
"xhci_pci"
"thunderbolt"
"usb_storage"
"sd_mod"
];
kernelModules = [ ];
luks.devices = {
"luks-root-pool-nvme-Samsung_SSD_980_PRO_1TB_S5P2NU0X403203E-part2" = {
device = "/dev/disk/by-id/nvme-Samsung_SSD_980_PRO_1TB_S5P2NU0X403203E-part2";
bypassWorkqueues = true;
allowDiscards = true;
};
};
};
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
};
fileSystems = {
"/" = lib.mkDefault {
device = "root_pool/root";
fsType = "zfs";
};
"/home" = {
device = "root_pool/home";
fsType = "zfs";
};
"/var" = {
device = "root_pool/var";
fsType = "zfs";
};
"/boot" = {
device = "/dev/disk/by-uuid/12CE-A600";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
};
swapDevices = [ ];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+58
View File
@@ -0,0 +1,58 @@
{
services.syncthing.settings.folders = {
"notes" = {
id = "l62ul-lpweo"; # cspell:disable-line
path = "/home/richie/notes";
devices = [
"bob"
"jeeves"
];
fsWatcherEnabled = true;
};
"important" = {
id = "4ckma-gtshs"; # cspell:disable-line
path = "/home/richie/important";
devices = [
"bob"
"jeeves"
"phone"
];
fsWatcherEnabled = true;
};
"music" = {
id = "vprc5-3azqc"; # cspell:disable-line
path = "/home/richie/music";
devices = [
"bob"
"ipad"
"jeeves"
"phone"
];
fsWatcherEnabled = true;
};
"projects" = {
id = "vyma6-lqqrz"; # cspell:disable-line
path = "/home/richie/projects";
devices = [
"bob"
"jeeves"
];
fsWatcherEnabled = true;
};
rhapsody-in-temp = {
id = "rhapsody-in-green_temp";
path = "/home/richie/temp";
devices = [
"jeeves"
];
fsWatcherEnabled = true;
};
"vault" = {
path = "/home/richie/vault";
devices = [
"bob"
];
fsWatcherEnabled = true;
};
};
}
+229
View File
@@ -0,0 +1,229 @@
"""Install NixOS on a ZFS pool."""
from __future__ import annotations
import logging
import sys
from os import getenv
from pathlib import Path
from random import getrandbits
from subprocess import PIPE, Popen, run
from time import sleep
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from collections.abc import Sequence
def configure_logger(level: str = "INFO") -> None:
"""Configure the logger.
Args:
level (str, optional): The logging level. Defaults to "INFO".
"""
logging.basicConfig(
level=level,
datefmt="%Y-%m-%dT%H:%M:%S%z",
format="%(asctime)s %(levelname)s %(filename)s:%(lineno)d - %(message)s",
handlers=[logging.StreamHandler(sys.stdout)],
)
def bash_wrapper(command: str) -> str:
"""Execute a bash command and capture the output.
Args:
command (str): The bash command to be executed.
Returns:
Tuple[str, int]: A tuple containing the output of the command (stdout) as a string,
the error output (stderr) as a string (optional), and the return code as an integer.
"""
logging.debug(f"running {command=}")
# This is a acceptable risk
process = Popen(command.split(), stdout=PIPE, stderr=PIPE) # noqa: S603
output, _ = process.communicate()
if process.returncode != 0:
error = f"Failed to run command {command=} return code {process.returncode=}"
raise RuntimeError(error)
return output.decode()
def partition_disk(disk: str, swap_size: int, reserve: int = 0) -> None:
"""Partition a disk.
Args:
disk (str): The disk to partition.
swap_size (int): The size of the swap partition in GB.
minimum value is 1.
reserve (int, optional): The size of the reserve partition in GB. Defaults to 0.
minimum value is 0.
"""
logging.info(f"partitioning {disk=}")
swap_size = max(swap_size, 1)
reserve = max(reserve, 0)
bash_wrapper(f"blkdiscard -f {disk}")
if reserve > 0:
msg = f"Creating swap partition on {disk=} with size {swap_size=}GiB and reserve {reserve=}GiB"
logging.info(msg)
swap_start = swap_size + reserve
swap_partition = f"mkpart swap -{swap_start}GiB -{reserve}GiB "
else:
logging.info(f"Creating swap partition on {disk=} with size {swap_size=}GiB")
swap_start = swap_size
swap_partition = f"mkpart swap -{swap_start}GiB 100% "
logging.debug(f"{swap_partition=}")
create_partitions = (
f"parted --script --align=optimal {disk} -- "
"mklabel gpt "
"mkpart EFI 1MiB 4GiB "
f"mkpart root_pool 4GiB -{swap_start}GiB "
f"{swap_partition}"
"set 1 esp on"
)
bash_wrapper(create_partitions)
logging.info(f"{disk=} successfully partitioned")
def create_zfs_pool(pool_disks: Sequence[str], mnt_dir: str) -> None:
"""Create a ZFS pool.
Args:
disks (Sequence[str]): A tuple of disks to use for the pool.
mnt_dir (str): The mount directory.
"""
if len(pool_disks) <= 0:
error = "disks must be a tuple of at least length 1"
raise ValueError(error)
zpool_create = (
"zpool create "
"-o ashift=12 "
"-o autotrim=on "
f"-R {mnt_dir} "
"-O acltype=posixacl "
"-O canmount=off "
"-O dnodesize=auto "
"-O normalization=formD "
"-O relatime=on "
"-O xattr=sa "
"-O mountpoint=none "
"root_pool "
)
if len(pool_disks) == 1:
zpool_create += pool_disks[0]
else:
zpool_create += "mirror "
zpool_create += " ".join(pool_disks)
bash_wrapper(zpool_create)
zpools = bash_wrapper("zpool list -o name")
if "root_pool" not in zpools.splitlines():
logging.critical("Failed to create root_pool")
sys.exit(1)
def create_zfs_datasets() -> None:
"""Create ZFS datasets."""
default_options = "-o compression=zstd -o atime=off -o mountpoint=legacy"
bash_wrapper(f"zfs create {default_options} -o canmount=noauto root_pool/root")
for dataset in ("home", "var"):
bash_wrapper(f"zfs create {default_options} root_pool/{dataset}")
datasets = bash_wrapper("zfs list -o name")
expected_datasets = {"root_pool/root", "root_pool/home", "root_pool/var"}
missing_datasets = expected_datasets.difference(datasets.splitlines())
if missing_datasets:
logging.critical(f"Failed to create pools {missing_datasets}")
sys.exit(1)
def install_nixos(mnt_dir: str, disks: Sequence[str], encrypt: bool) -> None:
"""Install NixOS."""
bash_wrapper(f"mount -o X-mount.mkdir -t zfs root_pool/root {mnt_dir}")
bash_wrapper(f"mount -o X-mount.mkdir -t zfs root_pool/home {mnt_dir}/home")
bash_wrapper(f"mount -o X-mount.mkdir -t zfs root_pool/var {mnt_dir}/var")
for disk in disks:
bash_wrapper(f"mkfs.vfat -n EFI {disk}-part1")
# set up mirroring afterwards if more than one disk
boot_partition = f"mount -t vfat -o fmask=0077,dmask=0077,iocharset=iso8859-1,X-mount.mkdir {disks[0]}-part1 {mnt_dir}/boot"
bash_wrapper(boot_partition)
bash_wrapper(f"nixos-generate-config --root {mnt_dir}")
host_id = format(getrandbits(32), "08x")
nix_hardware = Path(f"{mnt_dir}/etc/nixos/hardware-configuration.nix").read_text()
nix_hardware = nix_hardware.replace(
";\n}", f';\n networking.hostId = "{host_id}";' "\n}"
)
if encrypt:
test = [
f' "luks-root-pool-{disk.split("/")[-1]}-part2".device = "{disk}-part2";\n'
for disk in disks
]
encrypted_disks = (
";\n boot.initrd.luks.devices = {\n" f"{''.join(test)}" " };\n" "}"
)
nix_hardware = nix_hardware.replace(";\n}", encrypted_disks)
Path(f"{mnt_dir}/etc/nixos/hardware-configuration.nix").write_text(nix_hardware)
run(("nixos-install", "--root", mnt_dir), check=True) # noqa: S603
def main() -> None:
"""Main."""
configure_logger("DEBUG")
logging.info("Starting installation")
disks = ("/dev/disk/by-id/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",)
# Set swap size in GB, set to 1 if you don't want swap to take up too much space
swap_size = 1
reserve = 0
encrypt_key = getenv("ENCRYPT_KEY")
for disk in disks:
partition_disk(disk, swap_size, reserve)
if encrypt_key:
sleep(1)
for command in (
f'printf "{encrypt_key}" | cryptsetup luksFormat --type luks2 {disk}-part2 -',
f'printf "{encrypt_key}" | cryptsetup luksOpen {disk}-part2 luks-root-pool-{disk.split("/")[-1]}-part2 -',
):
run(command, shell=True, check=True)
mnt_dir = "/tmp/nix_install" # noqa: S108
Path(mnt_dir).mkdir(parents=True, exist_ok=True)
if encrypt_key:
pool_disks = [
f'/dev/mapper/luks-root-pool-{disk.split("/")[-1]}-part2' for disk in disks
]
else:
pool_disks = [f"{disk}-part2" for disk in disks]
create_zfs_pool(pool_disks, mnt_dir)
create_zfs_datasets()
install_nixos(mnt_dir, disks, encrypt_key)
logging.info("Installation complete")
if __name__ == "__main__":
main()
+24
View File
@@ -0,0 +1,24 @@
{
pkgs,
config,
...
}:
{
users = {
users.gaming = {
isNormalUser = true;
shell = pkgs.zsh;
group = "gaming";
extraGroups =
[
"audio"
"video"
"users"
];
uid = 1100;
};
groups.gaming.gid = 1100;
};
home-manager.users.gaming = import ./systems/${config.networking.hostName}.nix;
}
@@ -1,8 +1,4 @@
{
pkgs,
inputs,
...
}:
{ inputs, ... }:
{
programs.firefox = {
enable = true;
@@ -16,56 +12,15 @@
sponsorblock
ublock-origin
];
search.engines = {
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "type";
value = "packages";
}
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@o" ];
};
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@n" ];
};
search = {
force = true;
default = "Google";
order = [ "Google" ];
};
search.force = true;
settings = {
# Makes Firefox use the PlayStation 5 user agent
"general.useragent.override" = "Mozilla/5.0 (PlayStation; PlayStation 5/10.01) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15,gzip(gfe),gzip(gfe)";
# SECTION: FASTFOX
# GENERAL
"content.notify.interval" = 100000;
+20
View File
@@ -0,0 +1,20 @@
{ config, ... }:
{
imports = [
./programs.nix
];
programs = {
home-manager.enable = true;
git.enable = true;
};
home = {
username = "gaming";
homeDirectory = "/home/${config.home.username}";
stateVersion = "24.05";
sessionVariables = {
FLAKE = "$HOME/Projects/dotfiles";
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
wget
];
}
+6
View File
@@ -0,0 +1,6 @@
{
imports = [
../home/global.nix
../home/firefox.nix
];
}
+10
View File
@@ -8,24 +8,34 @@ in {
users.users.richie = {
isNormalUser = true;
shell = pkgs.zsh;
group = "richie";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIPtuYhiJHRTYhNaDmTcJOqJASk7D8mIn6u3F1IN5AFJ bob" # cspell:disable-line
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJYZFsc9CSH03ZUP7y81AHwSyjLwFmcshVFCyxDcYhBT rhapsody-in-green" # cspell:disable-line
];
extraGroups =
[
"audio"
"video"
"wheel"
"users"
]
++ ifTheyExist [
"dialout"
"docker"
"hass"
"libvirtd"
"networkmanager"
"plugdev"
"scanner"
"uaccess"
"wireshark"
];
uid = 1000;
};
users.groups.richie = {
gid = 1000;
};
home-manager.users.richie = import ./systems/${config.networking.hostName}.nix;
+1 -1
View File
@@ -1,8 +1,8 @@
{
imports = [
./direnv.nix
./git.nix
./zsh.nix
./direnv.nix
];
programs.starship.enable = true;
+4 -19
View File
@@ -1,35 +1,20 @@
{ config, ... }:
{
lib,
pkgs,
config,
...
}: {
imports = [
./cli
./programs.nix
./ssh_config.nix
];
nix = {
package = lib.mkDefault pkgs.nix;
settings = {
experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
];
};
};
programs = {
home-manager.enable = true;
git.enable = true;
};
home = {
username = lib.mkDefault "richie";
homeDirectory = lib.mkDefault "/home/${config.home.username}";
stateVersion = lib.mkDefault "24.05";
username = "richie";
homeDirectory = "/home/${config.home.username}";
stateVersion = "24.05";
sessionVariables = {
FLAKE = "$HOME/Projects/dotfiles";
};
+7 -5
View File
@@ -1,26 +1,28 @@
{ pkgs, ... }:
{
imports = [
./firefox.nix
./firefox
./vscode
./kitty.nix
];
home.packages = with pkgs; [
beeper
candy-icons
nemo
nemo-fileroller
discord-canary
gimp
gparted
mediainfo
nemo
nemo-fileroller
obs-studio
obsidian
prismlauncher
proxychains
prusa-slicer
signal-desktop
sweet-nova
util-linux
vlc
zoom-us
prusa-slicer
];
}
+250
View File
@@ -0,0 +1,250 @@
{ inputs, ... }:
{
imports = [ ./search_engines.nix ];
programs.firefox = {
enable = true;
profiles.richie = {
extensions = with inputs.firefox-addons.packages.x86_64-linux; [
bitwarden
darkreader
dearrow
fastforwardteam
return-youtube-dislikes
sponsorblock
ublock-origin
];
search = {
force = true;
default = "kagi";
order = [ "kagi" "DuckDuckGo" "Google" ];
};
settings = {
# SECTION: FASTFOX
# GENERAL
"content.notify.interval" = 100000;
# GFX
"gfx.canvas.accelerated.cache-items" = 4096;
"gfx.canvas.accelerated.cache-size" = 512;
"gfx.content.skia-font-cache-size" = 20;
# DISK CACHE
"browser.cache.jsbc_compression_level" = 3;
# MEDIA CACHE
"media.memory_cache_max_size" = 65536;
"media.cache_readahead_limit" = 7200;
"media.cache_resume_threshold" = 3600;
# IMAGE CACHE
"image.mem.decode_bytes_at_a_time" = 32768;
# NETWORK
"network.buffer.cache.size" = 262144;
"network.buffer.cache.count" = 128;
"network.http.max-connections" = 1800;
"network.http.max-persistent-connections-per-server" = 10;
"network.http.max-urgent-start-excessive-connections-per-host" = 5;
"network.http.pacing.requests.enabled" = false;
"network.dnsCacheExpiration" = 3600;
"network.dns.max_high_priority_threads" = 8;
"network.ssl_tokens_cache_capacity" = 10240;
# SPECULATIVE LOADING
"network.dns.disablePrefetch" = true;
"network.prefetch-next" = false;
"network.predictor.enabled" = false;
# EXPERIMENTAL
"layout.css.grid-template-masonry-value.enabled" = true;
"dom.enable_web_task_scheduling" = true;
"layout.css.has-selector.enabled" = true;
"dom.security.sanitizer.enabled" = true;
# SECTION: SECUREFOX
# TRACKING PROTECTION
"browser.contentblocking.category" = "strict";
"urlclassifier.trackingSkipURLs" = "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com";
"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com";
"network.cookie.sameSite.noneRequiresSecure" = true;
"browser.download.start_downloads_in_tmp_dir" = true;
"browser.helperApps.deleteTempFileOnExit" = true;
"browser.uitour.enabled" = false;
"privacy.globalprivacycontrol.enabled" = true;
# OCSP & CERTS / HPKP
"security.OCSP.enabled" = 0;
"security.remote_settings.crlite_filters.enabled" = true;
"security.pki.crlite_mode" = 2;
# SSL / TLS
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.xul.error_pages.expert_bad_cert" = true;
"security.tls.enable_0rtt_data" = false;
# DISK AVOIDANCE
"browser.privatebrowsing.forceMediaMemoryCache" = true;
"browser.sessionstore.interval" = 60000;
# SHUTDOWN & SANITIZING
"privacy.history.custom" = true;
# SEARCH / URL BAR
"browser.search.separatePrivateDefault.ui.enabled" = true;
"browser.urlbar.update2.engineAliasRefresh" = true;
# PREF: restore search engine suggestions
"browser.search.suggest.enabled" = true;
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.formfill.enable" = false;
"security.insecure_connection_text.enabled" = true;
"security.insecure_connection_text.pbmode.enabled" = true;
"network.IDN_show_punycode" = true;
# HTTPS-FIRST POLICY
"dom.security.https_first" = true;
"dom.security.https_first_schemeless" = true;
# PASSWORDS
"signon.formlessCapture.enabled" = false;
"signon.rememberSignons" = false;
"signon.privateBrowsingCapture.enabled" = false;
"network.auth.subresource-http-auth-allow" = 1;
"editor.truncate_user_pastes" = false;
# MIXED CONTENT + CROSS-SITE
"security.mixed_content.block_display_content" = true;
"security.mixed_content.upgrade_display_content" = true;
"security.mixed_content.upgrade_display_content.image" = true;
"pdfjs.enableScripting" = false;
"extensions.postDownloadThirdPartyPrompt" = false;
# HEADERS / REFERERS
"network.http.referer.XOriginTrimmingPolicy" = 2;
# CONTAINERS
"privacy.userContext.ui.enabled" = true;
# WEBRTC
"media.peerconnection.ice.proxy_only_if_behind_proxy" = true;
"media.peerconnection.ice.default_address_only" = true;
# SAFE BROWSING
"browser.safebrowsing.downloads.remote.enabled" = false;
# MOZILLA
# PREF: allow websites to ask you to receive site notifications
"permissions.default.desktop-notification" = 0; # allow websites to ask
# PREF: allow websites to ask you for your location
"permissions.default.geo" = 0;
"geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%";
"permissions.manager.defaultsUrl" = "";
"webchannel.allowObject.urlWhitelist" = "";
# TELEMETRY
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.updatePing.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.coverage.opt-out" = true;
"toolkit.coverage.opt-out" = true;
"toolkit.coverage.endpoint.base" = "";
"browser.ping-centre.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false;
# EXPERIMENTS
"app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
# CRASH REPORTS
"breakpad.reportURL" = "";
"browser.tabs.crashReporting.sendReport" = false;
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
# DETECTION
"captivedetect.canonicalURL" = "";
"network.captive-portal-service.enabled" = false;
"network.connectivity-service.enabled" = false;
# SECTION: PESKYFOX
# MOZILLA UI
"browser.privatebrowsing.vpnpromourl" = "";
"extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
"browser.preferences.moreFromMozilla" = false;
"browser.tabs.tabmanager.enabled" = false;
"browser.aboutConfig.showWarning" = false;
"browser.aboutwelcome.enabled" = false;
# THEME ADJUSTMENTS
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"browser.compactmode.show" = true;
"browser.display.focus_ring_on_anything" = true;
"browser.display.focus_ring_style" = 0;
"browser.display.focus_ring_width" = 0;
"layout.css.prefers-color-scheme.content-override" = 2;
# COOKIE BANNER HANDLING
"cookiebanners.service.mode" = 1;
"cookiebanners.service.mode.privateBrowsing" = 1;
# FULLSCREEN NOTICE
"full-screen-api.transition-duration.enter" = "0 0";
"full-screen-api.transition-duration.leave" = "0 0";
"full-screen-api.warning.delay" = -1;
"full-screen-api.warning.timeout" = 0;
# URL BAR
"browser.urlbar.suggest.calculator" = true;
"browser.urlbar.unitConversion.enabled" = true;
"browser.urlbar.trending.featureGate" = false;
# NEW TAB PAGE
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
# POCKET
"extensions.pocket.enabled" = false;
# DOWNLOADS
"browser.download.always_ask_before_handling_new_types" = true;
"browser.download.manager.addToRecentDocs" = false;
# PDF
"browser.download.open_pdf_attachments_inline" = true;
# TAB BEHAVIOR
"browser.bookmarks.openInTabClosesMenu" = false;
"browser.menu.showViewImageInfo" = true;
"findbar.highlightAll" = true;
"layout.word_select.eat_space_to_next_word" = false;
# SECTION: MY OVERRIDES
"browser.startup.homepage" = "https://google.com";
"identity.fxaccounts.enabled" = false;
# SECTION SMOOTHFOX
# OPTION: SHARPEN SCROLLING *
"apz.overscroll.enabled" = true; # DEFAULT NON-LINUX
"mousewheel.min_line_scroll_amount" = 10; # 10-40; adjust this number to your liking; default=5
"general.smoothScroll.mouseWheel.durationMinMS" = 80; # default=50
"general.smoothScroll.currentVelocityWeighting" = "0.15"; # default=.25
"general.smoothScroll.stopDecelerationWeighting" = "0.6"; # default=.4
};
};
};
}
+3
View File
@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 0C7.16 0 0 7.16 0 16C0 23.08 4.58 29.06 10.94 31.18C11.74 31.32 12.04 30.84 12.04 30.42C12.04 30.04 12.02 28.78 12.02 27.44C8 28.18 6.96 26.46 6.64 25.56C6.46 25.1 5.68 23.68 5 23.3C4.44 23 3.64 22.26 4.98 22.24C6.24 22.22 7.14 23.4 7.44 23.88C8.88 26.3 11.18 25.62 12.1 25.2C12.24 24.16 12.66 23.46 13.12 23.06C9.56 22.66 5.84 21.28 5.84 15.16C5.84 13.42 6.46 11.98 7.48 10.86C7.32 10.46 6.76 8.82 7.64 6.62C7.64 6.62 8.98 6.2 12.04 8.26C13.32 7.9 14.68 7.72 16.04 7.72C17.4 7.72 18.76 7.9 20.04 8.26C23.1 6.18 24.44 6.62 24.44 6.62C25.32 8.82 24.76 10.46 24.6 10.86C25.62 11.98 26.24 13.4 26.24 15.16C26.24 21.3 22.5 22.66 18.94 23.06C19.52 23.56 20.02 24.52 20.02 26.02C20.02 28.16 20 29.88 20 30.42C20 30.84 20.3 31.34 21.1 31.18C27.42 29.06 32 23.06 32 16C32 7.16 24.84 0 16 0V0Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 924 B

@@ -0,0 +1,84 @@
{ pkgs, ... }:
{
programs.firefox.profiles.richie.search.engines = {
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "type";
value = "packages";
}
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@o" ];
};
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@n" ];
};
"kagi" = {
urls = [
{
template = "https://kagi.com/search?";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
icon = ./kagi.png;
};
github = {
urls = [
{
template = "https://github.com/search?";
params = [
{
name = "q";
value = "{searchTerms}";
}
{
name = "type";
value = "code";
}
];
}
];
icon = ./github.svg;
definedAliases = [ "@g" ];
};
};
}
+12
View File
@@ -0,0 +1,12 @@
{pkgs, ...}: {
programs.kitty = {
enable = true;
font.name = "IntoneMono Nerd Font";
settings = {
allow_remote_control = "no";
shell = "${pkgs.zsh}/bin/zsh";
wayland_titlebar_color = "background";
};
themeFile = "VSCode_Dark";
};
}
+11 -1
View File
@@ -5,14 +5,24 @@
bat
btop
eza
fd
ffmpegthumbnailer
fzf
git
gnupg
imagemagick
jq
ncdu
neofetch
ouch
p7zip
poppler
rar
ripgrep
starship
tmux
unzip
yazi
zoxide
# system info
hwloc
@@ -26,7 +36,7 @@
wget
# python
poetry
python312
python313
ruff
# Rust packages
trunk
+6
View File
@@ -36,6 +36,12 @@
identityFile = "~/.ssh/id_ed25519";
port = 922;
};
muninn = {
hostname = "192.168.98.52";
user = "richie";
identityFile = "~/.ssh/id_ed25519";
port = 295;
};
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{
imports = [
../home/global.nix
../home/gui
];
}
@@ -0,0 +1,6 @@
{
imports = [
../home/global.nix
../home/gui
];
}