Compare commits

...

208 Commits

Author SHA1 Message Date
6e5a8429b3 added merge_group to build_systems and treefmt 2025-07-28 12:50:21 -04:00
github-actions[bot]
3bbf8dc7a6 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/369dccacc0a8214600773b3bbbf68d98a19b74e8?dir=pkgs/firefox-addons&narHash=sha256-TVWYBcNpeQ3fEloryVP9N2yJnC3vuPpoZF1RqFFWFt0%3D' (2025-07-18)
  → 'gitlab:rycee/nur-expressions/553afee4efb5a7dea03cf654deafacd8fa1004f9?dir=pkgs/firefox-addons&narHash=sha256-45s1L4h/6t3M%2B/ppqow1OFUgfk9jZHsR4jxNgxIWWmM%3D' (2025-07-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d0300c8808e41da81d6edfc202f3d3833c157daf?narHash=sha256-irfg7lnfEpJY%2B3Cffkluzp2MTVw1Uq9QGxFp6qadcXI%3D' (2025-07-18)
  → 'github:nix-community/home-manager/a1817d1c0e5eabe7dfdfe4caa46c94d9d8f3fdb6?narHash=sha256-hOUWU5L62G9sm8NxdiLWlLIJZz9H52VuFiDllHdwmVA%3D' (2025-07-25)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/d1bfa8f6ccfb5c383e1eba609c1eb67ca24ed153?narHash=sha256-P8J72psdc/rWliIvp8jUpoQ6qRDlVzgSDDlgkaXQ0Fw%3D' (2025-07-16)
  → 'github:nixos/nixos-hardware/cc66fddc6cb04ab479a1bb062f4d4da27c936a22?narHash=sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM%3D' (2025-07-21)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/6e987485eb2c77e5dcc5af4e3c70843711ef9251?narHash=sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo%3D' (2025-07-16)
  → 'github:nixos/nixpkgs/fc02ee70efb805d3b2865908a13ddd4474557ecf?narHash=sha256-i%2BCQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s%3D' (2025-07-23)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/cda03d762aa4d6930f41c2a60b946e0f8a743630?narHash=sha256-ppPL0jXpeeFtyP9I01o807u3iVADQ3YkqpN2lUZk4LY%3D' (2025-07-19)
  → 'github:nixos/nixpkgs/ce6b0611ca70423d97fab2a3f53f61f1fa4ff0a4?narHash=sha256-Iy/9c6DaxCY9ECCLgpoo%2BuwY1K5YTmJLU7fSg7JeALk%3D' (2025-07-26)
2025-07-25 22:37:36 -04:00
github-actions[bot]
1cd4084ec8 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/9885400dbd82f9b2970b30e18f233404416f7cca?dir=pkgs/firefox-addons&narHash=sha256-vL26J2f9uXvwBNkfwYH1v75VwN22ZLhBcyZeenJwnCU%3D' (2025-07-11)
  → 'gitlab:rycee/nur-expressions/369dccacc0a8214600773b3bbbf68d98a19b74e8?dir=pkgs/firefox-addons&narHash=sha256-TVWYBcNpeQ3fEloryVP9N2yJnC3vuPpoZF1RqFFWFt0%3D' (2025-07-18)
• Updated input 'home-manager':
    'github:nix-community/home-manager/3976e0507edc9a5f332cb2be93fa20e646d22374?narHash=sha256-YhnBM3oknReSFTAuc2SMwekwjl9nDd5PUhcar4DsefM%3D' (2025-07-11)
  → 'github:nix-community/home-manager/d0300c8808e41da81d6edfc202f3d3833c157daf?narHash=sha256-irfg7lnfEpJY%2B3Cffkluzp2MTVw1Uq9QGxFp6qadcXI%3D' (2025-07-18)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/7ced9122cff2163c6a0212b8d1ec8c33a1660806?narHash=sha256-gATnkOe37eeVwKKYCsL%2BOnS2gU4MmLuZFzzWCtaKLI8%3D' (2025-07-09)
  → 'github:nixos/nixos-hardware/d1bfa8f6ccfb5c383e1eba609c1eb67ca24ed153?narHash=sha256-P8J72psdc/rWliIvp8jUpoQ6qRDlVzgSDDlgkaXQ0Fw%3D' (2025-07-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9807714d6944a957c2e036f84b0ff8caf9930bc0?narHash=sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X%2BxgOL0%3D' (2025-07-08)
  → 'github:nixos/nixpkgs/6e987485eb2c77e5dcc5af4e3c70843711ef9251?narHash=sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo%3D' (2025-07-16)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/bcef7b39781011d4332b54f59e989d4d4c22d643?narHash=sha256-yTQSi9WAqiGKLbCj3aO96QBp5F9u6hmL454uiKDCDrU%3D' (2025-07-11)
  → 'github:nixos/nixpkgs/cda03d762aa4d6930f41c2a60b946e0f8a743630?narHash=sha256-ppPL0jXpeeFtyP9I01o807u3iVADQ3YkqpN2lUZk4LY%3D' (2025-07-19)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/3633fc4acf03f43b260244d94c71e9e14a2f6e0d?narHash=sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA%3D' (2025-07-04)
  → 'github:Mic92/sops-nix/2c8def626f54708a9c38a5861866660395bb3461?narHash=sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U%3D' (2025-07-15)
2025-07-18 22:36:18 -04:00
github-actions[bot]
e65b4b696a flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/0c5b037915083a27a260b063b127b31443827bae?dir=pkgs/firefox-addons&narHash=sha256-bAKNekZcZd4QnBO/RUxjQAgaz67bYwFXWfQENA45Scg%3D' (2025-07-04)
  → 'gitlab:rycee/nur-expressions/9885400dbd82f9b2970b30e18f233404416f7cca?dir=pkgs/firefox-addons&narHash=sha256-vL26J2f9uXvwBNkfwYH1v75VwN22ZLhBcyZeenJwnCU%3D' (2025-07-11)
• Updated input 'home-manager':
    'github:nix-community/home-manager/7d9e3c35f0d46f82bac791d76260f15f53d83529?narHash=sha256-7HiC6w4ROEbMmKtj5pilnLOJej9HkkfU9wEd5QSTyNo%3D' (2025-07-04)
  → 'github:nix-community/home-manager/3976e0507edc9a5f332cb2be93fa20e646d22374?narHash=sha256-YhnBM3oknReSFTAuc2SMwekwjl9nDd5PUhcar4DsefM%3D' (2025-07-11)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/497ae1357f1ac97f1aea31a4cb74ad0d534ef41f?narHash=sha256-136MeWtckSHTN9Z2WRNRdZ8oRP3vyx3L8UxeBYE%2BJ9w%3D' (2025-07-02)
  → 'github:nixos/nixos-hardware/7ced9122cff2163c6a0212b8d1ec8c33a1660806?narHash=sha256-gATnkOe37eeVwKKYCsL%2BOnS2gU4MmLuZFzzWCtaKLI8%3D' (2025-07-09)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/3016b4b15d13f3089db8a41ef937b13a9e33a8df?narHash=sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU%2Btt4YY%3D' (2025-06-30)
  → 'github:nixos/nixpkgs/9807714d6944a957c2e036f84b0ff8caf9930bc0?narHash=sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X%2BxgOL0%3D' (2025-07-08)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/b441e40fcd70ff4368df31a7d5dfcc79e3596504?narHash=sha256-XnlCDd58iYO%2BaUBQIyxFOfkoFRDCq9ajaZFaaGwHc3Y%3D' (2025-07-05)
  → 'github:nixos/nixpkgs/bcef7b39781011d4332b54f59e989d4d4c22d643?narHash=sha256-yTQSi9WAqiGKLbCj3aO96QBp5F9u6hmL454uiKDCDrU%3D' (2025-07-11)
2025-07-11 22:39:14 -04:00
github-actions[bot]
20a4a8c2fc flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/8c101ae6d55115c7d4f12bffa932f30416dfd070?dir=pkgs/firefox-addons&narHash=sha256-kGbUMc4hww2Fe6DdCFy8Qnlspc4dLepa1L9SLh0LORg%3D' (2025-06-27)
  → 'gitlab:rycee/nur-expressions/0c5b037915083a27a260b063b127b31443827bae?dir=pkgs/firefox-addons&narHash=sha256-bAKNekZcZd4QnBO/RUxjQAgaz67bYwFXWfQENA45Scg%3D' (2025-07-04)
• Updated input 'home-manager':
    'github:nix-community/home-manager/080e8b48b0318b38143d5865de9334f46d51fce3?narHash=sha256-BZXgag7I0rnL/HMHAsBz3tQrfKAibpY2vovexl2lS%2BY%3D' (2025-06-26)
  → 'github:nix-community/home-manager/7d9e3c35f0d46f82bac791d76260f15f53d83529?narHash=sha256-7HiC6w4ROEbMmKtj5pilnLOJej9HkkfU9wEd5QSTyNo%3D' (2025-07-04)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/98236410ea0fe204d0447149537a924fb71a6d4f?narHash=sha256-2m1ceZjbmgrJCZ2PuQZaK4in3gcg3o6rZ7WK6dr5vAA%3D' (2025-06-25)
  → 'github:nixos/nixos-hardware/497ae1357f1ac97f1aea31a4cb74ad0d534ef41f?narHash=sha256-136MeWtckSHTN9Z2WRNRdZ8oRP3vyx3L8UxeBYE%2BJ9w%3D' (2025-07-02)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf?narHash=sha256-/CG%2Bw0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A%3D' (2025-06-24)
  → 'github:nixos/nixpkgs/3016b4b15d13f3089db8a41ef937b13a9e33a8df?narHash=sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU%2Btt4YY%3D' (2025-06-30)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/c0874d923d0fd19d73d95a02820acd27ae11e320?narHash=sha256-FQQyEt6/Q3FNeCkY9Gu1JeKBLzRQnZL%2BWYkjc53shLM%3D' (2025-06-27)
  → 'github:nixos/nixpkgs/b441e40fcd70ff4368df31a7d5dfcc79e3596504?narHash=sha256-XnlCDd58iYO%2BaUBQIyxFOfkoFRDCq9ajaZFaaGwHc3Y%3D' (2025-07-05)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2?narHash=sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M%3D' (2025-06-17)
  → 'github:Mic92/sops-nix/3633fc4acf03f43b260244d94c71e9e14a2f6e0d?narHash=sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA%3D' (2025-07-04)
2025-07-04 22:33:05 -04:00
f4348c2ab5 update desktop.nix kernelPackages to linuxPackages_6_15 2025-07-02 08:21:41 -04:00
6eab8497ba adding uv to my programs 2025-06-30 20:13:06 -04:00
github-actions[bot]
da5cdb8f05 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/26d54102450b4e23d56d4319ef0722f155b5b37c?dir=pkgs/firefox-addons&narHash=sha256-W%2BPwT19YbzRH8YawEeV3jBb5dp8CbfwWZ4uFQkGwZbA%3D' (2025-06-21)
  → 'gitlab:rycee/nur-expressions/8c101ae6d55115c7d4f12bffa932f30416dfd070?dir=pkgs/firefox-addons&narHash=sha256-kGbUMc4hww2Fe6DdCFy8Qnlspc4dLepa1L9SLh0LORg%3D' (2025-06-27)
• Updated input 'home-manager':
    'github:nix-community/home-manager/863842639722dd12ae9e37ca83bcb61a63b36f6c?narHash=sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc%3D' (2025-06-19)
  → 'github:nix-community/home-manager/080e8b48b0318b38143d5865de9334f46d51fce3?narHash=sha256-BZXgag7I0rnL/HMHAsBz3tQrfKAibpY2vovexl2lS%2BY%3D' (2025-06-26)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/1552a9f4513f3f0ceedcf90320e48d3d47165712?narHash=sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg%3D' (2025-06-20)
  → 'github:nixos/nixos-hardware/98236410ea0fe204d0447149537a924fb71a6d4f?narHash=sha256-2m1ceZjbmgrJCZ2PuQZaK4in3gcg3o6rZ7WK6dr5vAA%3D' (2025-06-25)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/08f22084e6085d19bcfb4be30d1ca76ecb96fe54?narHash=sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50%3D' (2025-06-19)
  → 'github:nixos/nixpkgs/30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf?narHash=sha256-/CG%2Bw0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A%3D' (2025-06-24)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/b5b8d1f94bd353640131a6a38d2b01d0bfc13012?narHash=sha256-NT8CNfGLNBI%2BuwjNC8HnHv0O6K1P1Nb%2B/g2eg%2Bu0gnE%3D' (2025-06-22)
  → 'github:nixos/nixpkgs/c0874d923d0fd19d73d95a02820acd27ae11e320?narHash=sha256-FQQyEt6/Q3FNeCkY9Gu1JeKBLzRQnZL%2BWYkjc53shLM%3D' (2025-06-27)
2025-06-27 22:33:15 -04:00
8aa9eea322 testing --rebase 2025-06-22 21:33:21 -04:00
febe7c7e53 test 2025-06-22 21:33:21 -04:00
b1ca58b2f4 adding Checkout repository 2025-06-22 21:33:21 -04:00
github-actions[bot]
7ad4ccd5ca flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/a00ce73b626ed274fbfe9f51627861e140b08f6d?dir=pkgs/firefox-addons&narHash=sha256-b3y7V7db0VwLGtpcLRmT1Aa9dpAKoHQdem55UhgB/fw%3D' (2025-06-18)
  → 'gitlab:rycee/nur-expressions/26d54102450b4e23d56d4319ef0722f155b5b37c?dir=pkgs/firefox-addons&narHash=sha256-W%2BPwT19YbzRH8YawEeV3jBb5dp8CbfwWZ4uFQkGwZbA%3D' (2025-06-21)
• Updated input 'home-manager':
    'github:nix-community/home-manager/0f355844e54e4c70906b1ef5cc35a0047d666c04?narHash=sha256-upC/GIlsIgtdtWRGd1obzdXWYQptNkfzZeyAFWgsgf0%3D' (2025-06-18)
  → 'github:nix-community/home-manager/863842639722dd12ae9e37ca83bcb61a63b36f6c?narHash=sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc%3D' (2025-06-19)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/61837d2a33ccc1582c5fabb7bf9130d39fee59ad?narHash=sha256-ynqbgIYrg7P1fAKYqe8I/PMiLABBcNDYG9YaAP/d/C4%3D' (2025-06-16)
  → 'github:nixos/nixos-hardware/1552a9f4513f3f0ceedcf90320e48d3d47165712?narHash=sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg%3D' (2025-06-20)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9e83b64f727c88a7711a2c463a7b16eedb69a84c?narHash=sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI%3D' (2025-06-17)
  → 'github:nixos/nixpkgs/08f22084e6085d19bcfb4be30d1ca76ecb96fe54?narHash=sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50%3D' (2025-06-19)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/ba92ab5dc0759a8740003ca34b5c1b888f4766d4?narHash=sha256-JW40%2BzIiDS%2BrZavb9IYdIN40/GmErO2%2B0%2BA66rM6/b8%3D' (2025-06-19)
  → 'github:nixos/nixpkgs/b5b8d1f94bd353640131a6a38d2b01d0bfc13012?narHash=sha256-NT8CNfGLNBI%2BuwjNC8HnHv0O6K1P1Nb%2B/g2eg%2Bu0gnE%3D' (2025-06-22)
2025-06-22 21:11:00 -04:00
c936501afb bugfix fixing problems in merge_flake_lock_update 2025-06-22 20:48:10 -04:00
239d7833f6 small update 2025-06-22 20:44:28 -04:00
8fb6ae41b9 added gh pr list 2025-06-22 20:44:28 -04:00
80e0b03463 testing merge_flake_lock_update 2025-06-22 20:44:28 -04:00
747e2700ed updated update-flake-lock to be weakly 2025-06-21 23:57:18 -04:00
472f11e5b6 updated to --rebase 2025-06-21 22:20:13 -04:00
d75493997e testing auto-merge 2025-06-21 22:20:13 -04:00
d711983ac7 update desktop.nix kernelPackages to linuxPackages_6_14 2025-06-20 21:34:29 -04:00
1aabb2b112 removing wyoming 2025-06-19 15:17:54 -04:00
github-actions[bot]
8c09b8a78f flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/fe13e6abfe72b39ad8381595c3c404849330c3cb?dir=pkgs/firefox-addons&narHash=sha256-bN4tccrmczfR4PUuepHpxNNmWG3cLZTFIt4BaD8YyvA%3D' (2025-06-09)
  → 'gitlab:rycee/nur-expressions/a00ce73b626ed274fbfe9f51627861e140b08f6d?dir=pkgs/firefox-addons&narHash=sha256-b3y7V7db0VwLGtpcLRmT1Aa9dpAKoHQdem55UhgB/fw%3D' (2025-06-18)
• Updated input 'home-manager':
    'github:nix-community/home-manager/1df816c407d3a5090c8496c9b00170af7891f021?narHash=sha256-V1BgwiX8NjbRreU6LC2EzmuqFSQAHhoSeNlYJyZ40NE%3D' (2025-06-09)
  → 'github:nix-community/home-manager/0f355844e54e4c70906b1ef5cc35a0047d666c04?narHash=sha256-upC/GIlsIgtdtWRGd1obzdXWYQptNkfzZeyAFWgsgf0%3D' (2025-06-18)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/4602f7e1d3f197b3cb540d5accf5669121629628?narHash=sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM%3D' (2025-06-06)
  → 'github:nixos/nixos-hardware/61837d2a33ccc1582c5fabb7bf9130d39fee59ad?narHash=sha256-ynqbgIYrg7P1fAKYqe8I/PMiLABBcNDYG9YaAP/d/C4%3D' (2025-06-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/3e3afe5174c561dee0df6f2c2b2236990146329f?narHash=sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU%3D' (2025-06-07)
  → 'github:nixos/nixpkgs/9e83b64f727c88a7711a2c463a7b16eedb69a84c?narHash=sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI%3D' (2025-06-17)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/8b64795ee08f70b73d4eeac16af0869f92b18284?narHash=sha256-G3nP/Eaymj55jV9p/xjeRmMTUICICGTNFpJaXDAoNtQ%3D' (2025-06-09)
  → 'github:nixos/nixpkgs/ba92ab5dc0759a8740003ca34b5c1b888f4766d4?narHash=sha256-JW40%2BzIiDS%2BrZavb9IYdIN40/GmErO2%2B0%2BA66rM6/b8%3D' (2025-06-19)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/8d215e1c981be3aa37e47aeabd4e61bb069548fd?narHash=sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD%2B9H%2BWc8o%3D' (2025-05-18)
  → 'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2?narHash=sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M%3D' (2025-06-17)
2025-06-19 00:27:57 -04:00
0fe99d9d4e updated shellAliases 2025-06-11 22:50:43 -04:00
148722be43 disabled sudo 2025-06-11 22:50:43 -04:00
be2421e3dc testing sudo-rs 2025-06-11 22:50:43 -04:00
2eb6c43b49 fixed formatting 2025-06-11 22:47:44 -04:00
897e06f622 added local for gcw and setup setup gcw acces for megan 2025-06-11 22:47:44 -04:00
4e99c54c12 worked with megan 2025-06-11 22:47:44 -04:00
3abd04ec5e added meg and gcw to postgres 2025-06-11 22:47:44 -04:00
a6a0fd0727 added gcw user 2025-06-11 22:47:44 -04:00
f23d381895 added user for megan 2025-06-11 22:47:44 -04:00
65335d1d38 adding great_cloud_of_witnesses.nix 2025-06-11 22:47:44 -04:00
github-actions[bot]
7b318e038a flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/493bb7da63143e3144c964d2b8e34e78dfe02a4b?dir=pkgs/firefox-addons&narHash=sha256-mk4nReFlqtGToFfZngNZ58FYud/svkmRp%2BTHBsfqhcw%3D' (2025-05-30)
  → 'gitlab:rycee/nur-expressions/fe13e6abfe72b39ad8381595c3c404849330c3cb?dir=pkgs/firefox-addons&narHash=sha256-bN4tccrmczfR4PUuepHpxNNmWG3cLZTFIt4BaD8YyvA%3D' (2025-06-09)
• Updated input 'home-manager':
    'github:nix-community/home-manager/7c60ea029602851cdeb2f3246e991fcc117195bc?narHash=sha256-5mhG43yYEEpLxEp6e683A8YiW4JHmWihF7XECjMM6Ns%3D' (2025-05-30)
  → 'github:nix-community/home-manager/1df816c407d3a5090c8496c9b00170af7891f021?narHash=sha256-V1BgwiX8NjbRreU6LC2EzmuqFSQAHhoSeNlYJyZ40NE%3D' (2025-06-09)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/daa628a725ab4948e0e2b795e8fb6f4c3e289a7a?narHash=sha256-pZH4bqbOd8S%2Bsi6UcfjHovWDiWKiIGRNRMpmRWaDIms%3D' (2025-05-30)
  → 'github:nixos/nixos-hardware/4602f7e1d3f197b3cb540d5accf5669121629628?narHash=sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM%3D' (2025-06-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/96ec055edbe5ee227f28cdbc3f1ddf1df5965102?narHash=sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg%3D' (2025-05-28)
  → 'github:nixos/nixpkgs/3e3afe5174c561dee0df6f2c2b2236990146329f?narHash=sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU%3D' (2025-06-07)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/c936d57413b770679543a3aa85791f299b931a7b?narHash=sha256-SLAhuAJv0hYwRSHdbdTX9JFNl5c3I0NpQP8CY2xta6s%3D' (2025-05-31)
  → 'github:nixos/nixpkgs/8b64795ee08f70b73d4eeac16af0869f92b18284?narHash=sha256-G3nP/Eaymj55jV9p/xjeRmMTUICICGTNFpJaXDAoNtQ%3D' (2025-06-09)
2025-06-09 19:17:53 -04:00
2fe3ad1f68 ran treefmt 2025-06-08 15:06:01 -04:00
fa27adb4fe removed cache.tmmworkshop.com from nix.nix and flake.nix 2025-06-08 15:06:01 -04:00
ac7aec4efd update i[ address 2025-06-08 15:06:01 -04:00
87bebda02e removing duckdns 2025-06-03 18:06:17 -04:00
43276a693a updated defaultLocale to en_US.UTF-8 2025-05-31 09:09:12 -04:00
84504c68b7 removed supportedLocales 2025-05-31 09:09:12 -04:00
github-actions[bot]
45267b5c59 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/d4b3ffe3e719e42b175ccdef13598516f0a8025d?dir=pkgs/firefox-addons&narHash=sha256-d6SvA0gTHDrOqt4tZRVD0Gm5G4w6jAFJ6lis79PjSPw%3D' (2025-05-12)
  → 'gitlab:rycee/nur-expressions/493bb7da63143e3144c964d2b8e34e78dfe02a4b?dir=pkgs/firefox-addons&narHash=sha256-mk4nReFlqtGToFfZngNZ58FYud/svkmRp%2BTHBsfqhcw%3D' (2025-05-30)
• Updated input 'home-manager':
    'github:nix-community/home-manager/f0a7db5ec1d369721e770a45e4d19f8e48186a69?narHash=sha256-VnR33UmH0KzvTuVg%2B6oYkDVpnPuHanQisNUXytCRBPQ%3D' (2025-05-12)
  → 'github:nix-community/home-manager/7c60ea029602851cdeb2f3246e991fcc117195bc?narHash=sha256-5mhG43yYEEpLxEp6e683A8YiW4JHmWihF7XECjMM6Ns%3D' (2025-05-30)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/d1d68fe8b00248caaa5b3bbe4984c12b47e0867d?narHash=sha256-dMx20S2molwqJxbmMB4pGjNfgp5H1IOHNa1Eby6xL%2B0%3D' (2025-05-12)
  → 'github:nixos/nixos-hardware/daa628a725ab4948e0e2b795e8fb6f4c3e289a7a?narHash=sha256-pZH4bqbOd8S%2Bsi6UcfjHovWDiWKiIGRNRMpmRWaDIms%3D' (2025-05-30)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d89fc19e405cb2d55ce7cc114356846a0ee5e956?narHash=sha256-3e%2BAVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ%3D' (2025-05-10)
  → 'github:nixos/nixpkgs/96ec055edbe5ee227f28cdbc3f1ddf1df5965102?narHash=sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg%3D' (2025-05-28)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/bee20293bce36bd20f2ed6627a60db76eaa7e9b4?narHash=sha256-WJ55VutSzEjVjq9jYpUvJp6fRB8ncgVzFpWoAwfvppg%3D' (2025-05-13)
  → 'github:nixos/nixpkgs/c936d57413b770679543a3aa85791f299b931a7b?narHash=sha256-SLAhuAJv0hYwRSHdbdTX9JFNl5c3I0NpQP8CY2xta6s%3D' (2025-05-31)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/e93ee1d900ad264d65e9701a5c6f895683433386?narHash=sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB%2Bqsl9BZUnRvg%3D' (2025-05-05)
  → 'github:Mic92/sops-nix/8d215e1c981be3aa37e47aeabd4e61bb069548fd?narHash=sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD%2B9H%2BWc8o%3D' (2025-05-18)
• Updated input 'system_tools':
    'github:RichieCahill/system_tools/c9979e045bca52ec85a0dc560b238f3e5ae2f01c?narHash=sha256-PM7dz99nb6dDiw/3naRGB/dUl5U7dJVspR9uevhW3xo%3D' (2025-03-10)
  → 'github:RichieCahill/system_tools/68ab5d1c17ac3fe2487f73dbbb4848bd2291139e?narHash=sha256-woyaUwmZurfNTXBEFM6M7ueSd/Udixs%2B4DUInhL835c%3D' (2025-05-17)
• Removed input 'system_tools/flake-utils'
• Removed input 'system_tools/flake-utils/systems'
• Removed input 'system_tools/poetry2nix'
• Removed input 'system_tools/poetry2nix/flake-utils'
• Removed input 'system_tools/poetry2nix/nix-github-actions'
• Removed input 'system_tools/poetry2nix/nix-github-actions/nixpkgs'
• Removed input 'system_tools/poetry2nix/nixpkgs'
• Removed input 'system_tools/poetry2nix/systems'
• Removed input 'system_tools/poetry2nix/treefmt-nix'
• Removed input 'system_tools/poetry2nix/treefmt-nix/nixpkgs'
• Added input 'system_tools/pyproject-build-systems':
    'github:pyproject-nix/build-system-pkgs/7dba6dbc73120e15b558754c26024f6c93015dd7?narHash=sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU%3D' (2025-04-14)
• Added input 'system_tools/pyproject-build-systems/nixpkgs':
    follows 'system_tools/nixpkgs'
• Added input 'system_tools/pyproject-build-systems/pyproject-nix':
    follows 'system_tools/pyproject-nix'
• Added input 'system_tools/pyproject-build-systems/uv2nix':
    follows 'system_tools/uv2nix'
• Added input 'system_tools/pyproject-nix':
    'github:pyproject-nix/pyproject.nix/e09c10c24ebb955125fda449939bfba664c467fd?narHash=sha256-QxdHGNpbicIrw5t6U3x%2BZxeY/7IEJ6lYbvsjXmcxFIM%3D' (2025-05-06)
• Added input 'system_tools/pyproject-nix/nixpkgs':
    follows 'system_tools/nixpkgs'
• Added input 'system_tools/uv2nix':
    'github:pyproject-nix/uv2nix/582024dc64663e9f88d467c2f7f7b20d278349de?narHash=sha256-W8BFXk5R0TuJcjIhcGoMpSOaIufGXpizK0pm%2BuTqynA%3D' (2025-05-17)
• Added input 'system_tools/uv2nix/nixpkgs':
    follows 'system_tools/nixpkgs'
• Added input 'system_tools/uv2nix/pyproject-nix':
    follows 'system_tools/pyproject-nix'
2025-05-30 22:44:24 -04:00
github-actions[bot]
bd964a8390 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/0388c30f59e860307b2ef0ba93f38d2e525a153e?dir=pkgs/firefox-addons&narHash=sha256-vX5uq4wv7FeNeeFtsTPXQ9n2hd92NFXI%2Bu9sg1K8OhA%3D' (2025-04-27)
  → 'gitlab:rycee/nur-expressions/d4b3ffe3e719e42b175ccdef13598516f0a8025d?dir=pkgs/firefox-addons&narHash=sha256-d6SvA0gTHDrOqt4tZRVD0Gm5G4w6jAFJ6lis79PjSPw%3D' (2025-05-12)
• Updated input 'home-manager':
    'github:nix-community/home-manager/5f217e5a319f6c186283b530f8c975e66c028433?narHash=sha256-osgPX/SzIpkR50vev/rqoTEAVkEcOWXoQXmbzsaI4KU%3D' (2025-04-30)
  → 'github:nix-community/home-manager/f0a7db5ec1d369721e770a45e4d19f8e48186a69?narHash=sha256-VnR33UmH0KzvTuVg%2B6oYkDVpnPuHanQisNUXytCRBPQ%3D' (2025-05-12)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/72081c9fbbef63765ae82bff9727ea79cc86bd5b?narHash=sha256-mmV2oPhQN%2BYF2wmnJzXX8tqgYmUYXUj3uUUBSTmYN5o%3D' (2025-04-29)
  → 'github:nixos/nixos-hardware/d1d68fe8b00248caaa5b3bbe4984c12b47e0867d?narHash=sha256-dMx20S2molwqJxbmMB4pGjNfgp5H1IOHNa1Eby6xL%2B0%3D' (2025-05-12)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/46e634be05ce9dc6d4db8e664515ba10b78151ae?narHash=sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ%2B5dck%3D' (2025-04-29)
  → 'github:nixos/nixpkgs/d89fc19e405cb2d55ce7cc114356846a0ee5e956?narHash=sha256-3e%2BAVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ%3D' (2025-05-10)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/268ec3b4f1976d689f80b5b18da885420d258b0a?narHash=sha256-xZkR328WwOXlqI%2BKfksGTwyzQpRICmR4wUrxk6pbWqg%3D' (2025-05-01)
  → 'github:nixos/nixpkgs/bee20293bce36bd20f2ed6627a60db76eaa7e9b4?narHash=sha256-WJ55VutSzEjVjq9jYpUvJp6fRB8ncgVzFpWoAwfvppg%3D' (2025-05-13)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c?narHash=sha256-ePyTpKEJTgX0gvgNQWd7tQYQ3glIkbqcW778RpHlqgA%3D' (2025-04-22)
  → 'github:Mic92/sops-nix/e93ee1d900ad264d65e9701a5c6f895683433386?narHash=sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB%2Bqsl9BZUnRvg%3D' (2025-05-05)
2025-05-13 18:27:42 -04:00
github-actions[bot]
86e90440c4 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/89b9fcf0f026688036283f5716677817a7cec061?dir=pkgs/firefox-addons&narHash=sha256-Ch8OueK%2BUNc4lEkUbL9K9xgBXEKVEsB7GrNZm6jO46s%3D' (2025-04-13)
  → 'gitlab:rycee/nur-expressions/0388c30f59e860307b2ef0ba93f38d2e525a153e?dir=pkgs/firefox-addons&narHash=sha256-vX5uq4wv7FeNeeFtsTPXQ9n2hd92NFXI%2Bu9sg1K8OhA%3D' (2025-04-27)
• Updated input 'home-manager':
    'github:nix-community/home-manager/cfa196c705a896372319249d757085876ab62448?narHash=sha256-g07PYyZCIHVDLzRo8fllZRES7Nf9R8%2BxZwNJ7t0gt5s%3D' (2025-04-13)
  → 'github:nix-community/home-manager/5f217e5a319f6c186283b530f8c975e66c028433?narHash=sha256-osgPX/SzIpkR50vev/rqoTEAVkEcOWXoQXmbzsaI4KU%3D' (2025-04-30)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/1fe3cc2bc5d2dc9c81cb4e63d2f67c1543340df1?narHash=sha256-OuLhysErPHl53BBifhesrRumJNhrlSgQDfYOTXfgIMg%3D' (2025-04-11)
  → 'github:nixos/nixos-hardware/72081c9fbbef63765ae82bff9727ea79cc86bd5b?narHash=sha256-mmV2oPhQN%2BYF2wmnJzXX8tqgYmUYXUj3uUUBSTmYN5o%3D' (2025-04-29)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/2631b0b7abcea6e640ce31cd78ea58910d31e650?narHash=sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR%2BXhw3kr/3Xd0GPTM%3D' (2025-04-12)
  → 'github:nixos/nixpkgs/46e634be05ce9dc6d4db8e664515ba10b78151ae?narHash=sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ%2B5dck%3D' (2025-04-29)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/fe24d8526fe90e49fd04bd36e18722a1894ea41f?narHash=sha256-2rcE3NDqQVYjdrUHFFgJSJG7ATUkJzAFaBz8ybTp2fU%3D' (2025-04-13)
  → 'github:nixos/nixpkgs/268ec3b4f1976d689f80b5b18da885420d258b0a?narHash=sha256-xZkR328WwOXlqI%2BKfksGTwyzQpRICmR4wUrxk6pbWqg%3D' (2025-05-01)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/7e147a1ae90f0d4a374938cdc3df3cdaecb9d388?narHash=sha256-lv52pnfiRGp5%2BxkZEgWr56DWiRgkMFXpiGba3eJ3krE%3D' (2025-04-13)
  → 'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c?narHash=sha256-ePyTpKEJTgX0gvgNQWd7tQYQ3glIkbqcW778RpHlqgA%3D' (2025-04-22)
2025-04-30 20:23:43 -04:00
github-actions[bot]
2b743fa1b8 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/f8861a4b09a181dd88f6626d0202d9225ae85d65?dir=pkgs/firefox-addons&narHash=sha256-tlJY7MfAena/yi3lmd7y7vQGpLma4Q1BLtO4dvzF/Vs%3D' (2025-03-27)
  → 'gitlab:rycee/nur-expressions/89b9fcf0f026688036283f5716677817a7cec061?dir=pkgs/firefox-addons&narHash=sha256-Ch8OueK%2BUNc4lEkUbL9K9xgBXEKVEsB7GrNZm6jO46s%3D' (2025-04-13)
• Removed input 'firefox-addons/flake-utils'
• Updated input 'home-manager':
    'github:nix-community/home-manager/b431496538b0e294fbe44a1441b24ae8195c63f0?narHash=sha256-G7866vbO5jgqMcYJzgbxej40O6mBGQMGt6gM0himjoA%3D' (2025-03-29)
  → 'github:nix-community/home-manager/cfa196c705a896372319249d757085876ab62448?narHash=sha256-g07PYyZCIHVDLzRo8fllZRES7Nf9R8%2BxZwNJ7t0gt5s%3D' (2025-04-13)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/0ed819e708af17bfc4bbc63ee080ef308a24aa42?narHash=sha256-I09SrXIO0UdyBFfh0fxDq5WnCDg8XKmZ1HQbaXzMA1k%3D' (2025-03-28)
  → 'github:nixos/nixos-hardware/1fe3cc2bc5d2dc9c81cb4e63d2f67c1543340df1?narHash=sha256-OuLhysErPHl53BBifhesrRumJNhrlSgQDfYOTXfgIMg%3D' (2025-04-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5e5402ecbcb27af32284d4a62553c019a3a49ea6?narHash=sha256-gWd4urRoLRe8GLVC/3rYRae1h%2BxfQzt09xOfb0PaHSk%3D' (2025-03-27)
  → 'github:nixos/nixpkgs/2631b0b7abcea6e640ce31cd78ea58910d31e650?narHash=sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR%2BXhw3kr/3Xd0GPTM%3D' (2025-04-12)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/a2cd41ef5ba904d58f230740f06567ff9506e368?narHash=sha256-UTEKMh3sbRHVr6ZYIoM7NWQjfrjIGTVOoV2Q4LkLvSk%3D' (2025-03-30)
  → 'github:nixos/nixpkgs/fe24d8526fe90e49fd04bd36e18722a1894ea41f?narHash=sha256-2rcE3NDqQVYjdrUHFFgJSJG7ATUkJzAFaBz8ybTp2fU%3D' (2025-04-13)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/67566fe68a8bed2a7b1175fdfb0697ed22ae8852?narHash=sha256-ZGlpUDsuBdeZeTNgoMv%2Baw0ByXT2J3wkYw9kJwkAS4M%3D' (2025-03-23)
  → 'github:Mic92/sops-nix/7e147a1ae90f0d4a374938cdc3df3cdaecb9d388?narHash=sha256-lv52pnfiRGp5%2BxkZEgWr56DWiRgkMFXpiGba3eJ3krE%3D' (2025-04-13)
2025-04-13 17:30:00 -04:00
eb69646603 treefmt 2025-04-05 14:16:41 -04:00
ccfde41209 enabled powertop by default 2025-04-05 14:16:41 -04:00
eb90251671 testing scsiLinkPolicy 2025-04-05 14:16:41 -04:00
a5ccedbb5d shrank storage pool 2025-04-05 14:16:41 -04:00
7dbf67a2d3 updated then vars names 2025-04-05 14:16:41 -04:00
c349af60ce fixed evaluation warnings 2025-04-05 14:16:41 -04:00
3fcc3447b1 fixed evaluation warnings 2025-04-05 14:16:41 -04:00
fc166e9c1a added json formatter 2025-04-05 14:16:41 -04:00
e902608c6c treefmt 2025-04-05 14:16:41 -04:00
59a794169e created function for setting up encrypted drives 2025-04-05 14:16:41 -04:00
fa618f8849 fixed mistake 2025-04-05 14:16:41 -04:00
84e469897e deleted uptime_kuma.nix 2025-04-05 14:16:41 -04:00
4694d75a62 added scratch pool 2025-04-05 14:16:41 -04:00
ca2081bf93 added usb decrypt 2025-04-05 14:16:41 -04:00
fa3f14785c removed torrenting pool 2025-04-05 14:16:41 -04:00
aa2836c452 removed qbit 2025-04-05 14:16:41 -04:00
5b750043ce testing powertop 2025-04-05 14:16:41 -04:00
da721a32f3 treefmt 2025-04-05 14:16:41 -04:00
fd172638ec testing powerManagement setting for rhapsody-in-green 2025-04-05 14:16:41 -04:00
9dd32c7c06 adding cpuFreqGovernor ondemand 2025-04-05 14:16:41 -04:00
github-actions[bot]
96ce4ccb4a flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/d74460da63a8c08a69a1f143b04f2ab1a6b2f5c2?dir=pkgs/firefox-addons&narHash=sha256-dAhrL%2BgEjNN5U/Sosy7IrX0Y0qPA0U7Gp9TBhqEliNU%3D' (2025-03-23)
  → 'gitlab:rycee/nur-expressions/f8861a4b09a181dd88f6626d0202d9225ae85d65?dir=pkgs/firefox-addons&narHash=sha256-tlJY7MfAena/yi3lmd7y7vQGpLma4Q1BLtO4dvzF/Vs%3D' (2025-03-27)
• Updated input 'home-manager':
    'github:nix-community/home-manager/869f2ec2add75ce2a70a6dbbf585b8399abec625?narHash=sha256-F3xBdOs5m0SE6Gq3jz%2BJxDOPvsLs22vbGfD05uF6xEc%3D' (2025-03-25)
  → 'github:nix-community/home-manager/b431496538b0e294fbe44a1441b24ae8195c63f0?narHash=sha256-G7866vbO5jgqMcYJzgbxej40O6mBGQMGt6gM0himjoA%3D' (2025-03-29)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/ecaa2d911e77c265c2a5bac8b583c40b0f151726?narHash=sha256-zvQ4GsCJT6MTOzPKLmlFyM%2Blxo0JGQ0cSFaZSACmWfY%3D' (2025-03-24)
  → 'github:nixos/nixos-hardware/0ed819e708af17bfc4bbc63ee080ef308a24aa42?narHash=sha256-I09SrXIO0UdyBFfh0fxDq5WnCDg8XKmZ1HQbaXzMA1k%3D' (2025-03-28)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D' (2025-03-22)
  → 'github:nixos/nixpkgs/5e5402ecbcb27af32284d4a62553c019a3a49ea6?narHash=sha256-gWd4urRoLRe8GLVC/3rYRae1h%2BxfQzt09xOfb0PaHSk%3D' (2025-03-27)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/7b9e9c8d6f8a418fc83b6391313a6570b166daf5?narHash=sha256-W5TB0q9zGPiOZvGFpZTl0V0pSWh54EVEhyaNcroa1Pk%3D' (2025-03-25)
  → 'github:nixos/nixpkgs/a2cd41ef5ba904d58f230740f06567ff9506e368?narHash=sha256-UTEKMh3sbRHVr6ZYIoM7NWQjfrjIGTVOoV2Q4LkLvSk%3D' (2025-03-30)
2025-03-30 15:35:49 -04:00
github-actions[bot]
f448da92c7 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/4021f5dad2a46ff78c1bf82ee45c1656e12164f2?dir=pkgs/firefox-addons&narHash=sha256-5ahYCLPnBcZX7vlmXzn%2Bm0LDRgYiMDglU6UnH/HngPo%3D' (2025-03-14)
  → 'gitlab:rycee/nur-expressions/d74460da63a8c08a69a1f143b04f2ab1a6b2f5c2?dir=pkgs/firefox-addons&narHash=sha256-dAhrL%2BgEjNN5U/Sosy7IrX0Y0qPA0U7Gp9TBhqEliNU%3D' (2025-03-23)
• Updated input 'home-manager':
    'github:nix-community/home-manager/4e12151c9e014e2449e0beca2c0e9534b96a26b4?narHash=sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY%3D' (2025-03-14)
  → 'github:nix-community/home-manager/869f2ec2add75ce2a70a6dbbf585b8399abec625?narHash=sha256-F3xBdOs5m0SE6Gq3jz%2BJxDOPvsLs22vbGfD05uF6xEc%3D' (2025-03-25)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/e1f12151258b12c567f456d8248e4694e9390613?narHash=sha256-f0BVt1/cvA0DQ/q3rB%2BHY4g4tKksd03ZkzI4xehC2Ew%3D' (2025-03-12)
  → 'github:nixos/nixos-hardware/ecaa2d911e77c265c2a5bac8b583c40b0f151726?narHash=sha256-zvQ4GsCJT6MTOzPKLmlFyM%2Blxo0JGQ0cSFaZSACmWfY%3D' (2025-03-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/6607cf789e541e7873d40d3a8f7815ea92204f32?narHash=sha256-cPfs8qMccim2RBgtKGF%2Bx9IBCduRvd/N5F4nYpU0TVE%3D' (2025-03-13)
  → 'github:nixos/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D' (2025-03-22)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/0bf41acf4849eeae4e4ea6f5e3e9449a2532b44a?narHash=sha256-N/X9mRbXQiFOEBXSArrsP9cBH3BrwUIfiZkVoegOn4I%3D' (2025-03-14)
  → 'github:nixos/nixpkgs/7b9e9c8d6f8a418fc83b6391313a6570b166daf5?narHash=sha256-W5TB0q9zGPiOZvGFpZTl0V0pSWh54EVEhyaNcroa1Pk%3D' (2025-03-25)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f?narHash=sha256-ynOgXAyToeE1UdLNfrUn/hL7MN0OpIS2BtNdLjpjPf0%3D' (2025-03-13)
  → 'github:Mic92/sops-nix/67566fe68a8bed2a7b1175fdfb0697ed22ae8852?narHash=sha256-ZGlpUDsuBdeZeTNgoMv%2Baw0ByXT2J3wkYw9kJwkAS4M%3D' (2025-03-23)
2025-03-25 11:48:29 -04:00
8d14e85a5e removed open-webui 2025-03-25 11:42:48 -04:00
171dcb6273 testing nixpkgs.config.cudaSupport 2025-03-25 11:42:48 -04:00
8576cb2113 updated phone id 2025-03-23 19:06:29 -04:00
d0077f00f5 added mypy setting 2025-03-23 19:06:29 -04:00
0ea628ddb7 treefmt 2025-03-23 19:06:29 -04:00
4feba720fc added openwakeword 2025-03-23 19:06:29 -04:00
81ffea08e3 moved home_assistant data to postgres 2025-03-23 19:06:29 -04:00
61db4659dd user updates 2025-03-23 19:06:29 -04:00
0a50d94af4 added whisper and piper to home-assistant 2025-03-23 19:06:29 -04:00
27c59192c8 linux 6.13 2025-03-14 22:32:19 -04:00
github-actions[bot]
5a1078fec0 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/0b95936d94ea2a3ce66538f299351cf0b491aa15?dir=pkgs/firefox-addons&narHash=sha256-f314Ke28BGoVh4TK8FCzlPZgOl%2BoV7PvLyPF%2B%2Bln9M4%3D' (2025-03-07)
  → 'gitlab:rycee/nur-expressions/4021f5dad2a46ff78c1bf82ee45c1656e12164f2?dir=pkgs/firefox-addons&narHash=sha256-5ahYCLPnBcZX7vlmXzn%2Bm0LDRgYiMDglU6UnH/HngPo%3D' (2025-03-14)
• Updated input 'home-manager':
    'github:nix-community/home-manager/95711f926676018d279ba09fe7530d03b5d5b3e2?narHash=sha256-ytDmwV93lZ1f6jswJkxEQz5cBlwje/2rH/yUZDADZNs%3D' (2025-03-07)
  → 'github:nix-community/home-manager/4e12151c9e014e2449e0beca2c0e9534b96a26b4?narHash=sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY%3D' (2025-03-14)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/b48cc4dab0f9711af296fc367b6108cf7b8ccb16?narHash=sha256-RUAdT8dZ6k/486vnu3tiNRrNW6%2BQ8uSD2Mq7gTX4jlo%3D' (2025-03-07)
  → 'github:nixos/nixos-hardware/e1f12151258b12c567f456d8248e4694e9390613?narHash=sha256-f0BVt1/cvA0DQ/q3rB%2BHY4g4tKksd03ZkzI4xehC2Ew%3D' (2025-03-12)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/10069ef4cf863633f57238f179a0297de84bd8d3?narHash=sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U%3D' (2025-03-06)
  → 'github:nixos/nixpkgs/6607cf789e541e7873d40d3a8f7815ea92204f32?narHash=sha256-cPfs8qMccim2RBgtKGF%2Bx9IBCduRvd/N5F4nYpU0TVE%3D' (2025-03-13)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/cb26667f94d3d1163ba0e0e1b9cf9881290a7731?narHash=sha256-21gJ2ZcpqQmMrrYAH7IzbKWZn3MVxQNTCx9DV7OJWG4%3D' (2025-03-07)
  → 'github:nixos/nixpkgs/0bf41acf4849eeae4e4ea6f5e3e9449a2532b44a?narHash=sha256-N/X9mRbXQiFOEBXSArrsP9cBH3BrwUIfiZkVoegOn4I%3D' (2025-03-14)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/3f2412536eeece783f0d0ad3861417f347219f4d?narHash=sha256-9lfmSZLz6eq9Ygr6cCmvQiiBEaPb54pUBcjvbEMPORc%3D' (2025-03-03)
  → 'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f?narHash=sha256-ynOgXAyToeE1UdLNfrUn/hL7MN0OpIS2BtNdLjpjPf0%3D' (2025-03-13)
• Updated input 'system_tools':
    'github:RichieCahill/system_tools/b36dd59fedeba140175590bfcab2ba22049dfc93?narHash=sha256-uzT5hQstNHJvdPPqdSiznxPXL3qCaKQ%2BDmMnx6IpIYk%3D' (2025-02-16)
  → 'github:RichieCahill/system_tools/c9979e045bca52ec85a0dc560b238f3e5ae2f01c?narHash=sha256-PM7dz99nb6dDiw/3naRGB/dUl5U7dJVspR9uevhW3xo%3D' (2025-03-10)
2025-03-14 22:16:28 -04:00
39ed05a73a updating open-webui host 2025-03-14 21:43:47 -04:00
github-actions[bot]
68202fdd15 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/9a8a0914000e4453c99a4c12e9862a0a40075851?dir=pkgs/firefox-addons&narHash=sha256-Gpvn9Z%2BZgKPyb6qaAbahLbo6ZVj7VuLzSCmHZRvsACA%3D' (2025-02-22)
  → 'gitlab:rycee/nur-expressions/0b95936d94ea2a3ce66538f299351cf0b491aa15?dir=pkgs/firefox-addons&narHash=sha256-f314Ke28BGoVh4TK8FCzlPZgOl%2BoV7PvLyPF%2B%2Bln9M4%3D' (2025-03-07)
• Updated input 'home-manager':
    'github:nix-community/home-manager/6be185eb76295e7562f5bf2da42afe374b8beb15?narHash=sha256-GKe3vrIWcei4gSTckEzHr5Zf/g9NSofmsAnbkNYU%2BlM%3D' (2025-02-26)
  → 'github:nix-community/home-manager/95711f926676018d279ba09fe7530d03b5d5b3e2?narHash=sha256-ytDmwV93lZ1f6jswJkxEQz5cBlwje/2rH/yUZDADZNs%3D' (2025-03-07)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/d58f642ddb23320965b27beb0beba7236e9117b5?narHash=sha256-pGk/aA0EBvI6o4DeuZsr05Ig/r4uMlSaf5EWUZEWM10%3D' (2025-02-24)
  → 'github:nixos/nixos-hardware/b48cc4dab0f9711af296fc367b6108cf7b8ccb16?narHash=sha256-RUAdT8dZ6k/486vnu3tiNRrNW6%2BQ8uSD2Mq7gTX4jlo%3D' (2025-03-07)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/0196c0175e9191c474c26ab5548db27ef5d34b05?narHash=sha256-WGaHVAjcrv%2BCun7zPlI41SerRtfknGQap281%2BAakSAw%3D' (2025-02-24)
  → 'github:nixos/nixpkgs/10069ef4cf863633f57238f179a0297de84bd8d3?narHash=sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U%3D' (2025-03-06)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/45ea1fa0de33802bcc9ca41075eac2c05a15eaab?narHash=sha256-HWWeQPGrD%2BiR2f3/OIFHnWZ62d7CafL5BHgL5EITxGE%3D' (2025-02-26)
  → 'github:nixos/nixpkgs/cb26667f94d3d1163ba0e0e1b9cf9881290a7731?narHash=sha256-21gJ2ZcpqQmMrrYAH7IzbKWZn3MVxQNTCx9DV7OJWG4%3D' (2025-03-07)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/07af005bb7d60c7f118d9d9f5530485da5d1e975?narHash=sha256-7JAGezJ0Dn5qIyA2%2BT4Dt/xQgAbhCglh6lzCekTVMeU%3D' (2025-02-11)
  → 'github:Mic92/sops-nix/3f2412536eeece783f0d0ad3861417f347219f4d?narHash=sha256-9lfmSZLz6eq9Ygr6cCmvQiiBEaPb54pUBcjvbEMPORc%3D' (2025-03-03)
2025-03-07 22:14:11 -05:00
9a64d9cbfb small improvements 2025-03-07 20:57:43 -05:00
1d0d46d22d adding transmission 2025-03-07 20:57:43 -05:00
1d1bfae8ee made syncthing overrideFolders false on jeeves 2025-02-26 21:04:27 -05:00
github-actions[bot]
8d6328ce57 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/f61927ae7c2b28ee9d426114a06f185f4dea4301?dir=pkgs/firefox-addons&narHash=sha256-E%2BxGh25fyBLNo2FYxP4uHkTh4yh1C0AIyYpcVdW3CL0%3D' (2025-02-12)
  → 'gitlab:rycee/nur-expressions/9a8a0914000e4453c99a4c12e9862a0a40075851?dir=pkgs/firefox-addons&narHash=sha256-Gpvn9Z%2BZgKPyb6qaAbahLbo6ZVj7VuLzSCmHZRvsACA%3D' (2025-02-22)
• Updated input 'home-manager':
    'github:nix-community/home-manager/15b59d4191b993ebdfcb1f61b834fced217882ba?narHash=sha256-4gvobxITgcrNGfwsVG5a46QzQCX89btIYw23p0ilbcc%3D' (2025-02-12)
  → 'github:nix-community/home-manager/6be185eb76295e7562f5bf2da42afe374b8beb15?narHash=sha256-GKe3vrIWcei4gSTckEzHr5Zf/g9NSofmsAnbkNYU%2BlM%3D' (2025-02-26)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/2eccff41bab80839b1d25b303b53d339fbb07087?narHash=sha256-5yRlg48XmpcX5b5HesdGMOte%2BYuCy9rzQkJz%2Bimcu6I%3D' (2025-02-06)
  → 'github:nixos/nixos-hardware/d58f642ddb23320965b27beb0beba7236e9117b5?narHash=sha256-pGk/aA0EBvI6o4DeuZsr05Ig/r4uMlSaf5EWUZEWM10%3D' (2025-02-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/64e75cd44acf21c7933d61d7721e812eac1b5a0a?narHash=sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM%3D' (2025-02-10)
  → 'github:nixos/nixpkgs/0196c0175e9191c474c26ab5548db27ef5d34b05?narHash=sha256-WGaHVAjcrv%2BCun7zPlI41SerRtfknGQap281%2BAakSAw%3D' (2025-02-24)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/154a2c1abcea99a98f8b9344dfaba019a28162bd?narHash=sha256-5U1YLh8bENPGtC6j6493qs3lK0PrzZw4omMvJUFOhEI%3D' (2025-02-12)
  → 'github:nixos/nixpkgs/45ea1fa0de33802bcc9ca41075eac2c05a15eaab?narHash=sha256-HWWeQPGrD%2BiR2f3/OIFHnWZ62d7CafL5BHgL5EITxGE%3D' (2025-02-26)
• Updated input 'system_tools':
    'github:RichieCahill/system_tools/7cff86220ce86a1083466e2fc8b947551ab577a3?narHash=sha256-RE%2B6AgQ/Q/yFBYDPlN%2BjSrhEKtZLBF8xlIsz2T78K68%3D' (2025-02-01)
  → 'github:RichieCahill/system_tools/b36dd59fedeba140175590bfcab2ba22049dfc93?narHash=sha256-uzT5hQstNHJvdPPqdSiznxPXL3qCaKQ%2BDmMnx6IpIYk%3D' (2025-02-16)
2025-02-26 20:57:02 -05:00
02db3d2eb5 added ollama user 2025-02-23 10:27:13 -05:00
bdf9d267e8 moved models 2025-02-23 10:27:13 -05:00
4db29ae280 added models dataset 2025-02-23 10:27:13 -05:00
1b97fa7dda gaming simplify vscode 2025-02-21 14:12:04 -05:00
9248337e55 adding vscode to gaming user 2025-02-21 13:37:30 -05:00
f77c341e2b adding fallbackToPassword to bob 2025-02-17 13:02:24 -05:00
f7f0d02ef9 moved nvidia.nix to common/optional 2025-02-12 21:20:39 -05:00
e723ab9e86 added word tod spell check 2025-02-12 21:20:39 -05:00
5182bf18bc removed un unused ssh config entry 2025-02-12 21:20:39 -05:00
11883f981e improving spell check 2025-02-12 21:20:39 -05:00
6d41287eec removed some open firewall ports 2025-02-12 19:56:18 -05:00
433c52309b set up duel stack for haproxy 2025-02-12 19:56:18 -05:00
e1bbadfcba removed a trailing space 2025-02-12 17:32:15 -05:00
868f782523 removing cosmic 2025-02-12 17:32:15 -05:00
434c80adac add daily build to refresh cache 2025-02-11 21:46:50 -05:00
6c15bbe0a3 adding nixfmt to spell check 2025-02-11 20:42:16 -05:00
cbdefc0c52 remove reference for ioit vlan from home-assistant 2025-02-11 20:40:57 -05:00
3fc9d9d614 fixed names in treefmt.yml 2025-02-08 18:13:31 -05:00
aa4a11c0c3 set up treefmt action 2025-02-08 18:13:31 -05:00
300aa1f032 ran nix fmt . 2025-02-08 18:13:31 -05:00
c12bd0c7ca set up treefmt 2025-02-08 18:13:31 -05:00
f43a34f37c setting up postgres 2025-02-08 17:38:52 -05:00
33c2718d40 removed duplicate zerotierone entry 2025-02-06 19:02:02 -05:00
78500e6122 removed vlans 2025-02-06 19:02:02 -05:00
9459d4797e testing cosmic 2025-02-06 19:02:02 -05:00
bfbcb70327 added git lfs support 2025-02-04 21:37:27 -05:00
b95e553093 added chromium to users 2025-02-04 21:37:27 -05:00
8668603404 adding llms to bob 2025-02-04 21:37:27 -05:00
60c3e3db20 moved cloud_flare_tunnel to a service 2025-02-04 21:28:10 -05:00
d3aa49f9e4 moved haproxy to a service 2025-02-04 21:28:10 -05:00
f691015920 deleted photoprism.nix 2025-02-04 21:28:10 -05:00
81ab03f3f1 moved audiobookshelf to a service 2025-02-04 21:28:10 -05:00
ba1170720c moved filebrowser to a service 2025-02-04 21:28:10 -05:00
4316c8a52e moved validate_system.toml to services dir 2025-02-04 21:28:10 -05:00
a036467131 fixed mistake 2025-02-04 21:28:10 -05:00
62c26b351c added duckdns.nix 2025-02-04 21:28:10 -05:00
cd5ad0dcae added runners dir 2025-02-04 21:28:10 -05:00
fa38cc6321 added services import to jeeves default 2025-02-04 21:28:10 -05:00
e8d971340b made nix_serve.nix 2025-02-04 21:28:10 -05:00
30f2af87be moved systemd.nix 2025-02-04 21:28:10 -05:00
8522b77285 moved home_assistant.nix 2025-02-04 21:28:10 -05:00
f1a48819a5 moved jellyfin.nix 2025-02-04 21:28:10 -05:00
eff58f08ad added services dir 2025-02-04 21:28:10 -05:00
a24c4fd756 moved audiobookshelf volumes 2025-02-01 15:31:04 -05:00
f10ab4a9af updated startup_validation to have a config file 2025-02-01 15:31:04 -05:00
7cc831a2d0 added version to audiobookshelf filebrowser haproxy cloudflared apache2 and uptime-kuma 2025-02-01 15:31:04 -05:00
91690734ba removed grafana and postgres 2025-02-01 15:31:04 -05:00
github-actions[bot]
b97e81e96e flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/9a96d7b0485be4654b6f2237efeccb1144d1ba54?dir=pkgs/firefox-addons&narHash=sha256-YDDKpj1j9MqGZgrugfu8mQWjpiy4r7fZ1FMJL58NasM%3D' (2025-01-25)
  → 'gitlab:rycee/nur-expressions/dc86c8feffa328d9050e039a1286e175af6d76d8?dir=pkgs/firefox-addons&narHash=sha256-ppR81tMrcQk/wHm8MmKtp3mrtYmMTgF2lxLLXYwRsOM%3D' (2025-02-01)
• Updated input 'home-manager':
    'github:nix-community/home-manager/daf04c5950b676f47a794300657f1d3d14c1a120?narHash=sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio%3D' (2025-01-24)
  → 'github:nix-community/home-manager/8544cd092047a7e92d0dce011108a563de7fc0f2?narHash=sha256-ZlLTnqIQQ8OE6AtT%2BfluB642j2R9tnvxHHtpnmLjSxQ%3D' (2025-02-01)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/e277b9162637a85f45c4564d687729797f560637?narHash=sha256-5/8KyhEtPLXqmE5CygvMSZZUw8wHcq/bFh1ckTtDDcA%3D' (2025-01-25)
  → 'github:lilyinstarlight/nixos-cosmic/51b9cce097da369550f45ac07879274dc8be81e4?narHash=sha256-y9st4Y0p5ry%2B6QdlIGeqxAA6rbEIOO1uXdAc5jxV2Bc%3D' (2025-01-31)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/035f8c0853c2977b24ffc4d0a42c74f00b182cd8?narHash=sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I%3D' (2025-01-23)
  → 'github:NixOS/nixpkgs/59e618d90c065f55ae48446f307e8c09565d5ab0?narHash=sha256-B/7Y1v4y%2BmsFFBW1JAdFjNvVthvNdJKiN6EGRPnqfno%3D' (2025-01-29)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/dfad538f751a5aa5d4436d9781ab27a6128ec9d4?narHash=sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4%3D' (2025-01-24)
  → 'github:nixos/nixos-hardware/34b64e4e1ddb14e3ffc7db8d4a781396dbbab773?narHash=sha256-6HI58PKjddsC0RA0gBQlt6ox47oH//jLUHwx05RO8g0%3D' (2025-02-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/825479c345a7f806485b7f00dbe3abb50641b083?narHash=sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU%3D' (2025-01-24)
  → 'github:nixos/nixpkgs/9d3ae807ebd2981d593cddd0080856873139aa40?narHash=sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9%2BWC4%3D' (2025-01-29)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/8504e3c64d7ad6943f9e684cc3fe83ad443a009b?narHash=sha256-RFDB7DV2TTh/2dX2X8IRUOeKTxUiFmnHg82IV2OEZf0%3D' (2025-01-26)
  → 'github:nixos/nixpkgs/102a39bfee444533e6b4e8611d7e92aa39b7bec1?narHash=sha256-Q4vhtbLYWBUnjWD4iQb003Lt%2BN5PuURDad1BngGKdUs%3D' (2025-02-01)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/015d461c16678fc02a2f405eb453abb509d4e1d4?narHash=sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw%3D' (2025-01-20)
  → 'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7?narHash=sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320%3D' (2025-01-31)
• Updated input 'system_tools':
    'github:RichieCahill/system_tools/a643f2e67492901e3975aeab603f4a71f54e645d?narHash=sha256-agiofvmeAjAzQxs3HXe0ruKwgws0PECBjc8HlTkgDlc%3D' (2025-01-20)
  → 'github:RichieCahill/system_tools/a697bd3df11ba40afd40d6324a39859c91b7bb78?narHash=sha256-wC8hJvhdFdrEtzc7HMWyXNtQbS3CVyOjUUpEHtxOlJg%3D' (2025-01-31)
2025-02-01 10:37:51 -05:00
0d680dc68d adding internal-ioit-vlan 2025-01-31 17:31:17 -05:00
81867eb312 testing GH_TOKEN_FOR_UPDATES 2025-01-26 13:46:23 -05:00
00852c019d moving hardware.bluetooth to optional/desktop.nix 2025-01-26 12:58:32 -05:00
github-actions[bot]
b53f4ec8d8 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/f3bffded7ab861654ab3be7c1e974eafe72c52b0?dir=pkgs/firefox-addons&narHash=sha256-lroOTrqUw443CfegVkfNAfE57uIsF4fjUvlUjVnB3kY%3D' (2025-01-23)
  → 'gitlab:rycee/nur-expressions/9a96d7b0485be4654b6f2237efeccb1144d1ba54?dir=pkgs/firefox-addons&narHash=sha256-YDDKpj1j9MqGZgrugfu8mQWjpiy4r7fZ1FMJL58NasM%3D' (2025-01-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/7b9ece1bf3c8780cde9b975b28c2d9ccd7e9cdb9?narHash=sha256-v9WQ3c4ctwPMfdBZMZxpdM9xXev4uChce4BxOpvsu0E%3D' (2025-01-23)
  → 'github:nix-community/home-manager/daf04c5950b676f47a794300657f1d3d14c1a120?narHash=sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio%3D' (2025-01-24)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/4152cf7f0caab4821f009ee132f8ff016f537630?narHash=sha256-6rDozHAgJmdsUrIggrIxcjSq8lQeFuh9WjyqhhLEqDE%3D' (2025-01-23)
  → 'github:lilyinstarlight/nixos-cosmic/e277b9162637a85f45c4564d687729797f560637?narHash=sha256-5/8KyhEtPLXqmE5CygvMSZZUw8wHcq/bFh1ckTtDDcA%3D' (2025-01-25)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/47addd76727f42d351590c905d9d1905ca895b82?narHash=sha256-6qY0pk2QmUtBT9Mywdvif0i/CLVgpCjMUn6g9vB%2Bf3M%3D' (2025-01-22)
  → 'github:NixOS/nixpkgs/035f8c0853c2977b24ffc4d0a42c74f00b182cd8?narHash=sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I%3D' (2025-01-23)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/9368027715d8dde4b84c79c374948b5306fdd2db?narHash=sha256-qM/y6Dtpu9Wmf5HqeZajQdn%2BcS0aljdYQQQnrvx%2BLJE%3D' (2025-01-23)
  → 'github:nixos/nixos-hardware/dfad538f751a5aa5d4436d9781ab27a6128ec9d4?narHash=sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4%3D' (2025-01-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab?narHash=sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk%3D' (2025-01-21)
  → 'github:nixos/nixpkgs/825479c345a7f806485b7f00dbe3abb50641b083?narHash=sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU%3D' (2025-01-24)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/2d99c7f729083f488efb1228e2129443f6fa6ebc?narHash=sha256-P9gfexAOEd51nAgz3TtgGy1YEFgoQPk18QZQklrVlT0%3D' (2025-01-23)
  → 'github:nixos/nixpkgs/8504e3c64d7ad6943f9e684cc3fe83ad443a009b?narHash=sha256-RFDB7DV2TTh/2dX2X8IRUOeKTxUiFmnHg82IV2OEZf0%3D' (2025-01-26)
2025-01-26 12:58:32 -05:00
64a4223560 adding nix-builders 2025-01-23 23:47:00 -05:00
88d3d6311f adding rokuecp 2025-01-23 23:46:51 -05:00
github-actions[bot]
bccc569650 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/a66d5a22e3659544f41970472bd944a7824eb572?dir=pkgs/firefox-addons&narHash=sha256-wXKdOKufzA4cUoHrKWOaPSyCjGEuPHWB7EOjPZKw5uQ%3D' (2025-01-19)
  → 'gitlab:rycee/nur-expressions/f3bffded7ab861654ab3be7c1e974eafe72c52b0?dir=pkgs/firefox-addons&narHash=sha256-lroOTrqUw443CfegVkfNAfE57uIsF4fjUvlUjVnB3kY%3D' (2025-01-23)
• Updated input 'home-manager':
    'github:nix-community/home-manager/f8ef4541bb8a54a8b52f19b52912119e689529b3?narHash=sha256-0NBrY2A7buujKmeCbieopOMSbLxTu8TFcTLqAbTnQDw%3D' (2025-01-19)
  → 'github:nix-community/home-manager/7b9ece1bf3c8780cde9b975b28c2d9ccd7e9cdb9?narHash=sha256-v9WQ3c4ctwPMfdBZMZxpdM9xXev4uChce4BxOpvsu0E%3D' (2025-01-23)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/6ec08f11bbf0e936ad82f1bb532f3757f8b5e3c2?narHash=sha256-0QcnnQZ/il9UPVmhJtDqjPDCCcW5vTCz7QaLu%2BrlrRQ%3D' (2025-01-19)
  → 'github:lilyinstarlight/nixos-cosmic/4152cf7f0caab4821f009ee132f8ff016f537630?narHash=sha256-6rDozHAgJmdsUrIggrIxcjSq8lQeFuh9WjyqhhLEqDE%3D' (2025-01-23)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/6a3ae7a5a12fb8cac2d59d7df7cbd95f9b2f0566?narHash=sha256-s40Kk/OulP3J/1JvC3VT16U4r/Xw6Qdi7SRw3LYkPWs%3D' (2025-01-18)
  → 'github:NixOS/nixpkgs/47addd76727f42d351590c905d9d1905ca895b82?narHash=sha256-6qY0pk2QmUtBT9Mywdvif0i/CLVgpCjMUn6g9vB%2Bf3M%3D' (2025-01-22)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/cb3173dc5c746fa95bca1f035a7e4d2b588894ac?narHash=sha256-%2BX9KAryvDsIE7lQ0FdfiD1u33nOVgsgufedqspf77N4%3D' (2025-01-19)
  → 'github:nixos/nixos-hardware/9368027715d8dde4b84c79c374948b5306fdd2db?narHash=sha256-qM/y6Dtpu9Wmf5HqeZajQdn%2BcS0aljdYQQQnrvx%2BLJE%3D' (2025-01-23)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5df43628fdf08d642be8ba5b3625a6c70731c19c?narHash=sha256-Tbk1MZbtV2s5aG%2BiM99U8FqwxU/YNArMcWAv6clcsBc%3D' (2025-01-16)
  → 'github:nixos/nixpkgs/9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab?narHash=sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk%3D' (2025-01-21)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/bba244a0bb9073202711ac5c88d02fd95cd80b0a?narHash=sha256-j/4dg6A76JEz7yoS4%2B69NeK3spEGNyJ32w1LfBOpYQE%3D' (2025-01-20)
  → 'github:nixos/nixpkgs/2d99c7f729083f488efb1228e2129443f6fa6ebc?narHash=sha256-P9gfexAOEd51nAgz3TtgGy1YEFgoQPk18QZQklrVlT0%3D' (2025-01-23)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6?narHash=sha256-GXUE9%2BFgxoZU8v0p6ilBJ8NH7k8nKmZjp/7dmMrCv3o%3D' (2025-01-17)
  → 'github:Mic92/sops-nix/015d461c16678fc02a2f405eb453abb509d4e1d4?narHash=sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw%3D' (2025-01-20)
2025-01-23 23:45:02 -05:00
633a48af7b added shell = pkgs.bash 2025-01-23 22:47:43 -05:00
799794ebe5 added nix setting to nix_builder containers 2025-01-23 22:47:43 -05:00
7b07266c44 removed ping test 2025-01-23 22:47:43 -05:00
60ce45a08d increase ssh login level 2025-01-23 22:47:43 -05:00
12b6c1e279 removed ping test 2025-01-23 22:47:43 -05:00
12b4fe92da adding ping to extraPackages 2025-01-23 22:47:43 -05:00
d076183777 added openssh to extraPackages 2025-01-23 22:47:43 -05:00
7a454ca740 testing connection 2025-01-23 22:47:43 -05:00
8dd892a88f added openssh to extraPackages 2025-01-23 22:47:43 -05:00
7f3bb43d39 testing ssh config 2025-01-23 22:47:43 -05:00
793d06683e added -vv to NIX_SSHOPTS 2025-01-23 22:47:43 -05:00
bb1d92252f added -o UserKnownHostsFile=/dev/null 2025-01-23 22:47:43 -05:00
f7a95f32cd added -o StrictHostKeyChecking=no 2025-01-23 22:47:43 -05:00
ea24fb9865 fixed ip address 2025-01-23 22:47:43 -05:00
c39f8c4a7e added copy step to build_systems action 2025-01-23 22:47:43 -05:00
d7fd0796ea created nix_builder module 2025-01-23 22:47:43 -05:00
01d2bd04b2 created base containers for nix builder 2025-01-23 22:47:43 -05:00
040a44b608 updated homeassistant unit_system to us_customary 2025-01-19 22:02:06 -05:00
github-actions[bot]
a3a132b41c flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/9b53b108b417e6d3fef7743c4034df582fbd9a7e?dir=pkgs/firefox-addons&narHash=sha256-6VB1uVPqyaXTTori47ESnvAlQ1nHR4XwRybBHxWpL3E%3D' (2025-01-16)
  → 'gitlab:rycee/nur-expressions/a66d5a22e3659544f41970472bd944a7824eb572?dir=pkgs/firefox-addons&narHash=sha256-wXKdOKufzA4cUoHrKWOaPSyCjGEuPHWB7EOjPZKw5uQ%3D' (2025-01-19)
• Updated input 'home-manager':
    'github:nix-community/home-manager/12851ae7467bad8ef422b20806ab4d6d81e12d29?narHash=sha256-u1gk5I1an975FOAMMdS6oBKnSIsZza5ZKhaeBZAskVo%3D' (2025-01-17)
  → 'github:nix-community/home-manager/f8ef4541bb8a54a8b52f19b52912119e689529b3?narHash=sha256-0NBrY2A7buujKmeCbieopOMSbLxTu8TFcTLqAbTnQDw%3D' (2025-01-19)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/c92ead1ab77f8be697a44ca855d06c5957ee2a62?narHash=sha256-P9n4HP0XPlXTViw7g3lBRX3Eix0sgcnhanV0ddB08SA%3D' (2025-01-16)
  → 'github:lilyinstarlight/nixos-cosmic/6ec08f11bbf0e936ad82f1bb532f3757f8b5e3c2?narHash=sha256-0QcnnQZ/il9UPVmhJtDqjPDCCcW5vTCz7QaLu%2BrlrRQ%3D' (2025-01-19)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc?narHash=sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8%3D' (2025-01-14)
  → 'github:NixOS/nixpkgs/6a3ae7a5a12fb8cac2d59d7df7cbd95f9b2f0566?narHash=sha256-s40Kk/OulP3J/1JvC3VT16U4r/Xw6Qdi7SRw3LYkPWs%3D' (2025-01-18)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/b678606690027913f3434dea3864e712b862dde5?narHash=sha256-oMr3PVIQ8XPDI8/x6BHxsWEPBRU98Pam6KGVwUh8MPk%3D' (2025-01-15)
  → 'github:nixos/nixos-hardware/cb3173dc5c746fa95bca1f035a7e4d2b588894ac?narHash=sha256-%2BX9KAryvDsIE7lQ0FdfiD1u33nOVgsgufedqspf77N4%3D' (2025-01-19)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/eb62e6aa39ea67e0b8018ba8ea077efe65807dc8?narHash=sha256-uQ%2BNQ0/xYU0N1CnXsa2zghgNaOPxWpMJXSUJJ9W7140%3D' (2025-01-14)
  → 'github:nixos/nixpkgs/5df43628fdf08d642be8ba5b3625a6c70731c19c?narHash=sha256-Tbk1MZbtV2s5aG%2BiM99U8FqwxU/YNArMcWAv6clcsBc%3D' (2025-01-16)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/0993fc268872148cebcd1fac8660a8b8ced49542?narHash=sha256-hCddtSuk6m6XROmdOC0te0j2sLeUr28QIzNRk0qF1as%3D' (2025-01-17)
  → 'github:nixos/nixpkgs/bba244a0bb9073202711ac5c88d02fd95cd80b0a?narHash=sha256-j/4dg6A76JEz7yoS4%2B69NeK3spEGNyJ32w1LfBOpYQE%3D' (2025-01-20)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/553c7cb22fed19fd60eb310423fdc93045c51ba8?narHash=sha256-wlgdf/n7bJMLBheqt1jmPoxJFrUP6FByKQFXuM9YvIk%3D' (2025-01-13)
  → 'github:Mic92/sops-nix/4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6?narHash=sha256-GXUE9%2BFgxoZU8v0p6ilBJ8NH7k8nKmZjp/7dmMrCv3o%3D' (2025-01-17)
• Updated input 'system_tools':
    'github:RichieCahill/system_tools/bc357d8fabd83c1423611829091e5b1d86dd913c?narHash=sha256-B13faNyBbA3MeI7Jp6pFVbp58rI2Rx5Uvd83csW2p48%3D' (2024-12-01)
  → 'github:RichieCahill/system_tools/a643f2e67492901e3975aeab603f4a71f54e645d?narHash=sha256-agiofvmeAjAzQxs3HXe0ruKwgws0PECBjc8HlTkgDlc%3D' (2025-01-20)
• Updated input 'system_tools/poetry2nix':
    'github:nix-community/poetry2nix/f554d27c1544d9c56e5f1f8e2b8aff399803674e?narHash=sha256-F7N1mxH1VrkVNHR3JGNMRvp9%2B98KYO4b832KS8Gl2xI%3D' (2024-11-10)
  → 'github:nix-community/poetry2nix/75d0515332b7ca269f6d7abfd2c44c47a7cbca7b?narHash=sha256-eiCqmKl0BIRiYk5/ZhZozwn4/7Km9CWTbc15Cv%2BVX5k%3D' (2025-01-14)
2025-01-19 22:02:06 -05:00
c0a97c6ed8 removed unnecessary nesting 2025-01-19 16:40:53 -05:00
83dad24351 moved davids-server.id to jeeves/syncthing.nix 2025-01-19 16:40:53 -05:00
1a1cc41265 removed bob_temp 2025-01-19 16:40:53 -05:00
0457265bd7 added firewall rule for syncthing webui 2025-01-19 16:40:53 -05:00
3c2476336b added encrypted folders to davids-server 2025-01-19 16:40:53 -05:00
27ec9d9204 added davids-server to devices 2025-01-19 16:40:53 -05:00
0f094bfacb added update.nix to bob 2025-01-19 14:41:24 -05:00
14a312dd0f formatted nixpkgs settings 2025-01-19 14:41:24 -05:00
c87e653ad7 moved zfs services to global/default.nix 2025-01-19 14:41:24 -05:00
e88fc08d91 moved security.rtkit.enable = true; to optional/desktop.nix
https://nixos.wiki/wiki/PipeWire
2025-01-19 14:41:24 -05:00
2e26035693 removing plex 2025-01-19 13:29:40 -05:00
f877b15d35 added jellyfin-media-player to bob 2025-01-18 17:07:00 -05:00
7736c36eee added new line 2025-01-18 17:07:00 -05:00
78159e1d90 removed useragent.override 2025-01-18 17:07:00 -05:00
a39d3f0c51 setup jellyfin to home_assistant and haproxy 2025-01-18 17:07:00 -05:00
7995d383ca added jellyfin.nix 2025-01-18 17:07:00 -05:00
a7e8494d8a zfs 2.3 update 2025-01-17 18:56:22 -05:00
github-actions[bot]
17599aea9d flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/7f8746a7ef2d15b8fb4acc63cb0d7e3a407739bf?dir=pkgs/firefox-addons&narHash=sha256-RBTk5KavYsPZ56m9C2evS4pDkEu3%2BNdxY6mFNbo8DH8%3D' (2025-01-11)
  → 'gitlab:rycee/nur-expressions/9b53b108b417e6d3fef7743c4034df582fbd9a7e?dir=pkgs/firefox-addons&narHash=sha256-6VB1uVPqyaXTTori47ESnvAlQ1nHR4XwRybBHxWpL3E%3D' (2025-01-16)
• Updated input 'home-manager':
    'github:nix-community/home-manager/2532b500c3ed2b8940e831039dcec5a5ea093afc?narHash=sha256-ZOaGwa%2BWnB7Zn3YXimqjmIugAnHePdXCmNu%2BAHkq808%3D' (2025-01-10)
  → 'github:nix-community/home-manager/12851ae7467bad8ef422b20806ab4d6d81e12d29?narHash=sha256-u1gk5I1an975FOAMMdS6oBKnSIsZza5ZKhaeBZAskVo%3D' (2025-01-17)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/a934c861065b6b1aca9a859c45631336e0e8560c?narHash=sha256-h6hi94y9bTl9DQV4keGpYAfJhnH50rxxEdQlGL7QENw%3D' (2025-01-11)
  → 'github:lilyinstarlight/nixos-cosmic/c92ead1ab77f8be697a44ca855d06c5957ee2a62?narHash=sha256-P9n4HP0XPlXTViw7g3lBRX3Eix0sgcnhanV0ddB08SA%3D' (2025-01-16)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/3f0a8ac25fb674611b98089ca3a5dd6480175751?narHash=sha256-JO%2BlFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I%3D' (2025-01-06)
  → 'github:NixOS/nixpkgs/9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc?narHash=sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8%3D' (2025-01-14)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/8870dcaff63dfc6647fb10648b827e9d40b0a337?narHash=sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb%2BmxySIP93o%3D' (2025-01-09)
  → 'github:nixos/nixos-hardware/b678606690027913f3434dea3864e712b862dde5?narHash=sha256-oMr3PVIQ8XPDI8/x6BHxsWEPBRU98Pam6KGVwUh8MPk%3D' (2025-01-15)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/bffc22eb12172e6db3c5dde9e3e5628f8e3e7912?narHash=sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc%2Bc2c%3D' (2025-01-08)
  → 'github:nixos/nixpkgs/eb62e6aa39ea67e0b8018ba8ea077efe65807dc8?narHash=sha256-uQ%2BNQ0/xYU0N1CnXsa2zghgNaOPxWpMJXSUJJ9W7140%3D' (2025-01-14)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/b1877784f6a133d4b2b1a36e77ecf1d50684ebb4?narHash=sha256-/IbHbC5dKe/hT2Buv4eKcWijoGRB1mUwU3hErUbD9gw%3D' (2025-01-11)
  → 'github:nixos/nixpkgs/0993fc268872148cebcd1fac8660a8b8ced49542?narHash=sha256-hCddtSuk6m6XROmdOC0te0j2sLeUr28QIzNRk0qF1as%3D' (2025-01-17)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/f214c1b76c347a4e9c8fb68c73d4293a6820d125?narHash=sha256-4P99yL8vGehwzytkpP87eklBePt6aqeEC5JFsIzhfUs%3D' (2025-01-10)
  → 'github:Mic92/sops-nix/553c7cb22fed19fd60eb310423fdc93045c51ba8?narHash=sha256-wlgdf/n7bJMLBheqt1jmPoxJFrUP6FByKQFXuM9YvIk%3D' (2025-01-13)
2025-01-16 22:56:55 -05:00
ae5981dcfa reformatted richie default.nix 2025-01-16 22:40:43 -05:00
1770cb87d3 removed bob authorizedKey 2025-01-16 22:40:43 -05:00
61b548e11c changed the defaultSession to plasma 2025-01-16 22:40:43 -05:00
76da8cd379 add reservations to to zfs datasets
This reduce the risk of out of space error
2025-01-16 22:40:43 -05:00
0e4cb002c8 set up esphome 2025-01-14 23:49:54 -05:00
ce27dcfa39 added home-manager backupFileExtension 2025-01-11 14:10:52 -05:00
github-actions[bot]
6dae76c51e flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/0ad9cf75bae6a9290e9c83cef19f60595f189979?dir=pkgs/firefox-addons&narHash=sha256-WXbwHw%2BJeIOo3KvGDjrfsuwj8JWBUkFFxmlm07w9i7Q%3D' (2025-01-07)
  → 'gitlab:rycee/nur-expressions/7f8746a7ef2d15b8fb4acc63cb0d7e3a407739bf?dir=pkgs/firefox-addons&narHash=sha256-RBTk5KavYsPZ56m9C2evS4pDkEu3%2BNdxY6mFNbo8DH8%3D' (2025-01-11)
• Updated input 'home-manager':
    'github:nix-community/home-manager/5c4302313d9207f7ec0886d68f8ff4a3c71209a1?narHash=sha256-kPDXF6cIPsVqSK08XF5EC6KM7BdMnM9vtJDzsnf%2BlLU%3D' (2025-01-07)
  → 'github:nix-community/home-manager/2532b500c3ed2b8940e831039dcec5a5ea093afc?narHash=sha256-ZOaGwa%2BWnB7Zn3YXimqjmIugAnHePdXCmNu%2BAHkq808%3D' (2025-01-10)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/0830abeebf3b2d1bae44652ffb2c89cf0d56ddaa?narHash=sha256-Pi70vbASZ1O9cR8RO5d2hBiNjIJBKKLoABl4sxWyOgg%3D' (2025-01-07)
  → 'github:lilyinstarlight/nixos-cosmic/a934c861065b6b1aca9a859c45631336e0e8560c?narHash=sha256-h6hi94y9bTl9DQV4keGpYAfJhnH50rxxEdQlGL7QENw%3D' (2025-01-11)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/cbd8ec4de4469333c82ff40d057350c30e9f7d36?narHash=sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60%3D' (2025-01-05)
  → 'github:NixOS/nixpkgs/3f0a8ac25fb674611b98089ca3a5dd6480175751?narHash=sha256-JO%2BlFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I%3D' (2025-01-06)
• Removed input 'nixos-cosmic/rust-overlay'
• Removed input 'nixos-cosmic/rust-overlay/nixpkgs'
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/4f339f6be2b61662f957c2ee9eda0fa597d8a6d6?narHash=sha256-BG1FfTexFwNty5VhYjaQLMR6CMPfI3QRcaZrFQYu2EM%3D' (2025-01-07)
  → 'github:nixos/nixos-hardware/8870dcaff63dfc6647fb10648b827e9d40b0a337?narHash=sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb%2BmxySIP93o%3D' (2025-01-09)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/8f3e1f807051e32d8c95cd12b9b421623850a34d?narHash=sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs%2BrI%3D' (2025-01-04)
  → 'github:nixos/nixpkgs/bffc22eb12172e6db3c5dde9e3e5628f8e3e7912?narHash=sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc%2Bc2c%3D' (2025-01-08)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/ed6183b173fe27e1d7dceef1ddca2aa64d07aad4?narHash=sha256-6Epm0TQkXt0DcS3akYSeT0PzYMpgkZf0V14%2B5UGe6oE%3D' (2025-01-08)
  → 'github:nixos/nixpkgs/b1877784f6a133d4b2b1a36e77ecf1d50684ebb4?narHash=sha256-/IbHbC5dKe/hT2Buv4eKcWijoGRB1mUwU3hErUbD9gw%3D' (2025-01-11)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773?narHash=sha256-eSjkBwBdQk%2BTZWFlLbclF2rAh4JxbGg8az4w/Lfe7f4%3D' (2025-01-06)
  → 'github:Mic92/sops-nix/f214c1b76c347a4e9c8fb68c73d4293a6820d125?narHash=sha256-4P99yL8vGehwzytkpP87eklBePt6aqeEC5JFsIzhfUs%3D' (2025-01-10)
2025-01-11 13:33:16 -05:00
92a87c01d3 adding to spell check 2025-01-11 13:31:56 -05:00
bca98cfadb adding unifi support 2025-01-11 13:31:56 -05:00
91ebec054c fixed evaluation warning 2025-01-10 23:08:32 -05:00
6ae6bc0dd6 deleted build.sh 2025-01-10 23:03:25 -05:00
0a1e517468 deleting muninn 2025-01-10 23:03:25 -05:00
f852d9b9fb added games.nix to bob 2025-01-10 23:03:25 -05:00
7ad195ff24 added syncthing dir to gitignore 2025-01-10 23:03:25 -05:00
4cadc374b1 setup displayManager autoLogin 2025-01-10 23:03:25 -05:00
56456ab375 moved dotfiles out of projects 2025-01-10 23:03:25 -05:00
17b19967e8 updated syncthing dirs 2025-01-10 23:03:25 -05:00
9ff57ba6f3 setup auto decrypt 2025-01-10 23:03:25 -05:00
573031e4c9 added gaming user to bob 2025-01-10 23:03:25 -05:00
6e2703f852 added extraConfig to git settings 2025-01-08 22:36:37 -05:00
github-actions[bot]
a6b6d66b9f flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/5b2c380332cf5a3022fde931d0346e2b868b544e?dir=pkgs/firefox-addons&narHash=sha256-22NF70bxkMY7/IY2NG0pC7WzgJ0bI67FGSUP37d2mQ8%3D' (2024-12-25)
  → 'gitlab:rycee/nur-expressions/0ad9cf75bae6a9290e9c83cef19f60595f189979?dir=pkgs/firefox-addons&narHash=sha256-WXbwHw%2BJeIOo3KvGDjrfsuwj8JWBUkFFxmlm07w9i7Q%3D' (2025-01-07)
• Updated input 'home-manager':
    'github:nix-community/home-manager/35b98d20ca8f4ca1f6a2c30b8a2c8bb305a36d84?narHash=sha256-Gm%2B0DcbUS338vvkwyYWms5jsWlx8z8MeQBzcnIDuIkw%3D' (2024-12-24)
  → 'github:nix-community/home-manager/5c4302313d9207f7ec0886d68f8ff4a3c71209a1?narHash=sha256-kPDXF6cIPsVqSK08XF5EC6KM7BdMnM9vtJDzsnf%2BlLU%3D' (2025-01-07)
• Updated input 'nixos-cosmic':
    'github:lilyinstarlight/nixos-cosmic/847b93e3b63bcea9a477dd86bb4b56ce7e051f0e?narHash=sha256-Tm%2BBsKXJS/EdJd9DvLxDbw%2BchPI1o7A9RHKIFxho36I%3D' (2024-12-25)
  → 'github:lilyinstarlight/nixos-cosmic/0830abeebf3b2d1bae44652ffb2c89cf0d56ddaa?narHash=sha256-Pi70vbASZ1O9cR8RO5d2hBiNjIJBKKLoABl4sxWyOgg%3D' (2025-01-07)
• Updated input 'nixos-cosmic/nixpkgs-stable':
    'github:NixOS/nixpkgs/1807c2b91223227ad5599d7067a61665c52d1295?narHash=sha256-Pzyb%2BYNG5u3zP79zoi8HXYMs15Q5dfjDgwCdUI5B0nY%3D' (2024-12-22)
  → 'github:NixOS/nixpkgs/cbd8ec4de4469333c82ff40d057350c30e9f7d36?narHash=sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60%3D' (2025-01-05)
• Updated input 'nixos-cosmic/rust-overlay':
    'github:oxalica/rust-overlay/fb5fdba697ee9a2391ca9ceea3b853b4e3ce37a5?narHash=sha256-NdhUgB9BkLGW9I%2BQ1GyUUCc3CbDgsg7HLWjG7WZBR5Q%3D' (2024-12-24)
  → 'github:oxalica/rust-overlay/2f5d4d9cd31cc02c36e51cb2e21c4b25c4f78c52?narHash=sha256-z%2BWGez9oTR2OsiUWE5ZhIpETqM1ogrv6Xcd24WFi6KQ%3D' (2025-01-06)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/def1d472c832d77885f174089b0d34854b007198?narHash=sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl%2Bfk%3D' (2024-12-23)
  → 'github:nixos/nixos-hardware/4f339f6be2b61662f957c2ee9eda0fa597d8a6d6?narHash=sha256-BG1FfTexFwNty5VhYjaQLMR6CMPfI3QRcaZrFQYu2EM%3D' (2025-01-07)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507?narHash=sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ%3D' (2024-12-19)
  → 'github:nixos/nixpkgs/8f3e1f807051e32d8c95cd12b9b421623850a34d?narHash=sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs%2BrI%3D' (2025-01-04)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/138326d6e9841ab9e6161730d40e09cedd670c40?narHash=sha256-O1OXa12dHaObowGsfiM8pgphWfSXJj5v8sTxFoPXR0A%3D' (2024-12-25)
  → 'github:nixos/nixpkgs/ed6183b173fe27e1d7dceef1ddca2aa64d07aad4?narHash=sha256-6Epm0TQkXt0DcS3akYSeT0PzYMpgkZf0V14%2B5UGe6oE%3D' (2025-01-08)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/6df924734e1b626efd70925545de844b1c25246f?narHash=sha256-JG6n9tQET7ZLjvwjH9BdYE6pES/Alcduxv2FDXliuBM%3D' (2024-12-22)
  → 'github:nixos/nixpkgs/b134951a4c9f3c995fd7be05f3243f8ecd65d798?narHash=sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8%3D' (2024-12-30)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/5dc08f9cc77f03b43aacffdfbc8316807773c930?narHash=sha256-xJRN0FmX9QJ6%2Bw8eIIIxzBU1AyQcLKJ1M/Gp6lnSD20%3D' (2025-01-05)
  → 'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773?narHash=sha256-eSjkBwBdQk%2BTZWFlLbclF2rAh4JxbGg8az4w/Lfe7f4%3D' (2025-01-06)
2025-01-07 22:49:20 -05:00
bdfe36f919 fixed bugs found when running installer.py 2025-01-07 22:49:06 -05:00
b3be9dd2c8 converted to device ids instead of device aliases 2025-01-07 22:49:06 -05:00
d991f94d7e replaced nixos-generate-config with create_nix_hardware_file 2025-01-07 22:49:06 -05:00
2a12b80dfa added nix store dataset 2025-01-07 22:49:06 -05:00
d783b0d03d added doc strings 2025-01-07 22:49:06 -05:00
4ae7b9ab4d adding interface to installer.py 2025-01-07 22:49:06 -05:00
0f788a1901 added share container 2025-01-07 22:48:50 -05:00
20ed83e80a updated the passwords 2025-01-07 15:35:27 -05:00
1ea95f9518 adding gaming password 2025-01-07 15:35:27 -05:00
b1e3ce2afa moved sops-nix.nixosModules.sops to global/default.nix 2025-01-07 15:35:27 -05:00
71e6fa377c moved secrets.yaml 2025-01-07 15:35:27 -05:00
15234fa2bb basic sops setup 2025-01-07 15:35:27 -05:00
cdf26994a3 creating printing.nix
I dont always need printing enable. this will allows me to quickly add the printing setting when i do
2025-01-01 17:31:18 -05:00
98 changed files with 2165 additions and 1414 deletions

View File

@@ -1,9 +1,12 @@
name: build_jeeves name: build_systems
on: on:
workflow_dispatch: workflow_dispatch:
pull_request: pull_request:
merge_group:
push: push:
branches: [main] branches: [main]
schedule:
- cron: "0 22 * * *"
jobs: jobs:
build: build:
@@ -14,9 +17,11 @@ jobs:
system: system:
- "bob" - "bob"
- "jeeves" - "jeeves"
- "muninn"
- "rhapsody-in-green" - "rhapsody-in-green"
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Build default package - name: Build default package
run: "nixos-rebuild build --flake ./#${{ matrix.system }}" run: "nixos-rebuild build --flake ./#${{ matrix.system }}"
- name: copy to nix-cache
run: nix copy --to ssh://jeeves .#nixosConfigurations.${{ matrix.system }}.config.system.build.toplevel

View File

@@ -0,0 +1,29 @@
name: merge_flake_lock_update
on:
workflow_dispatch:
schedule:
- cron: "0 2 * * 6"
jobs:
merge:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: merge_flake_lock_update
run: |
pr_number=$(gh pr list --state open --author RichieCahill --label flake_lock_update --json number --jq '.[0].number')
echo "pr_number=$pr_number" >> $GITHUB_ENV
if [ -n "$pr_number" ]; then
gh pr merge "$pr_number" --rebase
else
echo "No open PR found with label flake_lock_update"
fi
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN_FOR_UPDATES }}

16
.github/workflows/treefmt.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: treefmt
on:
workflow_dispatch:
pull_request:
merge_group:
push:
branches: [main]
jobs:
treefmt:
name: nix fmt
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
- name: runs treefmt
run: "treefmt --ci"

View File

@@ -2,7 +2,7 @@ name: update-flake-lock
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * *" - cron: "0 0 * * 6"
jobs: jobs:
lockfile: lockfile:
@@ -15,7 +15,9 @@ jobs:
- name: Update flake.lock - name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@main uses: DeterminateSystems/update-flake-lock@main
with: with:
token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
pr-title: "Update flake.lock" pr-title: "Update flake.lock"
pr-labels: | pr-labels: |
dependencies dependencies
automated automated
flake_lock_update

4
.gitignore vendored
View File

@@ -162,4 +162,6 @@ cython_debug/
#.idea/ #.idea/
test.* test.*
secrets.*
# syncthing
.stfolder

17
.sops.yaml Normal file
View File

@@ -0,0 +1,17 @@
keys:
- &admin_richie age1u8zj599elqqvcmhxn8zuwrufsz8w8w366d3ayrljjejljt2q45kq8mxw9c # cspell:disable-line
- &system_bob age1q47vup0tjhulkg7d6xwmdsgrw64h4ax3la3evzqpxyy4adsmk9fs56qz3y # cspell:disable-line
- &system_jeeves age13lmqgc3jvkyah5e3vcwmj4s5wsc2akctcga0lpc0x8v8du3fxprqp4ldkv # cspell:disable-line
- &system_router age1xzxryqq63x65yuza9lmmkud7crjjxpnkdew070yhx6xn7xe4tdws5twxsv # cspell:disable-line
- &system_rhapsody age1ufnewppysaq2wwcl4ugngjz8pfzc5a35yg7luq0qmuqvctajcycs5lf6k4 # cspell:disable-line
creation_rules:
- path_regex: users/secrets\.yaml$
key_groups:
- age:
- *admin_richie
- *system_bob
- *system_jeeves
- *system_router
- *system_rhapsody

52
.vscode/settings.json vendored
View File

@@ -6,7 +6,9 @@
"advplyr", "advplyr",
"ahci", "ahci",
"aioesphomeapi", "aioesphomeapi",
"aiounifi",
"alsa", "alsa",
"apiclient",
"archlinux", "archlinux",
"ashift", "ashift",
"asrouter", "asrouter",
@@ -17,11 +19,14 @@
"auditd", "auditd",
"autofetch", "autofetch",
"autologin", "autologin",
"automations",
"autopull", "autopull",
"autotrim", "autotrim",
"autoupdate",
"azuretools", "azuretools",
"bantime", "bantime",
"bazarr", "bazarr",
"bgwriter",
"binhex", "binhex",
"bitwarden", "bitwarden",
"blkdiscard", "blkdiscard",
@@ -32,20 +37,27 @@
"captivedetect", "captivedetect",
"cgroupdriver", "cgroupdriver",
"charliermarsh", "charliermarsh",
"Checkpointing",
"cloudflared", "cloudflared",
"codellama",
"codezombiech", "codezombiech",
"compactmode", "compactmode",
"Compat", "Compat",
"contentblocking", "contentblocking",
"cookiebanners", "cookiebanners",
"createdb",
"createrole",
"crlite", "crlite",
"cryptsetup", "cryptsetup",
"cuda",
"darkreader", "darkreader",
"datagrip",
"datareporting", "datareporting",
"davidanson", "davidanson",
"dconf", "dconf",
"dearrow", "dearrow",
"debugpy", "debugpy",
"deepseek",
"dialout", "dialout",
"diffie", "diffie",
"direnv", "direnv",
@@ -53,12 +65,16 @@
"dnodesize", "dnodesize",
"dotfiles", "dotfiles",
"drawio", "drawio",
"duckdns",
"eamodio", "eamodio",
"ehci",
"emerg",
"endlessh", "endlessh",
"errorlens", "errorlens",
"esbenp", "esbenp",
"esphome", "esphome",
"extest", "extest",
"fadvise",
"fastforwardteam", "fastforwardteam",
"FASTFOX", "FASTFOX",
"ffmpegthumbnailer", "ffmpegthumbnailer",
@@ -70,6 +86,7 @@
"fmask", "fmask",
"fontconfig", "fontconfig",
"formfill", "formfill",
"forwardfor",
"foxundermoon", "foxundermoon",
"FULLSCREEN", "FULLSCREEN",
"fwupd", "fwupd",
@@ -82,6 +99,7 @@
"globalprivacycontrol", "globalprivacycontrol",
"gparted", "gparted",
"gtts", "gtts",
"gutenprint",
"hass", "hass",
"healthreport", "healthreport",
"Heatsink", "Heatsink",
@@ -91,7 +109,9 @@
"hmac", "hmac",
"homeassistant", "homeassistant",
"HPKP", "HPKP",
"hplip",
"htmlaboutaddons", "htmlaboutaddons",
"httpchk",
"hurlenko", "hurlenko",
"hwloc", "hwloc",
"INITDB", "INITDB",
@@ -99,16 +119,19 @@
"ioit", "ioit",
"iperf", "iperf",
"isal", "isal",
"jellyfin",
"jnoortheen", "jnoortheen",
"jsbc", "jsbc",
"kagi", "kagi",
"kuma", "kuma",
"lazer",
"levelname", "levelname",
"libglvnd", "libglvnd",
"libmysqlclient", "libmysqlclient",
"libsodium", "libsodium",
"libssh", "libssh",
"libvirtd", "libvirtd",
"llms",
"localtime", "localtime",
"louislam", "louislam",
"lsnew", "lsnew",
@@ -116,10 +139,13 @@
"lynis", "lynis",
"mangohud", "mangohud",
"markdownlint", "markdownlint",
"maxconn",
"maxpages",
"maxretry", "maxretry",
"maxtime", "maxtime",
"mechatroner", "mechatroner",
"mediainfo", "mediainfo",
"mixtral",
"mklabel", "mklabel",
"mkpart", "mkpart",
"modesetting", "modesetting",
@@ -127,7 +153,6 @@
"mountpoints", "mountpoints",
"mousewheel", "mousewheel",
"mtxr", "mtxr",
"muninn",
"ncdu", "ncdu",
"nemo", "nemo",
"neofetch", "neofetch",
@@ -137,22 +162,29 @@
"Networkd", "Networkd",
"networkmanager", "networkmanager",
"newtabpage", "newtabpage",
"nixfmt",
"nixos", "nixos",
"nixpkgs", "nixpkgs",
"nmap", "nmap",
"noauto", "noauto",
"nodev",
"noecho", "noecho",
"nonsponsored", "nonsponsored",
"Noto", "Noto",
"nprt",
"nvme", "nvme",
"OCSP", "OCSP",
"oderwat", "oderwat",
"ollama",
"ondemand",
"oneshot", "oneshot",
"openwakeword",
"optimise", "optimise",
"optoutstudies", "optoutstudies",
"overalljails", "overalljails",
"overscroll", "overscroll",
"overseerr", "overseerr",
"partitionwise",
"pbmode", "pbmode",
"pciutils", "pciutils",
"pcscd", "pcscd",
@@ -160,16 +192,17 @@
"peerconnection", "peerconnection",
"PESKYFOX", "PESKYFOX",
"PGID", "PGID",
"photoprism",
"pipewire", "pipewire",
"pkgs", "pkgs",
"plugdev", "plugdev",
"poppler", "poppler",
"posixacl", "posixacl",
"powertop",
"primarycache", "primarycache",
"prismlauncher", "prismlauncher",
"privatebrowsing", "privatebrowsing",
"PRIVOXY", "PRIVOXY",
"protontricks",
"prowlarr", "prowlarr",
"proxychains", "proxychains",
"prusa", "prusa",
@@ -177,8 +210,10 @@
"PUID", "PUID",
"pulseaudio", "pulseaudio",
"punycode", "punycode",
"pychromecast",
"pylance", "pylance",
"pymetno", "pymetno",
"pyownet",
"qbit", "qbit",
"qbittorrent", "qbittorrent",
"qbittorrentvpn", "qbittorrentvpn",
@@ -186,12 +221,16 @@
"quicksuggest", "quicksuggest",
"radarr", "radarr",
"readahead", "readahead",
"receiveencrypted",
"recordsize",
"Redistributable", "Redistributable",
"referer", "referer",
"REFERERS", "REFERERS",
"relatime", "relatime",
"Rhosts", "Rhosts",
"ripgrep", "ripgrep",
"roboto",
"rokuecp",
"routable", "routable",
"rspace", "rspace",
"rtkit", "rtkit",
@@ -213,6 +252,7 @@
"sponsorblock", "sponsorblock",
"sqltools", "sqltools",
"ssdp", "ssdp",
"SSHOPTS",
"stdenv", "stdenv",
"subresource", "subresource",
"substituters", "substituters",
@@ -220,19 +260,23 @@
"sysstat", "sysstat",
"tabmanager", "tabmanager",
"tamasfe", "tamasfe",
"TCPIP",
"tiktok", "tiktok",
"timonwong", "timonwong",
"titlebar",
"tmmworkshop", "tmmworkshop",
"Tmpfs", "Tmpfs",
"topsites", "topsites",
"topstories", "topstories",
"torrenting", "treefmt",
"twimg", "twimg",
"uaccess", "uaccess",
"ublock", "ublock",
"uiprotect",
"uitour", "uitour",
"unrar", "unrar",
"unsubmitted", "unsubmitted",
"uptimekuma",
"urlbar", "urlbar",
"urlclassifier", "urlclassifier",
"usbhid", "usbhid",
@@ -244,9 +288,11 @@
"virt", "virt",
"virtualisation", "virtualisation",
"vpnpromourl", "vpnpromourl",
"wakeonlan",
"webchannel", "webchannel",
"WEBRTC", "WEBRTC",
"WEBUI", "WEBUI",
"wireplumber",
"wireshark", "wireshark",
"Workqueues", "Workqueues",
"xattr", "xattr",

View File

@@ -1,6 +0,0 @@
#!/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

View File

@@ -8,6 +8,7 @@
{ {
imports = [ imports = [
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.sops-nix.nixosModules.sops
./fail2ban.nix ./fail2ban.nix
./fonts.nix ./fonts.nix
./libs.nix ./libs.nix
@@ -22,7 +23,7 @@
boot = { boot = {
tmp.useTmpfs = true; tmp.useTmpfs = true;
kernelPackages = lib.mkDefault pkgs.linuxPackages_6_12; kernelPackages = lib.mkDefault pkgs.linuxPackages_6_12;
zfs.package = lib.mkDefault pkgs.zfs; zfs.package = lib.mkDefault pkgs.zfs_2_3;
}; };
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
@@ -31,22 +32,40 @@
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
extraSpecialArgs = { inherit inputs outputs; }; extraSpecialArgs = { inherit inputs outputs; };
backupFileExtension = "backup";
}; };
nixpkgs = { nixpkgs = {
overlays = builtins.attrValues outputs.overlays; overlays = builtins.attrValues outputs.overlays;
config = { config.allowUnfree = true;
allowUnfree = true; };
services = {
# firmware update
fwupd.enable = true;
snapshot_manager.enable = lib.mkDefault true;
zfs = {
trim.enable = lib.mkDefault true;
autoScrub.enable = lib.mkDefault true;
}; };
}; };
services.fwupd.enable = true; powerManagement.powertop.enable = lib.mkDefault true;
programs.zsh.enable = true; programs.zsh.enable = true;
security.auditd.enable = lib.mkDefault true; security = {
auditd.enable = lib.mkDefault true;
sudo-rs = {
enable = true;
execWheelOnly = true;
};
sudo.enable = false;
};
users.mutableUsers = lib.mkDefault true; users.mutableUsers = lib.mkDefault false;
zramSwap = { zramSwap = {
enable = lib.mkDefault true; enable = lib.mkDefault true;

View File

@@ -4,8 +4,7 @@
console.keyMap = lib.mkDefault "us"; console.keyMap = lib.mkDefault "us";
i18n = { i18n = {
defaultLocale = lib.mkDefault "en_US.utf8"; defaultLocale = lib.mkDefault "en_US.UTF-8";
supportedLocales = lib.mkDefault [ "en_US.UTF-8/UTF-8" ];
extraLocaleSettings = lib.mkDefault { extraLocaleSettings = lib.mkDefault {
LC_ADDRESS = "en_US.UTF-8"; LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8";

View File

@@ -2,9 +2,11 @@
inputs, inputs,
lib, lib,
... ...
}: let }:
let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs; flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in { in
{
nix = { nix = {
settings = { settings = {
trusted-users = [ trusted-users = [
@@ -13,17 +15,14 @@ in {
]; ];
trusted-substituters = [ trusted-substituters = [
"https://cache.nixos.org" "https://cache.nixos.org"
"https://cache.tmmworkshop.com"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
]; ];
substituters = [ substituters = [
"https://cache.nixos.org/?priority=2&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" "https://nix-community.cachix.org/?priority=10&want-mass-query=true"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cache.tmmworkshop.com:jHffkpgbmEdstQPoihJPYW9TQe6jnQbWR2LqkNGV3iA="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
]; ];
auto-optimise-store = lib.mkDefault true; auto-optimise-store = lib.mkDefault true;

View File

@@ -1,4 +1,10 @@
{ inputs, pkgs, lib, config, ... }: {
inputs,
pkgs,
lib,
config,
...
}:
let let
cfg = config.services.snapshot_manager; cfg = config.services.snapshot_manager;
in in

View File

@@ -1,10 +1,18 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
boot = { boot = {
kernelPackages = pkgs.linuxPackages_6_12; kernelPackages = pkgs.linuxPackages_6_15;
zfs.package = pkgs.zfs; zfs.package = pkgs.zfs_2_3;
}; };
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
# rtkit is optional but recommended for pipewire
security.rtkit.enable = true;
services = { services = {
displayManager.sddm = { displayManager.sddm = {
enable = true; enable = true;
@@ -21,6 +29,8 @@
}; };
}; };
pulseaudio.enable = false;
pipewire = { pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;

View File

@@ -1,5 +1,7 @@
{ config, ... }: { config, ... }:
{ {
nixpkgs.config.cudaSupport = true;
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];
hardware = { hardware = {
nvidia = { nvidia = {

View File

@@ -0,0 +1,10 @@
{ pkgs, ... }:
{
services.printing = {
enable = true;
drivers = with pkgs; [
gutenprint
hplip
];
};
}

View File

@@ -1,6 +1,9 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
environment.systemPackages = with pkgs; [mangohud steam-run]; environment.systemPackages = with pkgs; [
mangohud
steam-run
];
hardware.steam-hardware.enable = true; hardware.steam-hardware.enable = true;
programs = { programs = {

View File

@@ -1,19 +1,18 @@
{ lib, ... }:
{ {
services.syncthing = { services.syncthing = {
enable = true; enable = true;
user = "richie"; user = "richie";
overrideDevices = true; overrideDevices = true;
overrideFolders = true; overrideFolders = lib.mkDefault true;
dataDir = "/home/richie/Syncthing"; dataDir = "/home/richie/Syncthing";
configDir = "/home/richie/.config/syncthing"; configDir = "/home/richie/.config/syncthing";
settings = { settings.devices = {
devices = { phone.id = "TBRULKD-7DZPGGZ-F6LLB7J-MSO54AY-7KLPBIN-QOFK6PX-W2HBEWI-PHM2CQI"; # cspell:disable-line
phone.id = "LTGPLAE-M4ZDJTM-TZ3DJGY-SLLAVWF-CQDVEVS-RGCS75T-GAPZYK3-KUM6LA5"; # cspell:disable-line
jeeves.id = "ICRHXZW-ECYJCUZ-I4CZ64R-3XRK7CG-LL2HAAK-FGOHD22-BQA4AI6-5OAL6AG"; # 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 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 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 rhapsody-in-green.id = "ASL3KC4-3XEN6PA-7BQBRKE-A7JXLI6-DJT43BY-Q4WPOER-7UALUAZ-VTPQ6Q4"; # cspell:disable-line
}; };
}; };
};
} }

View File

@@ -0,0 +1,7 @@
{
nix.settings = {
trusted-substituters = [ "http://cache.tmmworkshop.com" ];
substituters = [ "http://cache.tmmworkshop.com/?priority=1&want-mass-query=true" ];
trusted-public-keys = [ "cache.tmmworkshop.com:jHffkpgbmEdstQPoihJPYW9TQe6jnQbWR2LqkNGV3iA=" ];
};
}

View File

@@ -1,32 +1,9 @@
{ 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 = { system.autoUpgrade = {
enable = lib.mkDefault true; enable = true;
flags = [ "--accept-flake-config" ]; flags = [ "--accept-flake-config" ];
randomizedDelaySec = "1h"; randomizedDelaySec = "1h";
persistent = true; persistent = true;
flake = "github:RAD-Development/nix-dotfiles"; flake = "github:RichieCahill/dotfiles";
}; };
} }

283
flake.lock generated
View File

@@ -2,18 +2,17 @@
"nodes": { "nodes": {
"firefox-addons": { "firefox-addons": {
"inputs": { "inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1735099403, "lastModified": 1753416229,
"narHash": "sha256-22NF70bxkMY7/IY2NG0pC7WzgJ0bI67FGSUP37d2mQ8=", "narHash": "sha256-45s1L4h/6t3M+/ppqow1OFUgfk9jZHsR4jxNgxIWWmM=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "5b2c380332cf5a3022fde931d0346e2b868b544e", "rev": "553afee4efb5a7dea03cf654deafacd8fa1004f9",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -23,55 +22,6 @@
"type": "gitlab" "type": "gitlab"
} }
}, },
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1717312683,
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
"owner": "nix-community",
"repo": "flake-compat",
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"locked": {
"lastModified": 1629284811,
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -79,11 +29,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1735053786, "lastModified": 1753470191,
"narHash": "sha256-Gm+0DcbUS338vvkwyYWms5jsWlx8z8MeQBzcnIDuIkw=", "narHash": "sha256-hOUWU5L62G9sm8NxdiLWlLIJZz9H52VuFiDllHdwmVA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "35b98d20ca8f4ca1f6a2c30b8a2c8bb305a36d84", "rev": "a1817d1c0e5eabe7dfdfe4caa46c94d9d8f3fdb6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -92,58 +42,13 @@
"type": "github" "type": "github"
} }
}, },
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"system_tools",
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729742964,
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixos-cosmic": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1735090583,
"narHash": "sha256-Tm+BsKXJS/EdJd9DvLxDbw+chPI1o7A9RHKIFxho36I=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "847b93e3b63bcea9a477dd86bb4b56ce7e051f0e",
"type": "github"
},
"original": {
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1734954597, "lastModified": 1753122741,
"narHash": "sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl+fk=", "narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "def1d472c832d77885f174089b0d34854b007198", "rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -155,11 +60,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1734649271, "lastModified": 1753250450,
"narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -171,11 +76,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1735170897, "lastModified": 1753489269,
"narHash": "sha256-O1OXa12dHaObowGsfiM8pgphWfSXJj5v8sTxFoPXR0A=", "narHash": "sha256-Iy/9c6DaxCY9ECCLgpoo+uwY1K5YTmJLU7fSg7JeALk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "138326d6e9841ab9e6161730d40e09cedd670c40", "rev": "ce6b0611ca70423d97fab2a3f53f61f1fa4ff0a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -187,27 +92,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1734875076, "lastModified": 1735563628,
"narHash": "sha256-Pzyb+YNG5u3zP79zoi8HXYMs15Q5dfjDgwCdUI5B0nY=", "narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1807c2b91223227ad5599d7067a61665c52d1295",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1734835170,
"narHash": "sha256-JG6n9tQET7ZLjvwjH9BdYE6pES/Alcduxv2FDXliuBM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6df924734e1b626efd70925545de844b1c25246f", "rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -217,31 +106,53 @@
"type": "github" "type": "github"
} }
}, },
"poetry2nix": { "pyproject-build-systems": {
"inputs": { "inputs": {
"flake-utils": [
"system_tools",
"flake-utils"
],
"nix-github-actions": "nix-github-actions",
"nixpkgs": [ "nixpkgs": [
"system_tools", "system_tools",
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_2", "pyproject-nix": [
"treefmt-nix": "treefmt-nix" "system_tools",
"pyproject-nix"
],
"uv2nix": [
"system_tools",
"uv2nix"
]
}, },
"locked": { "locked": {
"lastModified": 1731205797, "lastModified": 1744599653,
"narHash": "sha256-F7N1mxH1VrkVNHR3JGNMRvp9+98KYO4b832KS8Gl2xI=", "narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=",
"owner": "nix-community", "owner": "pyproject-nix",
"repo": "poetry2nix", "repo": "build-system-pkgs",
"rev": "f554d27c1544d9c56e5f1f8e2b8aff399803674e", "rev": "7dba6dbc73120e15b558754c26024f6c93015dd7",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "pyproject-nix",
"repo": "poetry2nix", "repo": "build-system-pkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"system_tools",
"nixpkgs"
]
},
"locked": {
"lastModified": 1746540146,
"narHash": "sha256-QxdHGNpbicIrw5t6U3x+ZxeY/7IEJ6lYbvsjXmcxFIM=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "e09c10c24ebb955125fda449939bfba664c467fd",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github" "type": "github"
} }
}, },
@@ -249,50 +160,50 @@
"inputs": { "inputs": {
"firefox-addons": "firefox-addons", "firefox-addons": "firefox-addons",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixos-cosmic": "nixos-cosmic",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"nixpkgs-stable": "nixpkgs-stable_2", "nixpkgs-stable": "nixpkgs-stable",
"sops-nix": "sops-nix",
"system_tools": "system_tools", "system_tools": "system_tools",
"systems": "systems_3" "systems": "systems"
} }
}, },
"rust-overlay": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixos-cosmic",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1735007320, "lastModified": 1752544651,
"narHash": "sha256-NdhUgB9BkLGW9I+Q1GyUUCc3CbDgsg7HLWjG7WZBR5Q=", "narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
"owner": "oxalica", "owner": "Mic92",
"repo": "rust-overlay", "repo": "sops-nix",
"rev": "fb5fdba697ee9a2391ca9ceea3b853b4e3ce37a5", "rev": "2c8def626f54708a9c38a5861866660395bb3461",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "oxalica", "owner": "Mic92",
"repo": "rust-overlay", "repo": "sops-nix",
"type": "github" "type": "github"
} }
}, },
"system_tools": { "system_tools": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"poetry2nix": "poetry2nix" "pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix",
"uv2nix": "uv2nix"
}, },
"locked": { "locked": {
"lastModified": 1733083480, "lastModified": 1747501237,
"narHash": "sha256-B13faNyBbA3MeI7Jp6pFVbp58rI2Rx5Uvd83csW2p48=", "narHash": "sha256-woyaUwmZurfNTXBEFM6M7ueSd/Udixs+4DUInhL835c=",
"owner": "RichieCahill", "owner": "RichieCahill",
"repo": "system_tools", "repo": "system_tools",
"rev": "bc357d8fabd83c1423611829091e5b1d86dd913c", "rev": "68ab5d1c17ac3fe2487f73dbbb4848bd2291139e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -302,35 +213,6 @@
} }
}, },
"systems": { "systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"id": "systems",
"type": "indirect"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -345,25 +227,28 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": { "uv2nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"system_tools", "system_tools",
"poetry2nix",
"nixpkgs" "nixpkgs"
],
"pyproject-nix": [
"system_tools",
"pyproject-nix"
] ]
}, },
"locked": { "locked": {
"lastModified": 1730120726, "lastModified": 1747441483,
"narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=", "narHash": "sha256-W8BFXk5R0TuJcjIhcGoMpSOaIufGXpizK0pm+uTqynA=",
"owner": "numtide", "owner": "pyproject-nix",
"repo": "treefmt-nix", "repo": "uv2nix",
"rev": "9ef337e492a5555d8e17a51c911ff1f02635be15", "rev": "582024dc64663e9f88d467c2f7f7b20d278349de",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "pyproject-nix",
"repo": "treefmt-nix", "repo": "uv2nix",
"type": "github" "type": "github"
} }
} }

View File

@@ -4,14 +4,12 @@
nixConfig = { nixConfig = {
extra-substituters = [ extra-substituters = [
"https://cache.nixos.org/?priority=2&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" "https://nix-community.cachix.org/?priority=10&want-mass-query=true"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" # cspell:disable-line
"cache.tmmworkshop.com:jHffkpgbmEdstQPoihJPYW9TQe6jnQbWR2LqkNGV3iA=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" # cspell:disable-line
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "cache-nix-dot:Od9KN34LXc6Lu7y1ozzV1kIXZa8coClozgth/SYE7dU=" # cspell:disable-line
"cache-nix-dot:Od9KN34LXc6Lu7y1ozzV1kIXZa8coClozgth/SYE7dU="
]; ];
}; };
@@ -38,20 +36,22 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixos-cosmic = { sops-nix = {
url = "github:lilyinstarlight/nixos-cosmic"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = { outputs =
{
self, self,
nixpkgs, nixpkgs,
home-manager, home-manager,
systems, systems,
nixos-cosmic, sops-nix,
... ...
} @ inputs: let }@inputs:
let
inherit (self) outputs; inherit (self) outputs;
lib = nixpkgs.lib // home-manager.lib; lib = nixpkgs.lib // home-manager.lib;
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system}); forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
@@ -62,28 +62,31 @@
config.allowUnfree = true; config.allowUnfree = true;
} }
); );
in { in
{
inherit lib; inherit lib;
overlays = import ./overlays { inherit inputs outputs; }; overlays = import ./overlays { inherit inputs outputs; };
devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; }); devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
formatter = forEachSystem (pkgs: pkgs.alejandra); formatter = forEachSystem (pkgs: pkgs.treefmt);
nixosConfigurations = { nixosConfigurations = {
bob = lib.nixosSystem { bob = lib.nixosSystem {
modules = [./systems/bob]; modules = [
./systems/bob
];
specialArgs = { inherit inputs outputs; }; specialArgs = { inherit inputs outputs; };
}; };
jeeves = lib.nixosSystem { jeeves = lib.nixosSystem {
modules = [./systems/jeeves]; modules = [
./systems/jeeves
];
specialArgs = { inherit inputs outputs; }; specialArgs = { inherit inputs outputs; };
}; };
rhapsody-in-green = lib.nixosSystem { rhapsody-in-green = lib.nixosSystem {
modules = [./systems/rhapsody-in-green]; modules = [
specialArgs = {inherit inputs outputs;}; ./systems/rhapsody-in-green
}; ];
muninn = lib.nixosSystem {
modules = [./systems/muninn];
specialArgs = { inherit inputs outputs; }; specialArgs = { inherit inputs outputs; };
}; };
}; };

View File

@@ -1,4 +1,5 @@
{inputs, ...}: { { inputs, ... }:
{
# When applied, the stable nixpkgs set (declared in the flake inputs) will be accessible through 'pkgs.stable' # When applied, the stable nixpkgs set (declared in the flake inputs) will be accessible through 'pkgs.stable'
stable = final: _prev: { stable = final: _prev: {
stable = import inputs.nixpkgs-stable { stable = import inputs.nixpkgs-stable {

View File

@@ -1,4 +1,8 @@
{pkgs ? import <nixpkgs> {}, ...}: { {
pkgs ? import <nixpkgs> { },
...
}:
{
default = pkgs.mkShell { default = pkgs.mkShell {
NIX_CONFIG = "extra-experimental-features = nix-command flakes ca-derivations"; NIX_CONFIG = "extra-experimental-features = nix-command flakes ca-derivations";
nativeBuildInputs = with pkgs; [ nativeBuildInputs = with pkgs; [

View File

@@ -1,6 +1,7 @@
{ {
imports = [ imports = [
../../users/richie ../../users/richie
../../users/gaming
../../common/global ../../common/global
../../common/optional/desktop.nix ../../common/optional/desktop.nix
../../common/optional/docker.nix ../../common/optional/docker.nix
@@ -8,11 +9,14 @@
../../common/optional/steam.nix ../../common/optional/steam.nix
../../common/optional/syncthing_base.nix ../../common/optional/syncthing_base.nix
../../common/optional/systemd-boot.nix ../../common/optional/systemd-boot.nix
../../common/optional/update.nix
../../common/optional/yubikey.nix ../../common/optional/yubikey.nix
../../common/optional/zerotier.nix ../../common/optional/zerotier.nix
../../common/optional/nvidia.nix
./hardware.nix ./hardware.nix
./nvidia.nix
./syncthing.nix ./syncthing.nix
./games.nix
./llms.nix
]; ];
networking = { networking = {
@@ -22,28 +26,19 @@
networkmanager.enable = true; networkmanager.enable = true;
}; };
hardware = {
pulseaudio.enable = false;
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
security.rtkit.enable = true;
services = { services = {
displayManager = {
enable = true;
autoLogin = {
user = "gaming";
enable = true;
};
defaultSession = "plasma";
};
openssh.ports = [ 262 ]; openssh.ports = [ 262 ];
printing.enable = true; snapshot_manager.path = ./snapshot_config.toml;
snapshot_manager.enable = true;
zfs = {
trim.enable = true;
autoScrub.enable = true;
};
}; };
system.stateVersion = "24.05"; system.stateVersion = "24.05";

7
systems/bob/games.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
osu-lazer-bin
jellyfin-media-player
];
}

View File

@@ -26,6 +26,9 @@
device = "/dev/disk/by-id/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; bypassWorkqueues = true;
allowDiscards = true; allowDiscards = true;
keyFileSize = 4096;
keyFile = "/dev/disk/by-id/usb-Samsung_Flash_Drive_FIT_0374620080067131-0:0";
fallbackToPassword = true;
}; };
}; };
kernelModules = [ "kvm-amd" ]; kernelModules = [ "kvm-amd" ];
@@ -48,6 +51,11 @@
fsType = "zfs"; fsType = "zfs";
}; };
"/zfs/models" = {
device = "root_pool/models";
fsType = "zfs";
};
"/boot" = { "/boot" = {
device = "/dev/disk/by-uuid/609D-FF29"; device = "/dev/disk/by-uuid/609D-FF29";
fsType = "vfat"; fsType = "vfat";

28
systems/bob/llms.nix Normal file
View File

@@ -0,0 +1,28 @@
{
services = {
ollama = {
user = "ollama";
enable = true;
loadModels = [
"codellama:7b"
"deepseek-r1:8b"
"deepseek-r1:14b"
"deepseek-r1:32b"
"llama3.2:3b"
"llama2-uncensored:7b"
"mistral-nemo:12b"
"dolphin-mixtral:8x7b"
"qwq:32b"
"Qihoo360-Light-R1-32B"
];
models = "/zfs/models";
acceleration = "cuda";
openFirewall = true;
};
# open-webui = {
# enable = true;
# openFirewall = true;
# host = "0.0.0.0";
# };
};
}

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/models"]
15_min = 4
hourly = 24
daily = 0
monthly = 0

View File

@@ -1,8 +1,7 @@
{ {
services.syncthing.settings.folders = { services.syncthing.settings.folders = {
"notes" = { "dotfiles" = {
id = "l62ul-lpweo"; # cspell:disable-line path = "/home/richie/dotfiles";
path = "/home/richie/notes";
devices = [ devices = [
"jeeves" "jeeves"
"rhapsody-in-green" "rhapsody-in-green"
@@ -30,29 +29,5 @@
]; ];
fsWatcherEnabled = true; 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;
};
}; };
} }

View File

@@ -1,6 +1,3 @@
let
vars = import ./vars.nix;
in
{ {
imports = [ imports = [
../../users/richie ../../users/richie
@@ -10,49 +7,21 @@ in
../../common/optional/syncthing_base.nix ../../common/optional/syncthing_base.nix
../../common/optional/zerotier.nix ../../common/optional/zerotier.nix
./docker ./docker
./services
./hardware.nix ./hardware.nix
./home_assistant.nix
./networking.nix ./networking.nix
./nvidia.nix
./programs.nix ./programs.nix
./runner.nix ./runners
./services.nix
./syncthing.nix ./syncthing.nix
]; ];
boot.zfs.extraPools = [
"media"
"storage"
"torrenting"
];
services = { services = {
openssh.ports = [ 629 ]; 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; smartd.enable = true;
snapshot_manager = { snapshot_manager.path = ./snapshot_config.toml;
enable = true;
path = ./snapshot_config.toml;
};
sysstat.enable = true;
zfs = {
trim.enable = true;
autoScrub.enable = true;
};
}; };
system.stateVersion = "24.05"; system.stateVersion = "24.05";

View File

@@ -1,19 +0,0 @@
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;
};
}

View File

@@ -1,15 +0,0 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers.filebrowser = {
image = "hurlenko/filebrowser:latest";
extraOptions = [ "--network=web" ];
volumes = [
"/zfs:/data"
"${vars.media_docker_configs}/filebrowser:/config"
];
autoStart = true;
user = "1000:users";
};
}

View File

@@ -1,12 +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;
};
}

View File

@@ -0,0 +1,61 @@
{
config,
pkgs,
lib,
...
}:
let
vars = import ../vars.nix;
in
{
# environment.systemPackages = with pkgs; [ php.withExtensions ({ all, ... }: [ all.pdo_pgsql ]) ];
services.httpd = {
enable = true;
adminAddr = "webmaster@localhost";
enablePHP = true;
phpPackage = pkgs.php.withExtensions (
{ enabled, all }:
enabled
++ [
all.pdo
all.pdo_pgsql
]
);
extraModules = [ "rewrite" ];
virtualHosts.great_cloud_of_witnesses = {
hostName = "localhost";
listen = [
{
ip = "*";
port = 8092;
}
];
documentRoot = "${vars.services}/great_cloud_of_witnesses";
extraConfig = ''
<Directory "${vars.services}/great_cloud_of_witnesses">
AllowOverride All
Require all granted
</Directory>
'';
};
};
sops.secrets.gcw_password = {
sopsFile = ../../../users/secrets.yaml;
neededForUsers = true;
};
users = {
users.gcw = {
isSystemUser = true;
hashedPasswordFile = config.sops.secrets.gcw_password.path;
group = "gcw";
};
groups.gcw = { };
};
}

View File

@@ -1,53 +0,0 @@
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" ];
};
}

View File

@@ -1,32 +0,0 @@
let
vars = import ../vars.nix;
in
{
users = {
users.postgres = {
isSystemUser = true;
group = "postgres";
uid = 999;
};
groups.postgres = {
gid = 999;
};
};
virtualisation.oci-containers.containers = {
postgres = {
image = "postgres:17";
ports = [ "5432:5432" ];
volumes = [ "${vars.media_database}/postgres:/var/lib/postgresql/data" ];
environment = {
POSTGRES_USER = "admin";
POSTGRES_DB = "archive";
POSTGRES_INITDB_ARGS = "--auth-host=scram-sha-256";
};
environmentFiles = [ "${vars.storage_secrets}/docker/postgres" ];
autoStart = true;
user = "postgres:postgres";
};
};
}

View File

@@ -1,29 +0,0 @@
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;
};
}

View File

@@ -3,7 +3,11 @@ let
in in
{ {
networking.firewall = { networking.firewall = {
allowedTCPPorts = [ 6882 8081 8118 ]; allowedTCPPorts = [
6882
8081
8118
];
allowedUDPPorts = [ 6882 ]; allowedUDPPorts = [ 6882 ];
}; };
virtualisation.oci-containers.containers.qbitvpn = { virtualisation.oci-containers.containers.qbitvpn = {
@@ -17,8 +21,9 @@ in
"8118:8118" "8118:8118"
]; ];
volumes = [ volumes = [
"${vars.media_docker_configs}/qbitvpn:/config" "${vars.docker_configs}/qbitvpn:/config"
"${vars.torrenting_qbitvpn}:/data" "${vars.qbitvpn}:/data"
"${vars.qbitvpn_scratch}:/data/incomplete"
"/etc/localtime:/etc/localtime:ro" "/etc/localtime:/etc/localtime:ro"
]; ];
environment = { environment = {
@@ -36,7 +41,7 @@ in
DELUGE_DAEMON_LOG_LEVEL = "debug"; DELUGE_DAEMON_LOG_LEVEL = "debug";
DELUGE_WEB_LOG_LEVEL = "debug"; DELUGE_WEB_LOG_LEVEL = "debug";
}; };
environmentFiles = ["${vars.storage_secrets}/docker/qbitvpn"]; environmentFiles = [ "${vars.secrets}/docker/qbitvpn" ];
autoStart = true; autoStart = true;
}; };
} }

View File

@@ -1,39 +0,0 @@
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;
};
};
}

View File

@@ -0,0 +1,15 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers.share = {
image = "ubuntu/apache2:2.4-22.04_beta";
ports = [ "8091:80" ];
volumes = [
"${../../../common/docker_templates}/file_server/sites/:/etc/apache2/sites-enabled/"
"${vars.share}:/data"
];
extraOptions = [ "--network=web" ];
autoStart = true;
};
}

View File

@@ -1,16 +0,0 @@
let
vars = import ../vars.nix;
in
{
virtualisation.oci-containers.containers = {
uptime_kuma = {
image = "louislam/uptime-kuma:latest";
volumes = [
"${vars.media_docker_configs}/uptime_kuma:/app/data"
"/var/run/docker.sock:/var/run/docker.sock"
];
extraOptions = [ "--network=web" ];
autoStart = true;
};
};
}

View File

@@ -1,4 +1,24 @@
{ config, lib, modulesPath, ... }: {
config,
lib,
modulesPath,
...
}:
let
makeLuksDevice = device: {
inherit device;
keyFileSize = 4096;
keyFile = "/dev/disk/by-id/usb-XIAO_USB_Drive_24587CE29074-0:0";
fallbackToPassword = true;
};
makeLuksSSD =
device:
(makeLuksDevice device)
// {
bypassWorkqueues = true;
allowDiscards = true;
};
in
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
@@ -36,77 +56,51 @@
luks.devices = { luks.devices = {
# cspell:disable # cspell:disable
# Root pool # Root pool
"luks-root-pool-wwn-0x55cd2e4150f01519-part2" = { "luks-root-pool-wwn-0x55cd2e4150f01519-part2" =
device = "/dev/disk/by-id/wwn-0x55cd2e4150f01519-part2"; makeLuksSSD "/dev/disk/by-id/wwn-0x55cd2e4150f01519-part2";
bypassWorkqueues = true; "luks-root-pool-wwn-0x55cd2e4150f01556-part2" =
allowDiscards = true; makeLuksSSD "/dev/disk/by-id/wwn-0x55cd2e4150f01556-part2";
};
"luks-root-pool-wwn-0x55cd2e4150f01556-part2" = {
device = "/dev/disk/by-id/wwn-0x55cd2e4150f01556-part2";
bypassWorkqueues = true;
allowDiscards = true;
};
# Media pool # Media pool
"luks-media_pool-nvme-INTEL_SSDPEK1A118GA_BTOC14120V2J118B-part1" = { "luks-media_pool-nvme-INTEL_SSDPEK1A118GA_BTOC14120V2J118B-part1" =
device = "/dev/disk/by-id/nvme-INTEL_SSDPEK1A118GA_BTOC14120V2J118B-part1"; makeLuksSSD "/dev/disk/by-id/nvme-INTEL_SSDPEK1A118GA_BTOC14120V2J118B-part1";
bypassWorkqueues = true; "luks-media_pool-nvme-INTEL_SSDPEK1A118GA_BTOC14120WAG118B-part1" =
allowDiscards = true; makeLuksSSD "/dev/disk/by-id/nvme-INTEL_SSDPEK1A118GA_BTOC14120WAG118B-part1";
}; "luks-media_pool-nvme-INTEL_SSDPE2ME012T4_CVMD5130000G1P2HGN-part1" =
"luks-media_pool-nvme-INTEL_SSDPEK1A118GA_BTOC14120WAG118B-part1" = { makeLuksSSD "/dev/disk/by-id/nvme-INTEL_SSDPE2ME012T4_CVMD5130000G1P2HGN-part1";
device = "/dev/disk/by-id/nvme-INTEL_SSDPEK1A118GA_BTOC14120WAG118B-part1"; "luks-media_pool-nvme-INTEL_SSDPE2ME012T4_CVMD5130000U1P2HGN-part1" =
bypassWorkqueues = true; makeLuksSSD "/dev/disk/by-id/nvme-INTEL_SSDPE2ME012T4_CVMD5130000U1P2HGN-part1";
allowDiscards = true;
}; # Scratch pool
"luks-media_pool-nvme-INTEL_SSDPE2ME012T4_CVMD5130000G1P2HGN-part1" = { "luks-scratch-pool-ata-CT480BX500SSD1_2314E6C3C01C-part1" =
device = "/dev/disk/by-id/nvme-INTEL_SSDPE2ME012T4_CVMD5130000G1P2HGN-part1"; makeLuksSSD "/dev/disk/by-id/ata-CT480BX500SSD1_2314E6C3C01C-part1";
bypassWorkqueues = true; "luks-scratch-pool-ata-CT480BX500SSD1_2314E6C3C01E-part1" =
allowDiscards = true; makeLuksSSD "/dev/disk/by-id/ata-CT480BX500SSD1_2314E6C3C01E-part1";
};
"luks-media_pool-nvme-INTEL_SSDPE2ME012T4_CVMD5130000U1P2HGN-part1" = {
device = "/dev/disk/by-id/nvme-INTEL_SSDPE2ME012T4_CVMD5130000U1P2HGN-part1";
bypassWorkqueues = true;
allowDiscards = true;
};
# Storage pool # Storage pool
"luks-storage_pool-nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834822N-part1" = { "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"; makeLuksSSD "/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834822N-part1";
bypassWorkqueues = true; "luks-storage_pool-nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834817F-part1" =
allowDiscards = true; makeLuksSSD "/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834817F-part1";
}; "luks-storage_pool-nvme-INTEL_MEMPEK1W016GA_PHBT828104DF016D-part1" =
"luks-storage_pool-nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834817F-part1" = { makeLuksSSD "/dev/disk/by-id/nvme-INTEL_MEMPEK1W016GA_PHBT828104DF016D-part1";
device = "/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T834817F-part1"; "luks-storage_pool-nvme-INTEL_MEMPEK1W016GA_PHBT828105A8016D-part1" =
bypassWorkqueues = true; makeLuksSSD "/dev/disk/by-id/nvme-INTEL_MEMPEK1W016GA_PHBT828105A8016D-part1";
allowDiscards = true; "luks-storage_pool-wwn-0x5000cca23bc438dd-part1" =
}; makeLuksDevice "/dev/disk/by-id/wwn-0x5000cca23bc438dd-part1";
"luks-storage_pool-nvme-INTEL_MEMPEK1W016GA_PHBT828104DF016D-part1" = { "luks-storage_pool-wwn-0x5000cca23bd035f5-part1" =
device = "/dev/disk/by-id/nvme-INTEL_MEMPEK1W016GA_PHBT828104DF016D-part1"; makeLuksDevice "/dev/disk/by-id/wwn-0x5000cca23bd035f5-part1";
bypassWorkqueues = true; "luks-storage_pool-wwn-0x5000cca23bd00ad6-part1" =
allowDiscards = true; makeLuksDevice "/dev/disk/by-id/wwn-0x5000cca23bd00ad6-part1";
};
"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
}; };
}; };
zfs.extraPools = [
"media"
"scratch"
"storage"
];
kernelModules = [ "kvm-amd" ]; kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ]; extraModulePackages = [ ];
}; };
@@ -122,8 +116,8 @@
fsType = "zfs"; fsType = "zfs";
}; };
"/nix" = "/nix" = {
{ device = "root_pool/nix"; device = "root_pool/nix";
fsType = "zfs"; fsType = "zfs";
}; };

View File

@@ -1,57 +0,0 @@
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" ];
};
}

View File

@@ -7,25 +7,12 @@
}; };
systemd.network = { systemd.network = {
enable = true; enable = true;
netdevs = {
"20-ioit-vlan" = {
netdevConfig = {
Kind = "vlan";
Name = "ioit-vlan";
};
vlanConfig.Id = 20;
};
};
networks = { networks = {
"10-1GB_Primary" = { "10-1GB_Primary" = {
matchConfig.Name = "enp98s0f0"; matchConfig.Name = "enp98s0f0";
address = [ "192.168.95.14/24" ]; address = [ "192.168.99.14/24" ];
routes = [{ Gateway = "192.168.95.1"; }]; routes = [ { Gateway = "192.168.99.1"; } ];
vlan = [ "ioit-vlan" ];
linkConfig.RequiredForOnline = "routable"; linkConfig.RequiredForOnline = "routable";
}; };
"10-1GB_Secondary" = { "10-1GB_Secondary" = {
@@ -41,15 +28,6 @@
matchConfig.Name = "enp97s0f1np1"; matchConfig.Name = "enp97s0f1np1";
DHCP = "yes"; DHCP = "yes";
}; };
"40-ioit-vlan" = {
matchConfig.Name = "ioit-vlan";
DHCP = "yes";
}; };
}; };
};
services.zerotierone = {
enable = true;
joinNetworks = [ "e4da7455b2ae64ca" ];
};
} }

16
systems/jeeves/nvidia.nix Normal file
View File

@@ -0,0 +1,16 @@
{ config, ... }:
{
nixpkgs.config.cudaSupport = true;
services.xserver.videoDrivers = [ "nvidia" ];
hardware = {
nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
package = config.boot.kernelPackages.nvidiaPackages.beta;
nvidiaSettings = true;
open = false;
};
nvidia-container-toolkit.enable = true;
};
}

View File

@@ -1,29 +0,0 @@
{ 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
};
}

View File

@@ -0,0 +1,26 @@
{ pkgs, ... }:
{
imports = [ ./nix_builder.nix ];
users = {
users.github-runners = {
shell = pkgs.bash;
isSystemUser = true;
group = "github-runners";
uid = 601;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA/S8i+BNX/12JNKg+5EKGX7Aqimt5KM+ve3wt/SyWuO github-runners" # cspell:disable-line
];
};
groups.github-runners.gid = 601;
};
services.nix_builder.containers = {
nix-builder-0.enable = true;
nix-builder-1.enable = true;
nix-builder-2.enable = true;
nix-builder-3.enable = true;
nix-builder-4.enable = true;
nix-builder-5.enable = true;
};
}

View File

@@ -0,0 +1,101 @@
{ config, lib, ... }:
with lib;
let
vars = import ../vars.nix;
in
{
options.services.nix_builder.containers = mkOption {
type = types.attrsOf (
types.submodule (
{ name, ... }:
{
options.enable = mkEnableOption "GitHub runner container";
}
)
);
default = { };
description = "GitHub runner container configurations";
};
config.containers = mapAttrs (
name: cfg:
mkIf cfg.enable {
autoStart = true;
bindMounts = {
"/storage" = {
mountPoint = "/zfs/media/github-runners/${name}";
isReadOnly = false;
};
"/secrets".mountPoint = "${vars.secrets}/services/github-runners/${name}";
"ssh-keys".mountPoint = "${vars.secrets}/services/github-runners/id_ed25519_github-runners";
};
config =
{
config,
pkgs,
lib,
...
}:
{
nix.settings = {
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="
];
experimental-features = [
"flakes"
"nix-command"
];
};
programs.ssh.extraConfig = ''
Host jeeves
Port 629
User github-runners
HostName 192.168.99.14
IdentityFile ${vars.secrets}/services/github-runners/id_ed25519_github-runners
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
'';
services.github-runners.${name} = {
enable = true;
replace = true;
workDir = "/zfs/media/github-runners/${name}";
url = "https://github.com/RichieCahill/dotfiles";
extraLabels = [ "nixos" ];
tokenFile = "${vars.secrets}/services/github-runners/${name}";
user = "github-runners";
group = "github-runners";
extraPackages = with pkgs; [
nixfmt-rfc-style
nixos-rebuild
openssh
treefmt
];
};
users = {
users.github-runners = {
shell = pkgs.bash;
isSystemUser = true;
group = "github-runners";
uid = 601;
};
groups.github-runners.gid = 601;
};
system.stateVersion = "24.11";
};
}
) config.services.nix_builder.containers;
}

View File

@@ -11,21 +11,23 @@ sudo zpool create -o ashift=12 -O acltype=posixacl -O atime=off -O dnodesize=aut
sudo zpool add storage -o ashift=12 special mirror sudo zpool add storage -o ashift=12 special mirror
sudo zpool add storage -o ashift=12 logs mirror sudo zpool add storage -o ashift=12 logs mirror
# torrenting # scratch
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 create -o ashift=12 -O acltype=posixacl -O atime=off -O dnodesize=auto -O xattr=sa -O compression=zstd -m /zfs/scratch scratch
sudo zpool add torrenting -o ashift=12 special
# media datasets # media datasets
sudo zfs create -o compression=zstd-9 media/docker 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 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 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/plex
sudo zfs create -o compression=zstd-9 media/services
sudo zfs create -o compression=zstd-19 media/home_assistant sudo zfs create -o compression=zstd-19 media/home_assistant
sudo zfs create -o exec=off media/share
sudo zfs create -o recordsize=16k -o primarycache=metadata -o mountpoint=/zfs/media/database/postgres media/postgres sudo zfs create -o recordsize=16k -o primarycache=metadata -o mountpoint=/zfs/media/database/postgres media/postgres
# scratch datasets
sudo zfs create -o recordsize=16k -o sync=disabled scratch/qbitvpn
sudo zfs create -o recordsize=16k -o sync=disabled scratch/transmission
# storage datasets # storage datasets
sudo zfs create -o recordsize=1M -o compression=zstd-19 storage/archive 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 compression=zstd-19 storage/main
@@ -33,7 +35,6 @@ sudo zfs create -o recordsize=16K -o compression=zstd-19 -o copies=2 storage/pho
sudo zfs create -o recordsize=1M -o compression=zstd-19 storage/plex 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 -o copies=3 storage/secrets
sudo zfs create -o compression=zstd-19 storage/syncthing sudo zfs create -o compression=zstd-19 storage/syncthing
sudo zfs create -o recordsize=1M -o compression=zstd-9 -o exec=off -o sync=disabled storage/qbitvpn
# torrenting datasets sudo zfs create -o recordsize=1M -o compression=zstd-9 -o exec=off -o sync=disabled storage/transmission
sudo zfs create -o recordsize=16K -o exec=off -o sync=disabled torrenting/qbit sudo zfs create -o recordsize=1M -o compression=zstd-19 storage/library
sudo zfs create -o recordsize=16K -o exec=off -o sync=disabled torrenting/qbitvpn

View File

@@ -0,0 +1,10 @@
{ lib, ... }:
let
vars = import ../vars.nix;
in
{
services.audiobookshelf.enable = true;
systemd.services.audiobookshelf.serviceConfig.WorkingDirectory =
lib.mkForce "${vars.docker_configs}/audiobookshelf";
users.users.audiobookshelf.home = lib.mkForce "${vars.docker_configs}/audiobookshelf";
}

View File

@@ -0,0 +1,17 @@
{ pkgs, ... }:
let
vars = import ../vars.nix;
in
{
systemd.services.cloud_flare_tunnel = {
description = "cloud_flare_tunnel proxy's traffic through cloudflare";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
EnvironmentFile = "${vars.secrets}/docker/cloud_flare_tunnel";
ExecStart = "${pkgs.cloudflared}/bin/cloudflared --no-autoupdate tunnel run";
Restart = "on-failure";
};
};
}

View File

@@ -0,0 +1,9 @@
{ lib, ... }:
{
imports =
let
files = builtins.attrNames (builtins.readDir ./.);
nixFiles = builtins.filter (name: lib.hasSuffix ".nix" name && name != "default.nix") files;
in
map (file: ./. + "/${file}") nixFiles;
}

View File

@@ -0,0 +1,21 @@
{
pkgs,
...
}:
let
vars = import ../vars.nix;
in
{
systemd.services.filebrowser = {
description = "filebrowser";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
User = "richie";
Group = "users";
ExecStart = "${pkgs.filebrowser}/bin/filebrowser --root=/zfs --address=0.0.0.0 --database=${vars.docker_configs}/filebrowser/filebrowser.db";
Restart = "on-failure";
};
};
}

View File

@@ -21,51 +21,53 @@ defaults
#Application Setup #Application Setup
frontend ContentSwitching frontend ContentSwitching
bind *:80 bind *:80 v4v6
bind *:443 ssl crt /etc/ssl/certs/cloudflare.pem bind *:443 v4v6 ssl crt /zfs/storage/secrets/docker/cloudflare.pem
mode http mode http
# tmmworkshop.com # tmmworkshop.com
acl host_audiobookshelf hdr(host) -i audiobookshelf.tmmworkshop.com acl host_audiobookshelf hdr(host) -i audiobookshelf.tmmworkshop.com
acl host_cache hdr(host) -i cache.tmmworkshop.com acl host_cache hdr(host) -i cache.tmmworkshop.com
acl host_filebrowser hdr(host) -i filebrowser.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_homeassistant hdr(host) -i homeassistant.tmmworkshop.com
acl host_photoprism hdr(host) -i photoprism.tmmworkshop.com acl host_jellyfin hdr(host) -i jellyfin.tmmworkshop.com
acl host_uptime_kuma hdr(host) -i uptimekuma-jeeves.tmmworkshop.com acl host_share hdr(host) -i share.tmmworkshop.com
acl host_gcw hdr(host) -i gcw.tmmworkshop.com
use_backend audiobookshelf_nodes if host_audiobookshelf use_backend audiobookshelf_nodes if host_audiobookshelf
use_backend cache_nodes if host_cache use_backend cache_nodes if host_cache
use_backend filebrowser_nodes if host_filebrowser use_backend filebrowser_nodes if host_filebrowser
use_backend grafana_nodes if host_grafana
use_backend homeassistant_nodes if host_homeassistant use_backend homeassistant_nodes if host_homeassistant
use_backend photoprism_nodes if host_photoprism use_backend jellyfin if host_jellyfin
use_backend uptime_kuma_nodes if host_uptime_kuma use_backend share_nodes if host_share
use_backend gcw_nodes if host_gcw
backend audiobookshelf_nodes backend audiobookshelf_nodes
mode http mode http
server server audiobookshelf:80 server server 127.0.0.1:8000
backend cache_nodes backend cache_nodes
mode http mode http
server server 192.168.90.40:5000 server server 127.0.0.1:5000
backend grafana_nodes
mode http
server server grafana:3000
backend filebrowser_nodes backend filebrowser_nodes
mode http mode http
server server filebrowser:8080 server server 127.0.0.1:8080
backend homeassistant_nodes backend homeassistant_nodes
mode http mode http
server server 192.168.95.14:8123 server server 127.0.0.1:8123
backend photoprism_nodes backend jellyfin
option httpchk
option forwardfor
http-check send meth GET uri /health
http-check expect string Healthy
server jellyfin 127.0.0.1:8096
backend share_nodes
mode http mode http
server server photoprism:2342 server server 127.0.0.1:8091
backend uptime_kuma_nodes backend gcw_nodes
mode http mode http
server server uptime_kuma:3001 server server 127.0.0.1:8092

View File

@@ -0,0 +1,11 @@
{
networking.firewall.allowedTCPPorts = [
80
443
];
services.haproxy = {
enable = true;
config = builtins.readFile ./haproxy.cfg;
};
}

View File

@@ -0,0 +1,84 @@
let
vars = import ../vars.nix;
in
{
users = {
users.hass = {
isSystemUser = true;
group = "hass";
};
groups.hass = { };
};
services = {
home-assistant = {
enable = true;
openFirewall = true;
configDir = vars.home_assistant;
config = {
http = {
server_port = 8123;
server_host = [
"192.168.99.14"
"192.168.90.40"
"127.0.0.1"
];
use_x_forwarded_for = true;
trusted_proxies = "127.0.0.1";
};
homeassistant = {
time_zone = "America/New_York";
unit_system = "us_customary";
temperature_unit = "F";
};
recorder = {
db_url = "postgresql://@/hass";
auto_purge = true;
purge_keep_days = 3650;
db_retry_wait = 15;
};
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; [
aioesphomeapi
aiounifi
bleak-esphome
esphome-dashboard-api
gtts
jellyfin-apiclient-python
psycopg2
pymetno
pyownet
rokuecp
uiprotect
wakeonlan
];
extraComponents = [ "isal" ];
};
esphome = {
enable = true;
openFirewall = true;
address = "192.168.90.40";
};
};
}

View File

@@ -0,0 +1,10 @@
let
vars = import ../vars.nix;
in
{
services.jellyfin = {
enable = true;
openFirewall = true;
dataDir = "${vars.services}/jellyfin";
};
}

View File

@@ -0,0 +1,10 @@
let
vars = import ../vars.nix;
in
{
services.nix-serve = {
enable = true;
secretKeyFile = "${vars.secrets}/services/nix-cache/cache-priv-key.pem";
openFirewall = true;
};
}

View File

@@ -0,0 +1,192 @@
{ pkgs, ... }:
let
vars = import ../vars.nix;
in
{
networking.firewall.allowedTCPPorts = [ 5432 ];
services.postgresql = {
enable = true;
package = pkgs.postgresql_17_jit;
enableTCPIP = true;
enableJIT = true;
dataDir = "${vars.database}/postgres";
authentication = pkgs.lib.mkOverride 10 ''
# admins
local all postgres trust
host all postgres 127.0.0.1/32 trust
host all postgres ::1/128 trust
local all richie trust
host all richie 127.0.0.1/32 trust
host all richie ::1/128 trust
host all richie 192.168.90.1/24 trust
host all richie 192.168.99.1/24 trust
#type database DBuser origin-address auth-method
local hass hass trust
# ipv4
host hass hass 192.168.90.1/24 trust
host hass hass 127.0.0.1/32 trust
# ipv6
host hass hass ::1/128 trust
# megan
host megan megan 192.168.90.1/24 trust
host megan megan 127.0.0.1/32 trust
host gcw megan 192.168.90.1/24 trust
host gcw megan 127.0.0.1/32 trust
# gcw
local gcw gcw trust
host gcw gcw 192.168.90.1/24 trust
host gcw gcw 127.0.0.1/32 trust
'';
identMap = ''
# ArbitraryMapName systemUser DBUser
superuser_map root postgres
superuser_map postgres postgres
# Let other names login as themselves
superuser_map richie postgres
superuser_map hass hass
'';
ensureUsers = [
{
name = "postgres";
ensureClauses = {
superuser = true;
login = true;
createrole = true;
createdb = true;
replication = true;
};
}
{
name = "richie";
ensureDBOwnership = true;
ensureClauses = {
superuser = true;
login = true;
createrole = true;
createdb = true;
replication = true;
};
}
{
name = "hass";
ensureDBOwnership = true;
ensureClauses = {
login = true;
createrole = true;
createdb = true;
replication = true;
};
}
{
name = "megan";
ensureDBOwnership = true;
ensureClauses = {
login = true;
createrole = true;
createdb = true;
replication = true;
};
}
{
name = "gcw";
ensureDBOwnership = true;
ensureClauses = {
login = true;
createrole = true;
createdb = true;
replication = true;
};
}
];
ensureDatabases = [
"gcw"
"hass"
"megan"
"mxr_dev"
"mxr_prod"
"richie"
];
# Thank you NotAShelf
# https://github.com/NotAShelf/nyx/blob/d407b4d6e5ab7f60350af61a3d73a62a5e9ac660/modules/core/roles/server/system/services/databases/postgresql.nix#L74
settings = {
# Connectivity;
max_connections = 100;
superuser_reserved_connections = 3;
# Memory Settings;
shared_buffers = "1024 MB";
work_mem = "32 MB";
maintenance_work_mem = "320 MB";
huge_pages = "off";
effective_cache_size = "2 GB";
effective_io_concurrency = 100; # concurrent IO only really activated if OS supports posix_fadvise function;
random_page_cost = 1.25; # speed of random disk access relative to sequential access (1.0);
# Monitoring;
shared_preload_libraries = "pg_stat_statements,auto_explain"; # per statement resource usage stats & log explain statements for slow queries
track_io_timing = "on"; # measure exact block IO times;
track_functions = "pl"; # track execution times of pl-language procedures if any;
# Replication;
wal_level = "replica"; # consider using at least "replica";
max_wal_senders = 0;
synchronous_commit = "on";
# Checkpointing: ;
checkpoint_timeout = "15 min";
checkpoint_completion_target = 0.9;
max_wal_size = "1024 MB";
min_wal_size = "512 MB";
# WAL writing;
wal_compression = "on";
wal_buffers = -1; # auto-tuned by Postgres till maximum of segment size (16MB by default);
wal_writer_delay = "200ms";
wal_writer_flush_after = "1MB";
# Background writer;
bgwriter_delay = "200ms";
bgwriter_lru_maxpages = 100;
bgwriter_lru_multiplier = 2.0;
bgwriter_flush_after = 0;
# Parallel queries: ;
max_worker_processes = 6;
max_parallel_workers_per_gather = 3;
max_parallel_maintenance_workers = 3;
max_parallel_workers = 6;
parallel_leader_participation = "on";
# Advanced features ;
enable_partitionwise_join = "on";
enable_partitionwise_aggregate = "on";
jit = "on";
jit_above_cost = 100000;
jit_inline_above_cost = 150000;
jit_optimize_above_cost = 500000;
# log slow queries
log_min_duration_statement = 100;
"auto_explain.log_min_duration" = 100;
# logging configuration
log_connections = true;
log_statement = "all";
logging_collector = true;
log_disconnections = true;
};
};
}

View File

@@ -4,7 +4,7 @@
... ...
}: }:
let let
vars = import ./vars.nix; vars = import ../vars.nix;
in in
{ {
systemd = { systemd = {
@@ -13,7 +13,7 @@ in
description = "maintains /zfs/storage/plex permissions"; description = "maintains /zfs/storage/plex permissions";
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
ExecStart = "${pkgs.bash}/bin/bash ${./scripts/plex_permission.sh}"; ExecStart = "${pkgs.bash}/bin/bash ${../scripts/plex_permission.sh}";
}; };
}; };
startup_validation = { startup_validation = {
@@ -23,9 +23,9 @@ in
description = "validates startup"; description = "validates startup";
path = [ pkgs.zfs ]; path = [ pkgs.zfs ];
serviceConfig = { serviceConfig = {
EnvironmentFile = "${vars.storage_secrets}/services/server-validation"; EnvironmentFile = "${vars.secrets}/services/server-validation";
Type = "oneshot"; Type = "oneshot";
ExecStart = "${inputs.system_tools.packages.x86_64-linux.default}/bin/validate_jeeves"; ExecStart = "${inputs.system_tools.packages.x86_64-linux.default}/bin/validate_system --config-file='${./validate_system.toml}'";
}; };
}; };
}; };

View File

@@ -0,0 +1,32 @@
{ pkgs, ... }:
let
vars = import ../vars.nix;
in
{
services.transmission = {
enable = true;
package = pkgs.transmission_4;
webHome = pkgs.flood-for-transmission;
home = "${vars.services}/transmission";
openPeerPorts = true;
openRPCPort = true;
downloadDirPermissions = "770";
settings = {
bind-address-ipv4 = "192.168.99.14";
cache-size-mb = 0;
download-dir = "${vars.transmission}/complete";
download-queue-enabled = false;
incomplete-dir = "${vars.transmission_scratch}/incomplete";
incomplete-dir-enabled = true;
message-level = 3;
peer-port = 51413;
rpc-bind-address = "0.0.0.0";
rpc-host-whitelist = "127.0.0.1,192.168.90.40";
rpc-host-whitelist-enabled = true;
rpc-port = 9091;
rpc-whitelist-enabled = true;
rpc-whitelist = "127.0.0.1,192.168.90.49";
seed-queue-enabled = false;
};
};
}

View File

@@ -0,0 +1,11 @@
zpool = ["root_pool", "storage", "media"]
services = [
"audiobookshelf",
"cloud_flare_tunnel",
"haproxy",
"docker-qbitvpn",
"docker",
"filebrowser",
"home-assistant",
"jellyfin",
]

View File

@@ -2,28 +2,34 @@ let
vars = import ./vars.nix; vars = import ./vars.nix;
in in
{ {
networking.firewall.allowedTCPPorts = [ 8384 ];
services.syncthing = { services.syncthing = {
overrideFolders = false;
guiAddress = "192.168.90.40:8384"; guiAddress = "192.168.90.40:8384";
settings.folders = { settings = {
"bob_temp" = { devices.davids-server.id = "7GXTDGR-AOXFW2O-K6J7NM3-XYZNRRW-AKHAFWM-GBOWUPQ-OA6JIWD-ER7RDQL"; # cspell:disable-line
path = "${vars.storage_syncthing}/bob_temp"; folders = {
devices = [ "dotfiles" = {
"jeeves" path = "/home/richie/dotfiles";
];
fsWatcherEnabled = true;
};
"notes" = {
id = "l62ul-lpweo"; # cspell:disable-line
path = vars.media_notes;
devices = [ devices = [
"bob" "bob"
"rhapsody-in-green" "rhapsody-in-green"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };
"notes" = {
id = "l62ul-lpweo"; # cspell:disable-line
path = vars.notes;
devices = [
"rhapsody-in-green"
"davids-server"
];
fsWatcherEnabled = true;
};
"important" = { "important" = {
id = "4ckma-gtshs"; # cspell:disable-line id = "4ckma-gtshs"; # cspell:disable-line
path = "${vars.storage_syncthing}/important"; path = "${vars.syncthing}/important";
devices = [ devices = [
"bob" "bob"
"rhapsody-in-green" "rhapsody-in-green"
@@ -33,7 +39,7 @@ in
}; };
"music" = { "music" = {
id = "vprc5-3azqc"; # cspell:disable-line id = "vprc5-3azqc"; # cspell:disable-line
path = "${vars.storage_syncthing}/music"; path = "${vars.syncthing}/music";
devices = [ devices = [
"bob" "bob"
"rhapsody-in-green" "rhapsody-in-green"
@@ -44,20 +50,81 @@ in
}; };
"projects" = { "projects" = {
id = "vyma6-lqqrz"; # cspell:disable-line id = "vyma6-lqqrz"; # cspell:disable-line
path = "${vars.storage_syncthing}/projects"; path = "${vars.syncthing}/projects";
devices = [ devices = [
"bob"
"rhapsody-in-green" "rhapsody-in-green"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };
"rhapsody-in-green_temp" = { "rhapsody-in-green_temp" = {
path = "${vars.storage_syncthing}/rhapsody-in-green_temp"; path = "${vars.syncthing}/rhapsody-in-green_temp";
devices = [ devices = [
"rhapsody-in-green" "rhapsody-in-green"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };
"vault" = {
path = "/home/richie/vault";
devices = [
"rhapsody-in-green"
"davids-server"
];
fsWatcherEnabled = true;
};
"backup" = {
path = "${vars.syncthing}/backup";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
};
#
"davids-backup1" = {
id = "8229p-8z3tm"; # cspell:disable-line
path = "${vars.syncthing}/davids_backups/1";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
"davids-backup2" = {
id = "iciw3-dp6ao"; # cspell:disable-line
path = "${vars.syncthing}/davids_backups/2";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
"davids-backup3" = {
id = "9si6m-bnkjb"; # cspell:disable-line
path = "${vars.syncthing}/davids_backups/3";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
"davids-backup4" = {
id = "qjyfy-uupj4"; # cspell:disable-line
path = "${vars.syncthing}/davids_backups/4";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
"davids-backup5" = {
id = "fm4h5-emsu2"; # cspell:disable-line
path = "${vars.syncthing}/davids_backups/5";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
};
}; };
}; };
} }

View File

@@ -1,26 +1,21 @@
let let
zfs_media = "/zfs/media"; zfs_media = "/zfs/media";
zfs_storage = "/zfs/storage"; zfs_storage = "/zfs/storage";
zfs_torrenting = "/zfs/torrenting"; zfs_scratch = "/zfs/scratch";
in in
{ {
inherit zfs_media zfs_storage zfs_torrenting; inherit zfs_media zfs_storage zfs_scratch;
# media database = "${zfs_media}/database";
media_database = "${zfs_media}/database"; docker = "${zfs_media}/docker";
media_docker = "${zfs_media}/docker"; docker_configs = "${zfs_media}/docker/configs";
media_docker_configs = "${zfs_media}/docker/configs"; home_assistant = "${zfs_media}/home_assistant";
media_mirror = "${zfs_media}/mirror"; notes = "${zfs_media}/notes";
media_notes = "${zfs_media}/notes"; qbitvpn = "${zfs_storage}/qbitvpn";
media_plex = "${zfs_media}/plex"; qbitvpn_scratch = "${zfs_scratch}/qbitvpn";
media_home_assistant = "${zfs_media}/home_assistant"; secrets = "${zfs_storage}/secrets";
# storage services = "${zfs_media}/services";
storage_main = "${zfs_storage}/main"; share = "${zfs_media}/share";
storage_photos = "${zfs_storage}/photos"; syncthing = "${zfs_storage}/syncthing";
storage_plex = "${zfs_storage}/plex"; transmission = "${zfs_storage}/transmission";
storage_secrets = "${zfs_storage}/secrets"; transmission_scratch = "${zfs_scratch}/transmission";
storage_syncthing = "${zfs_storage}/syncthing";
storage_library = "${zfs_storage}/library";
# torrenting
torrenting_qbit = "${zfs_torrenting}/qbit";
torrenting_qbitvpn = "${zfs_torrenting}/qbitvpn";
} }

View File

@@ -1,61 +0,0 @@
{ 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";
}

View File

@@ -1,63 +0,0 @@
{ 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;
}

View File

@@ -22,28 +22,8 @@
networkmanager.enable = true; networkmanager.enable = true;
}; };
hardware = {
pulseaudio.enable = false;
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
security.rtkit.enable = true;
services = { services = {
openssh.ports = [ 922 ]; openssh.ports = [ 922 ];
printing.enable = true;
snapshot_manager.enable = true;
zfs = {
trim.enable = true;
autoScrub.enable = true;
};
}; };
system.stateVersion = "24.05"; system.stateVersion = "24.05";

View File

@@ -1,4 +1,9 @@
{ config, lib, modulesPath, ... }: {
config,
lib,
modulesPath,
...
}:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];

View File

@@ -1,10 +1,17 @@
{ {
services.syncthing.settings.folders = { services.syncthing.settings.folders = {
"dotfiles" = {
path = "/home/richie/dotfiles";
devices = [
"jeeves"
"bob"
];
fsWatcherEnabled = true;
};
"notes" = { "notes" = {
id = "l62ul-lpweo"; # cspell:disable-line id = "l62ul-lpweo"; # cspell:disable-line
path = "/home/richie/notes"; path = "/home/richie/notes";
devices = [ devices = [
"bob"
"jeeves" "jeeves"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
@@ -34,7 +41,6 @@
id = "vyma6-lqqrz"; # cspell:disable-line id = "vyma6-lqqrz"; # cspell:disable-line
path = "/home/richie/projects"; path = "/home/richie/projects";
devices = [ devices = [
"bob"
"jeeves" "jeeves"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
@@ -50,7 +56,7 @@
"vault" = { "vault" = {
path = "/home/richie/vault"; path = "/home/richie/vault";
devices = [ devices = [
"bob" "jeeves"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };

View File

@@ -2,8 +2,10 @@
from __future__ import annotations from __future__ import annotations
import curses
import logging import logging
import sys import sys
from collections import defaultdict
from os import getenv from os import getenv
from pathlib import Path from pathlib import Path
from random import getrandbits from random import getrandbits
@@ -109,7 +111,9 @@ def create_zfs_pool(pool_disks: Sequence[str], mnt_dir: str) -> None:
"-O normalization=formD " "-O normalization=formD "
"-O relatime=on " "-O relatime=on "
"-O xattr=sa " "-O xattr=sa "
"-O mountpoint=none " "-O mountpoint=legacy "
"-O compression=zstd "
"-O atime=off "
"root_pool " "root_pool "
) )
if len(pool_disks) == 1: if len(pool_disks) == 1:
@@ -127,26 +131,100 @@ def create_zfs_pool(pool_disks: Sequence[str], mnt_dir: str) -> None:
def create_zfs_datasets() -> None: def create_zfs_datasets() -> None:
"""Create ZFS datasets.""" """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}")
bash_wrapper("zfs create -o canmount=noauto -o reservation=10G root_pool/root")
bash_wrapper("zfs create root_pool/home")
bash_wrapper("zfs create root_pool/var -o reservation=1G")
bash_wrapper("zfs create -o compression=zstd-9 -o reservation=10G root_pool/nix")
datasets = bash_wrapper("zfs list -o name") datasets = bash_wrapper("zfs list -o name")
expected_datasets = {"root_pool/root", "root_pool/home", "root_pool/var"} expected_datasets = {
"root_pool/root",
"root_pool/home",
"root_pool/var",
"root_pool/nix",
}
missing_datasets = expected_datasets.difference(datasets.splitlines()) missing_datasets = expected_datasets.difference(datasets.splitlines())
if missing_datasets: if missing_datasets:
logging.critical(f"Failed to create pools {missing_datasets}") logging.critical(f"Failed to create pools {missing_datasets}")
sys.exit(1) sys.exit(1)
def get_cpu_manufacturer() -> str:
"""Get the CPU manufacturer."""
output = bash_wrapper("cat /proc/cpuinfo")
id_vendor = {"AuthenticAMD": "amd", "GenuineIntel": "intel"}
for line in output.splitlines():
if "vendor_id" in line:
return id_vendor[line.split(": ")[1].strip()]
def get_boot_drive_id(disk: str) -> str:
"""Get the boot drive ID."""
output = bash_wrapper(f"lsblk -o UUID {disk}-part1")
return output.splitlines()[1]
def create_nix_hardware_file(mnt_dir: str, disks: Sequence[str], encrypt: bool) -> None:
"""Create a NixOS hardware file."""
cpu_manufacturer = get_cpu_manufacturer()
devices = ""
if encrypt:
disk = disks[0]
devices = (
f' luks.devices."luks-root-pool-{disk.split("/")[-1]}-part2"'
"= {\n"
f' device = "{disk}-part2";\n'
" bypassWorkqueues = true;\n"
" allowDiscards = true;\n"
" };\n"
)
host_id = format(getrandbits(32), "08x")
nix_hardware = (
"{ config, lib, modulesPath, ... }:\n"
"{\n"
' imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];\n\n'
" boot = {\n"
" initrd = {\n"
' availableKernelModules = [ \n "ahci"\n "ehci_pci"\n "nvme"\n "sd_mod"\n "usb_storage"\n "usbhid"\n "xhci_pci"\n ];\n'
" kernelModules = [ ];\n"
f" {devices}"
" };\n"
f' kernelModules = [ "kvm-{cpu_manufacturer}" ];\n'
" extraModulePackages = [ ];\n"
" };\n\n"
" fileSystems = {\n"
' "/" = lib.mkDefault {\n device = "root_pool/root";\n fsType = "zfs";\n };\n\n'
' "/home" = {\n device = "root_pool/home";\n fsType = "zfs";\n };\n\n'
' "/var" = {\n device = "root_pool/var";\n fsType = "zfs";\n };\n\n'
' "/nix" = {\n device = "root_pool/nix";\n fsType = "zfs";\n };\n\n'
' "/boot" = {\n'
f' device = "/dev/disk/by-uuid/{get_boot_drive_id(disks[0])}";\n'
' fsType = "vfat";\n options = [\n "fmask=0077"\n "dmask=0077"\n ];\n };\n };\n\n'
" swapDevices = [ ];\n\n"
" networking.useDHCP = lib.mkDefault true;\n\n"
' nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";\n'
f" hardware.cpu.{cpu_manufacturer}.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;\n"
f' networking.hostId = "{host_id}";\n'
"}\n"
)
Path(f"{mnt_dir}/etc/nixos/hardware-configuration.nix").write_text(nix_hardware)
def install_nixos(mnt_dir: str, disks: Sequence[str], encrypt: bool) -> None: def install_nixos(mnt_dir: str, disks: Sequence[str], encrypt: bool) -> None:
"""Install NixOS.""" """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/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/home {mnt_dir}/home")
bash_wrapper(f"mount -o X-mount.mkdir -t zfs root_pool/var {mnt_dir}/var") bash_wrapper(f"mount -o X-mount.mkdir -t zfs root_pool/var {mnt_dir}/var")
bash_wrapper(f"mount -o X-mount.mkdir -t zfs root_pool/nix {mnt_dir}/nix")
for disk in disks: for disk in disks:
bash_wrapper(f"mkfs.vfat -n EFI {disk}-part1") bash_wrapper(f"mkfs.vfat -n EFI {disk}-part1")
@@ -157,43 +235,20 @@ def install_nixos(mnt_dir: str, disks: Sequence[str], encrypt: bool) -> None:
bash_wrapper(f"nixos-generate-config --root {mnt_dir}") bash_wrapper(f"nixos-generate-config --root {mnt_dir}")
host_id = format(getrandbits(32), "08x") create_nix_hardware_file(mnt_dir, disks, encrypt)
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 run(("nixos-install", "--root", mnt_dir), check=True) # noqa: S603
def main() -> None: def installer(
disks: set[str],
swap_size: int,
reserve: int,
encrypt_key: str | None,
) -> None:
"""Main.""" """Main."""
configure_logger("DEBUG")
logging.info("Starting installation") 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: for disk in disks:
partition_disk(disk, swap_size, reserve) partition_disk(disk, swap_size, reserve)
@@ -211,7 +266,7 @@ def main() -> None:
if encrypt_key: if encrypt_key:
pool_disks = [ pool_disks = [
f'/dev/mapper/luks-root-pool-{disk.split("/")[-1]}-part2' for disk in disks f"/dev/mapper/luks-root-pool-{disk.split('/')[-1]}-part2" for disk in disks
] ]
else: else:
pool_disks = [f"{disk}-part2" for disk in disks] pool_disks = [f"{disk}-part2" for disk in disks]
@@ -225,5 +280,403 @@ def main() -> None:
logging.info("Installation complete") logging.info("Installation complete")
class Cursor:
def __init__(self):
self.x_position = 0
self.y_position = 0
self.height = 0
self.width = 0
def set_height(self, height: int):
self.height = height
def set_width(self, width: int):
self.width = width
def x_bounce_check(self, cursor: int) -> int:
cursor = max(0, cursor)
return min(self.width - 1, cursor)
def y_bounce_check(self, cursor: int) -> int:
cursor = max(0, cursor)
return min(self.height - 1, cursor)
def set_x(self, x: int):
self.x_position = self.x_bounce_check(x)
def set_y(self, y: int):
self.y_position = self.y_bounce_check(y)
def get_x(self) -> int:
return self.x_position
def get_y(self) -> int:
return self.y_position
def move_up(self):
self.set_y(self.y_position - 1)
def move_down(self):
self.set_y(self.y_position + 1)
def move_left(self):
self.set_x(self.x_position - 1)
def move_right(self):
self.set_x(self.x_position + 1)
def navigation(self, key: int) -> None:
action = {
curses.KEY_DOWN: self.move_down,
curses.KEY_UP: self.move_up,
curses.KEY_RIGHT: self.move_right,
curses.KEY_LEFT: self.move_left,
}
action.get(key, lambda: None)()
class State:
"""State class to store the state of the program."""
def __init__(self):
self.key = 0
self.cursor = Cursor()
self.swap_size = 0
self.show_swap_input = False
self.reserve_size = 0
self.show_reserve_input = False
self.selected_device_ids = set()
def get_selected_devices(self) -> tuple[str]:
"""Get selected devices."""
return tuple(self.selected_device_ids)
def get_device(raw_device: str) -> dict[str, str]:
raw_device_components = raw_device.split(" ")
return {
thing.split("=")[0].lower(): thing.split("=")[1].strip('"')
for thing in raw_device_components
}
def get_devices() -> list[dict[str, str]]:
"""Get a list of devices."""
# --bytes
raw_devices = bash_wrapper("lsblk --paths --pairs").splitlines()
return [get_device(raw_device) for raw_device in raw_devices]
def get_device_id_mapping() -> dict[str, set[str]]:
"""Get a list of device ids.
Returns:
list[str]: the list of device ids
"""
device_ids = bash_wrapper("find /dev/disk/by-id -type l").splitlines()
device_id_mapping: dict[str, set[str]] = defaultdict(set)
for device_id in device_ids:
device = bash_wrapper(f"readlink -f {device_id}").strip()
device_id_mapping[device].add(device_id)
return device_id_mapping
def calculate_device_menu_padding(
devices: list[dict[str, str]], column: str, padding: int = 0
) -> int:
return max(len(device[column]) for device in devices) + padding
def draw_device_ids(
state: State,
row_number: int,
menu_start_x: int,
std_screen: curses.window,
menu_width: list[int],
device_ids: set[str],
) -> tuple[State, int]:
for device_id in sorted(device_ids):
row_number = row_number + 1
if row_number == state.cursor.get_y() and state.cursor.get_x() in menu_width:
std_screen.attron(curses.A_BOLD)
if state.key == ord(" "):
if device_id not in state.selected_device_ids:
state.selected_device_ids.add(device_id)
else:
state.selected_device_ids.remove(device_id)
if device_id in state.selected_device_ids:
std_screen.attron(curses.color_pair(7))
std_screen.addstr(row_number, menu_start_x, f" {device_id}")
std_screen.attroff(curses.color_pair(7))
std_screen.attroff(curses.A_BOLD)
return state, row_number
def draw_device_menu(
std_screen: curses.window,
devices: list[dict[str, str]],
device_id_mapping: dict[str, set[str]],
state: State,
menu_start_y: int = 0,
menu_start_x: int = 0,
) -> State:
"""draw the device menu and handle user input
Args:
std_screen (curses.window): the curses window to draw on
devices (list[dict[str, str]]): the list of devices to draw
device_id_mapping (dict[str, set[str]]): the list of device ids to draw
state (State): the state object to update
menu_start_y (int, optional): the y position to start drawing the menu. Defaults to 0.
menu_start_x (int, optional): the x position to start drawing the menu. Defaults to 0.
Returns:
State: the updated state object
"""
padding = 2
name_padding = calculate_device_menu_padding(devices, "name", padding)
size_padding = calculate_device_menu_padding(devices, "size", padding)
type_padding = calculate_device_menu_padding(devices, "type", padding)
mountpoints_padding = calculate_device_menu_padding(devices, "mountpoints", padding)
device_header = f"{'Name':{name_padding}}{'Size':{size_padding}}{'Type':{type_padding}}{'Mountpoints':{mountpoints_padding}}"
menu_width = range(menu_start_x, len(device_header) + menu_start_x)
std_screen.addstr(menu_start_y, menu_start_x, device_header, curses.color_pair(5))
devises_list_start = menu_start_y + 1
row_number = devises_list_start
for device in devices:
row_number = row_number + 1
device_name = device["name"]
device_row = (
f"{device_name:{name_padding}}"
f"{device['size']:{size_padding}}"
f"{device['type']:{type_padding}}"
f"{device['mountpoints']:{mountpoints_padding}}"
)
std_screen.addstr(row_number, menu_start_x, device_row)
state, row_number = draw_device_ids(
state=state,
row_number=row_number,
menu_start_x=menu_start_x,
std_screen=std_screen,
menu_width=menu_width,
device_ids=device_id_mapping[device_name],
)
return state, row_number
def debug_menu(std_screen: curses.window, key: int) -> None:
height, width = std_screen.getmaxyx()
width_height = "Width: {}, Height: {}".format(width, height)
std_screen.addstr(height - 4, 0, width_height, curses.color_pair(5))
key_pressed = f"Last key pressed: {key}"[: width - 1]
if key == 0:
key_pressed = "No key press detected..."[: width - 1]
std_screen.addstr(height - 3, 0, key_pressed)
for i in range(0, 8):
std_screen.addstr(height - 2, i * 3, f"{i}██", curses.color_pair(i))
def status_bar(
std_screen: curses.window,
cursor: Cursor,
width: int,
height: int,
) -> None:
std_screen.attron(curses.A_REVERSE)
std_screen.attron(curses.color_pair(3))
status_bar = (
f"Press 'q' to exit | STATUS BAR | Pos: {cursor.get_x()}, {cursor.get_y()}"
)
std_screen.addstr(height - 1, 0, status_bar)
std_screen.addstr(height - 1, len(status_bar), " " * (width - len(status_bar) - 1))
std_screen.attroff(curses.color_pair(3))
std_screen.attroff(curses.A_REVERSE)
def set_color() -> None:
curses.start_color()
curses.use_default_colors()
for i in range(0, curses.COLORS):
curses.init_pair(i + 1, i, -1)
def get_text_input(std_screen: curses.window, prompt: str, y: int, x: int) -> str:
curses.echo()
std_screen.addstr(y, x, prompt)
input_str = ""
while True:
key = std_screen.getch()
if key == ord("\n"):
break
elif key == 27: # ESC key
input_str = ""
break
elif key in (curses.KEY_BACKSPACE, ord("\b"), 127):
input_str = input_str[:-1]
std_screen.addstr(y, x + len(prompt), input_str + " ")
else:
input_str += chr(key)
std_screen.refresh()
curses.noecho()
return input_str
def swap_size_input(
std_screen: curses.window,
state: State,
swap_offset: int,
) -> State:
swap_size_text = "Swap size (GB): "
std_screen.addstr(swap_offset, 0, f"{swap_size_text}{state.swap_size}")
if state.key == ord("\n") and state.cursor.get_y() == swap_offset:
state.show_swap_input = True
if state.show_swap_input:
swap_size_str = get_text_input(std_screen, swap_size_text, swap_offset, 0)
try:
state.swap_size = int(swap_size_str)
state.show_swap_input = False
except ValueError:
std_screen.addstr(
swap_offset, 0, "Invalid input. Press any key to continue."
)
std_screen.getch()
state.show_swap_input = False
return state
def reserve_size_input(
std_screen: curses.window,
state: State,
reserve_offset: int,
) -> State:
reserve_size_text = "reserve size (GB): "
std_screen.addstr(reserve_offset, 0, f"{reserve_size_text}{state.reserve_size}")
if state.key == ord("\n") and state.cursor.get_y() == reserve_offset:
state.show_reserve_input = True
if state.show_reserve_input:
reserve_size_str = get_text_input(
std_screen, reserve_size_text, reserve_offset, 0
)
try:
state.reserve_size = int(reserve_size_str)
state.show_reserve_input = False
except ValueError:
std_screen.addstr(
reserve_offset, 0, "Invalid input. Press any key to continue."
)
std_screen.getch()
state.show_reserve_input = False
return state
def draw_menu(std_screen: curses.window) -> State:
"""draw the menu and handle user input
Args:
std_screen (curses.window): the curses window to draw on
Returns:
State: the state object
"""
# Clear and refresh the screen for a blank canvas
std_screen.clear()
std_screen.refresh()
set_color()
state = State()
devices = get_devices()
device_id_mapping = get_device_id_mapping()
# Loop where k is the last character pressed
while state.key != ord("q"):
std_screen.clear()
height, width = std_screen.getmaxyx()
state.cursor.set_height(height)
state.cursor.set_width(width)
state.cursor.navigation(state.key)
state, device_menu_size = draw_device_menu(
std_screen=std_screen,
state=state,
devices=devices,
device_id_mapping=device_id_mapping,
)
swap_offset = device_menu_size + 2
swap_size_input(
std_screen=std_screen,
state=state,
swap_offset=swap_offset,
)
reserve_size_input(
std_screen=std_screen,
state=state,
reserve_offset=swap_offset + 1,
)
status_bar(std_screen, state.cursor, width, height)
debug_menu(std_screen, state.key)
std_screen.move(state.cursor.get_y(), state.cursor.get_x())
std_screen.refresh()
state.key = std_screen.getch()
return state
def main() -> None:
configure_logger("DEBUG")
state = curses.wrapper(draw_menu)
encrypt_key = getenv("ENCRYPT_KEY")
logging.info("installing_nixos")
logging.info(f"disks: {state.selected_device_ids}")
logging.info(f"swap_size: {state.swap_size}")
logging.info(f"reserve: {state.reserve_size}")
logging.info(f"encrypted: {bool(encrypt_key)}")
sleep(3)
installer(
disks=state.get_selected_devices(),
swap_size=state.swap_size,
reserve=state.reserve_size,
encrypt_key=encrypt_key,
)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

14
treefmt.toml Normal file
View File

@@ -0,0 +1,14 @@
# One CLI to format the code tree - https://github.com/numtide/treefmt
[global]
# Glob patterns of files to exclude
excludes = [".git/"]
[formatter.nixfmt]
# Formatter to run
command = "nixfmt"
# Command-line arguments for the command
#options = []
# Glob pattern of files to include
includes = ["*.nix"]

View File

@@ -4,13 +4,19 @@
... ...
}: }:
{ {
sops.secrets.gaming_password = {
sopsFile = ../secrets.yaml;
neededForUsers = true;
};
users = { users = {
users.gaming = { users.gaming = {
isNormalUser = true; isNormalUser = true;
hashedPasswordFile = "${config.sops.secrets.gaming_password.path}";
shell = pkgs.zsh; shell = pkgs.zsh;
group = "gaming"; group = "gaming";
extraGroups = extraGroups = [
[
"audio" "audio"
"video" "video"
"users" "users"

View File

@@ -1,251 +0,0 @@
{ inputs, ... }:
{
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 = "Google";
order = [ "Google" ];
};
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;
# 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
};
};
};
}

View File

@@ -13,8 +13,5 @@
username = "gaming"; username = "gaming";
homeDirectory = "/home/${config.home.username}"; homeDirectory = "/home/${config.home.username}";
stateVersion = "24.05"; stateVersion = "24.05";
sessionVariables = {
FLAKE = "$HOME/Projects/dotfiles";
};
}; };
} }

View File

@@ -1,6 +1,8 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
wget chromium
vscode
firefox
]; ];
} }

View File

@@ -1,6 +1,5 @@
{ {
imports = [ imports = [
../home/global.nix ../home/global.nix
../home/gui
]; ];
} }

30
users/megan/default.nix Normal file
View File

@@ -0,0 +1,30 @@
{
pkgs,
config,
...
}:
{
sops.secrets.megan_password = {
sopsFile = ../secrets.yaml;
neededForUsers = true;
};
users = {
users.megan = {
isNormalUser = true;
hashedPasswordFile = "${config.sops.secrets.megan_password.path}";
shell = pkgs.zsh;
group = "megan";
extraGroups = [
"audio"
"video"
"users"
];
uid = 1101;
};
groups.megan.gid = 1101;
};
home-manager.users.megan = import ./systems/${config.networking.hostName}.nix;
}

View File

@@ -0,0 +1,9 @@
{
imports = [
./direnv.nix
./git.nix
./zsh.nix
];
programs.starship.enable = true;
}

View File

@@ -0,0 +1,8 @@
{
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
}

View File

@@ -0,0 +1,12 @@
{
programs.git = {
enable = true;
userEmail = "mousikos112@gmail.com";
userName = "megan";
extraConfig = {
pull.rebase = true;
color.ui = true;
};
lfs.enable = true;
};
}

View File

@@ -0,0 +1,31 @@
{
programs.zsh = {
enable = true;
syntaxHighlighting.enable = true;
history.size = 10000;
oh-my-zsh = {
enable = true;
plugins = [
"git"
"docker"
"docker-compose"
"colored-man-pages"
"rust"
"systemd"
"tmux"
"ufw"
"z"
];
};
shellAliases = {
"lrt" = "eza --icons -lsnew";
"ls" = "eza";
"ll" = "eza --long --group";
"la" = "eza --all";
"rspace" = "'for f in *\ *; do mv \"$f\" \"\${f// /_}\"; done'";
"rebuild" = "sudo nixos-rebuild switch --flake /home/richie/dotfiles#$HOST";
"nix-test" = "nixos-rebuild test --flake /home/richie/dotfiles";
};
};
}

View File

@@ -0,0 +1,18 @@
{ config, ... }:
{
imports = [
./cli
./programs.nix
];
programs = {
home-manager.enable = true;
git.enable = true;
};
home = {
username = "megan";
homeDirectory = "/home/${config.home.username}";
stateVersion = "24.05";
};
}

View File

@@ -0,0 +1,42 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
# cli
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
lynis
pciutils
smartmontools
usbutils
# networking
iperf3
nmap
wget
# python
poetry
python313
ruff
];
}

View File

@@ -1,6 +1,5 @@
{ {
imports = [ imports = [
../home/global.nix ../home/global.nix
../home/firefox.nix
]; ];
} }

View File

@@ -2,15 +2,26 @@
pkgs, pkgs,
config, config,
... ...
}: let }:
let
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in { in
users.users.richie = { {
sops.secrets.richie_password = {
sopsFile = ../secrets.yaml;
neededForUsers = true;
};
users = {
users.richie = {
isNormalUser = true; isNormalUser = true;
hashedPasswordFile = "${config.sops.secrets.richie_password.path}";
shell = pkgs.zsh; shell = pkgs.zsh;
group = "richie"; group = "richie";
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIPtuYhiJHRTYhNaDmTcJOqJASk7D8mIn6u3F1IN5AFJ bob" # cspell:disable-line
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJYZFsc9CSH03ZUP7y81AHwSyjLwFmcshVFCyxDcYhBT rhapsody-in-green" # cspell:disable-line "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJYZFsc9CSH03ZUP7y81AHwSyjLwFmcshVFCyxDcYhBT rhapsody-in-green" # cspell:disable-line
]; ];
extraGroups = extraGroups =
@@ -28,14 +39,14 @@ in {
"networkmanager" "networkmanager"
"plugdev" "plugdev"
"scanner" "scanner"
"transmission"
"uaccess" "uaccess"
"wireshark" "wireshark"
]; ];
uid = 1000; uid = 1000;
}; };
users.groups.richie = { groups.richie.gid = 1000;
gid = 1000;
}; };
home-manager.users.richie = import ./systems/${config.networking.hostName}.nix; home-manager.users.richie = import ./systems/${config.networking.hostName}.nix;

View File

@@ -3,5 +3,10 @@
enable = true; enable = true;
userEmail = "Richie@tmmworkshop.com"; userEmail = "Richie@tmmworkshop.com";
userName = "Richie Cahill"; userName = "Richie Cahill";
extraConfig = {
pull.rebase = true;
color.ui = true;
};
lfs.enable = true;
}; };
} }

View File

@@ -18,17 +18,14 @@
]; ];
}; };
shellAliases = { shellAliases = {
"sgc" = "sudo git -C /root/dotfiles";
## Utilities
"lrt" = "eza --icons -lsnew"; "lrt" = "eza --icons -lsnew";
"ls" = "eza"; "ls" = "eza";
"ll" = "eza --long --group"; "ll" = "eza --long --group";
"la" = "eza --all"; "la" = "eza --all";
"rspace" = "'for f in *\ *; do mv \"$f\" \"\${f// /_}\"; done'"; "rebuild" = "sudo nixos-rebuild switch --flake $HOME/dotfiles#$HOST";
"rebuild" = "sudo nixos-rebuild switch --flake /home/richie/projects/dotfiles#$HOST"; "rebuild_backup" =
"nix-test" = "nixos-rebuild test --flake /home/richie/projects/dotfiles"; "sudo nixos-rebuild switch --flake $HOME/dotfiles#$HOST --option substituters 'https://nix-community.cachix.org' --option trusted-public-keys 'cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY='";
}; };
}; };
} }

View File

@@ -16,7 +16,7 @@
homeDirectory = "/home/${config.home.username}"; homeDirectory = "/home/${config.home.username}";
stateVersion = "24.05"; stateVersion = "24.05";
sessionVariables = { sessionVariables = {
FLAKE = "$HOME/Projects/dotfiles"; FLAKE = "$HOME/dotfiles";
}; };
}; };
} }

View File

@@ -8,9 +8,12 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
candy-icons candy-icons
chromium
discord-canary discord-canary
gimp gimp
gparted gparted
jetbrains.datagrip
ladybird
mediainfo mediainfo
nemo nemo
nemo-fileroller nemo-fileroller

View File

@@ -5,7 +5,7 @@
programs.firefox = { programs.firefox = {
enable = true; enable = true;
profiles.richie = { profiles.richie = {
extensions = with inputs.firefox-addons.packages.x86_64-linux; [ extensions.packages = with inputs.firefox-addons.packages.x86_64-linux; [
bitwarden bitwarden
darkreader darkreader
dearrow dearrow
@@ -17,7 +17,11 @@
search = { search = {
force = true; force = true;
default = "kagi"; default = "kagi";
order = [ "kagi" "DuckDuckGo" "Google" ]; order = [
"kagi"
"ddg"
"google"
];
}; };
settings = { settings = {
# SECTION: FASTFOX # SECTION: FASTFOX
@@ -138,7 +142,8 @@
"permissions.default.desktop-notification" = 0; # allow websites to ask "permissions.default.desktop-notification" = 0; # allow websites to ask
# PREF: allow websites to ask you for your location # PREF: allow websites to ask you for your location
"permissions.default.geo" = 0; "permissions.default.geo" = 0;
"geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"; "geo.provider.network.url" =
"https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%";
"permissions.manager.defaultsUrl" = ""; "permissions.manager.defaultsUrl" = "";
"webchannel.allowObject.urlWhitelist" = ""; "webchannel.allowObject.urlWhitelist" = "";

View File

@@ -47,6 +47,21 @@
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@n" ]; definedAliases = [ "@n" ];
}; };
"Nix Packages pr-tracker" = {
urls = [
{
template = "https://nixpk.gs/pr-tracker.html?";
params = [
{
name = "pr";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@nprt" ];
};
"kagi" = { "kagi" = {
urls = [ urls = [
{ {

View File

@@ -1,4 +1,5 @@
{pkgs, ...}: { { pkgs, ... }:
{
programs.kitty = { programs.kitty = {
enable = true; enable = true;
font.name = "IntoneMono Nerd Font"; font.name = "IntoneMono Nerd Font";

View File

@@ -1,11 +1,13 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
vscode_dir = "/home/richie/projects/nix-dotfiles/users/richie/home/gui/vscode"; vscode_dir = "/home/richie/dotfiles/users/richie/home/gui/vscode";
in in
{ {
# mutable symlinks to key binds and settings # mutable symlinks to key binds and settings
xdg.configFile."Code/User/settings.json".source = config.lib.file.mkOutOfStoreSymlink "${vscode_dir}/settings.json"; xdg.configFile."Code/User/settings.json".source =
xdg.configFile."Code/User/keybindings.json".source = config.lib.file.mkOutOfStoreSymlink "${vscode_dir}/keybindings.json"; config.lib.file.mkOutOfStoreSymlink "${vscode_dir}/settings.json";
xdg.configFile."Code/User/keybindings.json".source =
config.lib.file.mkOutOfStoreSymlink "${vscode_dir}/keybindings.json";
home.packages = with pkgs; [ nil ]; home.packages = with pkgs; [ nil ];

View File

@@ -15,6 +15,7 @@
"terminal.integrated.scrollback": 10000, "terminal.integrated.scrollback": 10000,
"update.mode": "none", "update.mode": "none",
"workbench.colorTheme": "Default Dark+", "workbench.colorTheme": "Default Dark+",
"workbench.secondarySideBar.showLabels": false,
// turns off all sounds and announcements // turns off all sounds and announcements
"accessibility.signals.terminalCommandFailed": { "accessibility.signals.terminalCommandFailed": {
@@ -30,9 +31,24 @@
"announcement": "off" "announcement": "off"
}, },
// database settings
"sqltools.connections": [
{
"previewLimit": 50,
"server": "192.168.90.40",
"port": 5432,
"askForPassword": true,
"driver": "PostgreSQL",
"name": "main",
"database": "postgres",
"username": "richie"
}
],
// formatters // formatters
"[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[nix]": { "editor.defaultFormatter": "jnoortheen.nix-ide" }, "[nix]": { "editor.defaultFormatter": "jnoortheen.nix-ide" },
"[python]": { "editor.defaultFormatter": "charliermarsh.ruff" }, "[python]": { "editor.defaultFormatter": "charliermarsh.ruff" },
@@ -48,6 +64,9 @@
"nix.enableLanguageServer": true, "nix.enableLanguageServer": true,
"nix.serverPath": "nil", "nix.serverPath": "nil",
// python tools
"mypy.runUsingActiveInterpreter": true,
// force the use of rust-analyzer from dev shell // force the use of rust-analyzer from dev shell
"rust-analyzer.server.path": "rust-analyzer", "rust-analyzer.server.path": "rust-analyzer",
"redhat.telemetry.enabled": true, "redhat.telemetry.enabled": true,

View File

@@ -38,6 +38,7 @@
poetry poetry
python313 python313
ruff ruff
uv
# Rust packages # Rust packages
trunk trunk
wasm-pack wasm-pack
@@ -50,7 +51,8 @@
nix-output-monitor nix-output-monitor
nix-prefetch nix-prefetch
nix-tree nix-tree
nixpkgs-fmt nixfmt-rfc-style
treefmt
inputs.system_tools.packages.x86_64-linux.default inputs.system_tools.packages.x86_64-linux.default
]; ];
} }

View File

@@ -11,18 +11,11 @@
dynamicForwards = [ { port = 9050; } ]; dynamicForwards = [ { port = 9050; } ];
}; };
unlock-jeeves = { unlock-jeeves = {
hostname = "192.168.95.14"; hostname = "192.168.99.14";
user = "root"; user = "root";
identityFile = "~/.ssh/id_ed25519"; identityFile = "~/.ssh/id_ed25519";
port = 2222; port = 2222;
}; };
jeevesjr = {
hostname = "192.168.90.35";
user = "richie";
identityFile = "~/.ssh/id_ed25519";
port = 352;
dynamicForwards = [ { port = 9050; } ];
};
bob = { bob = {
hostname = "192.168.90.25"; hostname = "192.168.90.25";
user = "richie"; user = "richie";
@@ -36,12 +29,6 @@
identityFile = "~/.ssh/id_ed25519"; identityFile = "~/.ssh/id_ed25519";
port = 922; port = 922;
}; };
muninn = {
hostname = "192.168.98.52";
user = "richie";
identityFile = "~/.ssh/id_ed25519";
port = 295;
};
}; };
}; };
} }

55
users/secrets.yaml Normal file
View File

@@ -0,0 +1,55 @@
richie_password: ENC[AES256_GCM,data:DMi3M8aqrQ60APIofr8wJMh+VZ14hLRxz6jWZgzswr0pV/QVSX53ShBFr90ruO3mucOLYv0l+bI31covfqMAhXWBJp9wUgtC2Q==,iv:qgtn30hZfIL4dBnQSLkjbo7zPJA4m9TR0f52sTFc0v4=,tag:ydLbcGyXjv0fE+4b5ECX5w==,type:str]
gaming_password: ENC[AES256_GCM,data:i692UsQaCOjE4V1y9d8yYDlK+TRMIprCHJkhl1UBZRMqe9a2LTUtmbbn/xlCYQd2tADJvn+dkx1jLfV4CqaqWOj5YSUFfpgsEw==,iv:3Y7hXQcmpzNN7hF+BDvO52uFB4o5D0dHvxemJ0ZoSIM=,tag:zzLGNDVAMCs2GPMqXp2BtQ==,type:str]
megan_password: ENC[AES256_GCM,data:Udrs9OWFI2TDM1yxRwfy7uiONh1G3Mr9HabwpmRykp1Xw9KK+q245nxN7QQbR0AiTCyyyivhn6GB2+DvBBY/6UrN5iGs+LaXgg==,iv:n02HzE8jvWM5xDfaPB9BHxtfoAZQ/Tk80XuySY2NyoU=,tag:L9wPVy7zt6mp09qWhzdLpg==,type:str]
gcw_password: ENC[AES256_GCM,data:T5CliWyyw4igunGRokOW7dNTOQ7DbOhM4gLa8YN4gbVLEVU7n3jxAVF9Uy9zM7LBBqdLvyXnqGzC1HBSBmE+pKBV7YIN3aQkng==,iv:SLq4aeLHdwfq0+A4N6UO4Dz7oBoC0ZDKBr74hheHQFw=,tag:4a71PZcyzoWjOmYEPx07ag==,type:str]
sops:
age:
- recipient: age1u8zj599elqqvcmhxn8zuwrufsz8w8w366d3ayrljjejljt2q45kq8mxw9c
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqR1lUREVMR3hyTTFNZ3U0
NkFkY202RGtMS0taTjRnOEd4OGlsZ1VORUhFCnIxUlV1eS81N0U1NXpOcWYxSUU0
WER1cFY3a2lWU01tTUQ2Vk5VK2JmSDAKLS0tIHUxL3F5UWZ2aUwxd2JXZG5ybE9w
d29oZ1poZU5ZTlgxMmlsVWpoMUtFYjAKdRoXdqxfxyOL++pP0izdUuZngMcF24ne
OJ6kVJexJF9Hu9InwPeDtRboMhMi01gt6L5a47hOX5FUsi+4HbeVLQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age1q47vup0tjhulkg7d6xwmdsgrw64h4ax3la3evzqpxyy4adsmk9fs56qz3y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBWmJZWDZtWFJaTCtmdVNG
QkNiK1hFdWlnVFp0ZG01V1A3cFdtU2xGN1NBCm1oeXlLT3NYMC9lZDlHSnJGQUc1
RnppNjc0QnBqSW5XTWUxZExBMHhORDQKLS0tIHpJNDJBU25COGR2dlg5em5YcGZB
VTBqRjhZWkdmdVdoa0V0VmIzdm5hbTgKEa9hW6jU538meU2Sm//b7OUBqqjAHHL5
rluVCSMcrcoVtui0mB8vMoKeh6/n/qRLe38a/puvAj0q/PolN9ZEhA==
-----END AGE ENCRYPTED FILE-----
- recipient: age13lmqgc3jvkyah5e3vcwmj4s5wsc2akctcga0lpc0x8v8du3fxprqp4ldkv
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVlp4clVEb3Y4d0hzSEtW
dUMyb3V1aHlMS0Fvc0lGU3doRjE3SVFrNVdFCkpTQ1k2RTBIb2tzQ3UxajlPSWhY
ZzkwUWlDYWROZXpHMlFVaTM0MFlpMXcKLS0tIFNUN1QyRk41WkhPblZMbVFXNkZi
N1RkUVc0N0hIaUs3RXpXTWpDZTBOUXcKgOW6IV1mh3q8NT2Ky9EKlywWBaaCn5ML
bhfmmvt1Fndh2ys3poxODjNDiow34VxwhS+Ou0HsxsJ7zu7VvmPh0w==
-----END AGE ENCRYPTED FILE-----
- recipient: age1xzxryqq63x65yuza9lmmkud7crjjxpnkdew070yhx6xn7xe4tdws5twxsv
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnOXR6SWh2SlBWdjZVL3F1
ckd4N3JKNkkzYWtlRWN2QUFob3FJRkxQU1RNClllMDFMRE80ODROZDR3Y2g0Z2xs
aXJORTI1azEzbnhJMkZiNmNKZDBsOVUKLS0tIHZjV3BXaG9WVzNzVDZHYVdmOFdM
S3hZMkgvYkl5Ky9uYmpjVHpFUlMwYTgKIHxHRPMgEAgQNXg5lK2QkdBjMcamlxSp
HEoT/APYI/NN3V2l7mgfiH/fn2FXGdd3Ct5mqwp25GUYIp45zN3pqA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1ufnewppysaq2wwcl4ugngjz8pfzc5a35yg7luq0qmuqvctajcycs5lf6k4
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXSnNxaDVSbUJ2Y1NSc0hV
TWhzNzNRWTNhV1BBMFhPeVQ5eHkzb3Bkams4Ck1YdDExcU1WdExEQ0M1VXZpUzBV
L0xSTENrOEZlOU1XUHNUbEtHbURSK1UKLS0tIEJkaE9QOUdzN1VDbWFTSWd6RkY4
UzQzWEFtSDJwR201cmZoeXh5T0RmSk0KWLOpw5cWbtnfVP/ISa7n1vZchoD+nxmn
7yr7igpEIro0Sd238KinOQYswVaT0NHB9p1dSW/mN+aGQliSNLzkDQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-06-05T00:52:15Z"
mac: ENC[AES256_GCM,data:FVj9SmI6uq5ujIX3NwFSLcappRIX0K1U/GXks4Wj0gJH//Tqo5Ur07+WdE5JNmHdS1gXW34RhzFmEbQ9KR2OoP8cfTG+a7qCftzEQbV5aBBEMxstsl48TLtRTwRuSrEnVOHh/0EfFOkXTUO/rVS4jDmd57eAB6OBJQePQk+P+0Q=,iv:P1aeFC+6xG4Koph0Dynwek/861OsH1asui3qtpu1JUI=,tag:1RYayU758c+yAULOgQuWgw==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2