Compare commits

..

188 Commits

Author SHA1 Message Date
4a38c3488a testing cosmic 2025-02-04 22:10:59 -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
abd7101062 updated qbitvpn and added devices
https://github.com/binhex/arch-qbittorrentvpn/issues/296
https://github.com/binhex/arch-qbittorrentvpn/issues/294
https://github.com/binhex/arch-delugevpn/issues/418
2024-12-29 23:25:09 -05:00
github-actions[bot]
14b229a354 flake.lock: Update
Flake lock file updates:

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

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

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

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

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

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

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

https://wiki.archlinux.org/title/Gamescope
3.3 Setting Gamescopes priority
2024-11-28 11:53:29 -05:00
cdacebfbd5 decreasing daily and hourly snapshots for root pool
Having this many daily copy was creating storage problems with steam
2024-11-28 09:43:26 -05:00
327c9b4181 removed --accept-flake-config 2024-11-25 15:12:42 -05:00
234d32b678 adding substituters to nix settings 2024-11-25 15:11:49 -05:00
c902ab7e6e added --accept-flake-config 2024-11-25 15:05:58 -05:00
03a0f4ead7 adding nixos-rebuild to extraPackages 2024-11-25 14:44:44 -05:00
6daea826b8 adding nixos-rebuild to extraPackages 2024-11-25 14:38:03 -05:00
361e5c296d removed nix shell 2024-11-25 14:33:47 -05:00
f57029c32f removing Install Nix 2024-11-25 14:29:20 -05:00
9403241342 testing build_systems.yml 2024-11-25 14:27:03 -05:00
3f6f652caf added github-runners user and group 2024-11-25 14:25:57 -05:00
03b177ddfb creating github-runners nix_builder 2024-11-25 14:25:57 -05:00
a0f488a017 added build_rhapsody-in-green workflow 2024-11-24 20:02:25 -05:00
c63a0b1367 added build_muninn workflow 2024-11-24 20:02:12 -05:00
8380d53405 added build_bob workflow 2024-11-24 19:55:20 -05:00
d6253da3a5 removed system matrix 2024-11-24 19:55:00 -05:00
18742349eb adding system matrix 2024-11-24 19:00:09 -05:00
740908e42e moving path 2024-11-24 18:52:50 -05:00
54cf268ec8 testing nix-shell 2024-11-24 18:47:59 -05:00
5b088efecb adding jeeves-build action 2024-11-24 10:46:06 -05:00
a85746629d added update-flake-lock action 2024-11-24 10:12:23 -05:00
09b1f36488 added steam to rhapsody-in-green 2024-11-23 14:59:41 -05:00
32ffe18495 updated kitty theme setting 2024-11-23 14:56:58 -05:00
06f8d2e4e1 nix_flake_update_11-23-24 2024-11-23 14:56:58 -05:00
a6ae422e92 removed sonarr and prowlarr 2024-11-23 13:26:09 -05:00
b40051f5d0 updating qbit version 2024-11-23 13:25:56 -05:00
a83ca2afb0 added 29432 to allowedUDPPorts 2024-11-23 12:50:24 -05:00
ea0fd25c19 removed nix setting from home manager configs 2024-11-23 11:01:50 -05:00
52ff8beb28 moved postgres secrets to storage_secrets 2024-11-22 20:25:42 -05:00
539dc78bcc removed lib.mkDefault from user global.nix 2024-11-21 21:07:57 -05:00
529c54d71a clean up 2024-11-21 21:02:12 -05:00
f878f2d5d5 added framework-11th-gen-intel nixos-hardware 2024-11-21 21:02:12 -05:00
6ef5507bf8 added muninn to ssh_config.nix 2024-11-21 21:02:12 -05:00
9fa3ab6758 added desktop_kernel 2024-11-21 21:02:12 -05:00
515f8163d3 removed loginProgram 2024-11-21 21:02:12 -05:00
8ecc9b2358 adding environment loginShellInit 2024-11-21 21:02:12 -05:00
3582f3c50b improved gamescope.sh 2024-11-21 21:02:12 -05:00
8af120b6cf testing gs.sh 2024-11-21 21:02:12 -05:00
1de57f8251 desktop.nix 2024-11-21 21:02:12 -05:00
967e0c8622 removed displayManager 2024-11-21 21:02:12 -05:00
e6a8c32622 testing getty 2024-11-21 21:02:12 -05:00
043b3a2810 adding gaming user 2024-11-21 21:02:12 -05:00
b8e46ee341 test 2024-11-21 21:02:12 -05:00
89fdac6abf enabling displayManager 2024-11-21 21:02:12 -05:00
33e6afb24a testing sway 2024-11-21 21:02:12 -05:00
554a94d010 updating displayManager and removing x11 2024-11-21 21:02:12 -05:00
304e257a66 setting up keyFile for muninn 2024-11-21 21:02:12 -05:00
a318ee74fe enabled postgres 2024-11-21 20:24:11 -05:00
9430bc96f8 updated to python313 2024-11-21 20:22:47 -05:00
fe13af644d added update.nix to muninn 2024-11-21 20:22:23 -05:00
3783b21416 fixed update.nix 2024-11-21 20:21:28 -05:00
65804cf07c added kitty terminal 2024-11-19 18:41:56 -05:00
a0fea7c972 fixed github definedAliases 2024-11-17 08:24:53 -05:00
5044a71b70 nix flake update 11-15-24 2024-11-17 08:24:53 -05:00
77 changed files with 1714 additions and 805 deletions

25
.github/workflows/build_systems.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: build_systems
on:
workflow_dispatch:
pull_request:
push:
branches: [main]
jobs:
build:
name: build-${{ matrix.system }}
runs-on: self-hosted
strategy:
matrix:
system:
- "bob"
- "jeeves"
- "rhapsody-in-green"
steps:
- uses: actions/checkout@v4
- name: Build default package
run: "nixos-rebuild build --flake ./#${{ matrix.system }}"
- name: copy to nix-cache
env:
NIX_SSHOPTS: "-vvvv"
run: nix copy --to ssh://jeeves .#nixosConfigurations.${{ matrix.system }}.config.system.build.toplevel

22
.github/workflows/update-flake-lock.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: update-flake-lock
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@main
with:
token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
pr-title: "Update flake.lock"
pr-labels: |
dependencies
automated

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
- &system_bob age1q47vup0tjhulkg7d6xwmdsgrw64h4ax3la3evzqpxyy4adsmk9fs56qz3y
- &system_jeeves age13lmqgc3jvkyah5e3vcwmj4s5wsc2akctcga0lpc0x8v8du3fxprqp4ldkv
- &system_router age1xzxryqq63x65yuza9lmmkud7crjjxpnkdew070yhx6xn7xe4tdws5twxsv
- &system_rhapsody age1ufnewppysaq2wwcl4ugngjz8pfzc5a35yg7luq0qmuqvctajcycs5lf6k4
creation_rules:
- path_regex: users/secrets\.yaml$
key_groups:
- age:
- *admin_richie
- *system_bob
- *system_jeeves
- *system_router
- *system_rhapsody

19
.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",
@@ -16,8 +18,11 @@
"audiobookshelf", "audiobookshelf",
"auditd", "auditd",
"autofetch", "autofetch",
"autologin",
"automations",
"autopull", "autopull",
"autotrim", "autotrim",
"autoupdate",
"azuretools", "azuretools",
"bantime", "bantime",
"bazarr", "bazarr",
@@ -81,6 +86,8 @@
"globalprivacycontrol", "globalprivacycontrol",
"gparted", "gparted",
"gtts", "gtts",
"gutenprint",
"hass",
"healthreport", "healthreport",
"Heatsink", "Heatsink",
"hediet", "hediet",
@@ -89,6 +96,7 @@
"hmac", "hmac",
"homeassistant", "homeassistant",
"HPKP", "HPKP",
"hplip",
"htmlaboutaddons", "htmlaboutaddons",
"hurlenko", "hurlenko",
"hwloc", "hwloc",
@@ -97,6 +105,7 @@
"ioit", "ioit",
"iperf", "iperf",
"isal", "isal",
"jellyfin",
"jnoortheen", "jnoortheen",
"jsbc", "jsbc",
"kagi", "kagi",
@@ -107,6 +116,7 @@
"libsodium", "libsodium",
"libssh", "libssh",
"libvirtd", "libvirtd",
"llms",
"localtime", "localtime",
"louislam", "louislam",
"lsnew", "lsnew",
@@ -125,7 +135,6 @@
"mountpoints", "mountpoints",
"mousewheel", "mousewheel",
"mtxr", "mtxr",
"muninn",
"ncdu", "ncdu",
"nemo", "nemo",
"neofetch", "neofetch",
@@ -158,7 +167,6 @@
"peerconnection", "peerconnection",
"PESKYFOX", "PESKYFOX",
"PGID", "PGID",
"photoprism",
"pipewire", "pipewire",
"pkgs", "pkgs",
"plugdev", "plugdev",
@@ -175,8 +183,10 @@
"PUID", "PUID",
"pulseaudio", "pulseaudio",
"punycode", "punycode",
"pychromecast",
"pylance", "pylance",
"pymetno", "pymetno",
"pyownet",
"qbit", "qbit",
"qbittorrent", "qbittorrent",
"qbittorrentvpn", "qbittorrentvpn",
@@ -184,12 +194,14 @@
"quicksuggest", "quicksuggest",
"radarr", "radarr",
"readahead", "readahead",
"receiveencrypted",
"Redistributable", "Redistributable",
"referer", "referer",
"REFERERS", "REFERERS",
"relatime", "relatime",
"Rhosts", "Rhosts",
"ripgrep", "ripgrep",
"rokuecp",
"routable", "routable",
"rspace", "rspace",
"rtkit", "rtkit",
@@ -211,6 +223,7 @@
"sponsorblock", "sponsorblock",
"sqltools", "sqltools",
"ssdp", "ssdp",
"SSHOPTS",
"stdenv", "stdenv",
"subresource", "subresource",
"substituters", "substituters",
@@ -228,6 +241,7 @@
"twimg", "twimg",
"uaccess", "uaccess",
"ublock", "ublock",
"uiprotect",
"uitour", "uitour",
"unrar", "unrar",
"unsubmitted", "unsubmitted",
@@ -235,6 +249,7 @@
"urlclassifier", "urlclassifier",
"usbhid", "usbhid",
"usbutils", "usbutils",
"useragent",
"usernamehw", "usernamehw",
"userprefs", "userprefs",
"vfat", "vfat",

View File

@@ -2,12 +2,13 @@
inputs, inputs,
lib, lib,
outputs, outputs,
pkgs,
... ...
}: }:
{ {
imports = [ imports = [
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
./docker.nix inputs.sops-nix.nixosModules.sops
./fail2ban.nix ./fail2ban.nix
./fonts.nix ./fonts.nix
./libs.nix ./libs.nix
@@ -19,7 +20,11 @@
./snapshot_manager.nix ./snapshot_manager.nix
]; ];
boot.tmp.useTmpfs = true; boot = {
tmp.useTmpfs = true;
kernelPackages = lib.mkDefault pkgs.linuxPackages_6_12;
zfs.package = lib.mkDefault pkgs.zfs_2_3;
};
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
@@ -27,22 +32,31 @@
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.fwupd.enable = true; services = {
# firmware update
fwupd.enable = true;
snapshot_manager.enable = lib.mkDefault true;
zfs = {
trim.enable = lib.mkDefault true;
autoScrub.enable = lib.mkDefault true;
};
};
programs.zsh.enable = true; programs.zsh.enable = true;
security.auditd.enable = lib.mkDefault true; security.auditd.enable = lib.mkDefault true;
users.mutableUsers = lib.mkDefault true; users.mutableUsers = lib.mkDefault false;
zramSwap = { zramSwap = {
enable = lib.mkDefault true; enable = lib.mkDefault true;

View File

@@ -4,7 +4,9 @@
fontconfig.enable = true; fontconfig.enable = true;
enableDefaultPackages = true; enableDefaultPackages = true;
packages = with pkgs; [ packages = with pkgs; [
nerdfonts nerd-fonts.roboto-mono
nerd-fonts.intone-mono
nerd-fonts.symbols-only
]; ];
}; };
} }

View File

@@ -11,6 +11,21 @@ in {
"root" "root"
"@wheel" "@wheel"
]; ];
trusted-substituters = [
"https://cache.nixos.org"
"https://cache.tmmworkshop.com"
"https://nix-community.cachix.org"
];
substituters = [
"https://cache.nixos.org/?priority=2&want-mass-query=true"
"https://cache.tmmworkshop.com/?priority=2&want-mass-query=true"
"https://nix-community.cachix.org/?priority=10&want-mass-query=true"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cache.tmmworkshop.com:jHffkpgbmEdstQPoihJPYW9TQe6jnQbWR2LqkNGV3iA="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
auto-optimise-store = lib.mkDefault true; auto-optimise-store = lib.mkDefault true;
experimental-features = [ experimental-features = [
"nix-command" "nix-command"

View File

@@ -2,6 +2,6 @@
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git git
python312 python313
]; ];
} }

View File

@@ -6,8 +6,8 @@ monthly = 0
["root_pool/home"] ["root_pool/home"]
15_min = 8 15_min = 8
hourly = 24 hourly = 12
daily = 14 daily = 1
monthly = 0 monthly = 0
["root_pool/root"] ["root_pool/root"]

View File

@@ -1,11 +1,26 @@
{ lib, pkgs, ... }: { pkgs, ... }:
{ {
boot = { boot = {
kernelPackages = lib.mkDefault pkgs.linuxPackages_zen; kernelPackages = pkgs.linuxPackages_6_12;
zfs.package = pkgs.zfs_unstable; 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 = {
enable = true;
wayland.enable = true;
};
desktopManager.plasma6.enable = true; desktopManager.plasma6.enable = true;
xserver = { xserver = {
enable = true; enable = true;
xkb = { xkb = {
@@ -13,5 +28,15 @@
variant = ""; variant = "";
}; };
}; };
pulseaudio.enable = false;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
};
}; };
} }

View File

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

View File

@@ -10,8 +10,13 @@
gamescopeSession.enable = true; gamescopeSession.enable = true;
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true; localNetworkGameTransfers.openFirewall = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [proton-ge-bin]; extraCompatPackages = with pkgs; [proton-ge-bin];
extest.enable = true; extest.enable = true;
}; };
gamescope = {
enable = true;
capSysNice = true;
};
}; };
} }

View File

@@ -6,8 +6,7 @@
overrideFolders = true; overrideFolders = 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 = "LTGPLAE-M4ZDJTM-TZ3DJGY-SLLAVWF-CQDVEVS-RGCS75T-GAPZYK3-KUM6LA5"; # 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
@@ -15,5 +14,4 @@
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

@@ -1,19 +1,9 @@
{ lib, ... }:
{ {
services.autopull = {
enable = lib.mkDefault true;
repo.dotfiles = {
enable = lib.mkDefault true;
ssh-key = lib.mkDefault "/root/.ssh/id_ed25519_ghdeploy";
path = lib.mkDefault /root/dotfiles;
};
};
system.autoUpgrade = { 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";
}; };
} }

View File

@@ -3,4 +3,9 @@
enable = true; enable = true;
joinNetworks = [ "e4da7455b2ae64ca" ]; joinNetworks = [ "e4da7455b2ae64ca" ];
}; };
nix.settings = {
trusted-substituters = [ "http://192.168.90.40:5000" ];
substituters = [ "http://192.168.90.40:5000/?priority=1&want-mass-query=true" ];
trusted-public-keys = [ "cache.tmmworkshop.com:jHffkpgbmEdstQPoihJPYW9TQe6jnQbWR2LqkNGV3iA=" ];
};
} }

106
flake.lock generated
View File

@@ -9,11 +9,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1731643390, "lastModified": 1738382607,
"narHash": "sha256-ckIrZY5i+b7UrxolO54pSRO9dKW7GnMYQ1uQLeWEBsU=", "narHash": "sha256-ppR81tMrcQk/wHm8MmKtp3mrtYmMTgF2lxLLXYwRsOM=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "f0fa120121e9ea5c16c7b2c578fbebe37fbcab55", "rev": "dc86c8feffa328d9050e039a1286e175af6d76d8",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -59,11 +59,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -79,11 +79,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731604581, "lastModified": 1738415006,
"narHash": "sha256-Qq2YZZaDTB3FZLWU/Hgh1uuWlUBl3cMLGB99bm7rFUM=", "narHash": "sha256-ZlLTnqIQQ8OE6AtT+fluB642j2R9tnvxHHtpnmLjSxQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "1d0862ee2d7c6f6cd720d6f32213fa425004be10", "rev": "8544cd092047a7e92d0dce011108a563de7fc0f2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -101,11 +101,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1703863825, "lastModified": 1729742964,
"narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=", "narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-github-actions", "repo": "nix-github-actions",
"rev": "5163432afc817cf8bd1f031418d1869e4c9d5547", "rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -120,15 +120,14 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable"
"rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1731712317, "lastModified": 1738343111,
"narHash": "sha256-NpkSAwLFTFRZx+C2yL0JCBnjnZQRs8PsWRqZ0S08Bc8=", "narHash": "sha256-y9st4Y0p5ry+6QdlIGeqxAA6rbEIOO1uXdAc5jxV2Bc=",
"owner": "lilyinstarlight", "owner": "lilyinstarlight",
"repo": "nixos-cosmic", "repo": "nixos-cosmic",
"rev": "0b0e62252fb3b4e6b0a763190413513be499c026", "rev": "51b9cce097da369550f45ac07879274dc8be81e4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -139,11 +138,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1731403644, "lastModified": 1738391520,
"narHash": "sha256-T9V7CTucjRZ4Qc6pUEV/kpgNGzQbHWfGcfK6JJLfUeI=", "narHash": "sha256-6HI58PKjddsC0RA0gBQlt6ox47oH//jLUHwx05RO8g0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "f6581f1c3b137086e42a08a906bdada63045f991", "rev": "34b64e4e1ddb14e3ffc7db8d4a781396dbbab773",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -155,11 +154,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1731319897, "lastModified": 1738142207,
"narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=", "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dc460ec76cbff0e66e269457d7b728432263166c", "rev": "9d3ae807ebd2981d593cddd0080856873139aa40",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -171,11 +170,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1731716707, "lastModified": 1738422722,
"narHash": "sha256-ykrD4v5e/i2eweFAnamAXXkk/jzhNNwPiDc9yu4MbZs=", "narHash": "sha256-Q4vhtbLYWBUnjWD4iQb003Lt+N5PuURDad1BngGKdUs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3af4d5583961833ab0439b64626190951839c0bc", "rev": "102a39bfee444533e6b4e8611d7e92aa39b7bec1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -187,27 +186,27 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1731386116, "lastModified": 1738163270,
"narHash": "sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI=", "narHash": "sha256-B/7Y1v4y+msFFBW1JAdFjNvVthvNdJKiN6EGRPnqfno=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "689fed12a013f56d4c4d3f612489634267d86529", "rev": "59e618d90c065f55ae48446f307e8c09565d5ab0",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-24.05", "ref": "nixos-24.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable_2": { "nixpkgs-stable_2": {
"locked": { "locked": {
"lastModified": 1731386116, "lastModified": 1735563628,
"narHash": "sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI=", "narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "689fed12a013f56d4c4d3f612489634267d86529", "rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -232,11 +231,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1723343306, "lastModified": 1736884309,
"narHash": "sha256-/6sRkPq7/5weX2y0V8sQ29Sz35nt8kyj+BsFtkhgbJE=", "narHash": "sha256-eiCqmKl0BIRiYk5/ZhZozwn4/7Km9CWTbc15Cv+VX5k=",
"owner": "nix-community", "owner": "nix-community",
"repo": "poetry2nix", "repo": "poetry2nix",
"rev": "4a1c112ff0c67f496573dc345bd0b2247818fc29", "rev": "75d0515332b7ca269f6d7abfd2c44c47a7cbca7b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -254,28 +253,28 @@
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"nixpkgs-stable": "nixpkgs-stable_2", "nixpkgs-stable": "nixpkgs-stable_2",
"sops-nix": "sops-nix",
"system_tools": "system_tools", "system_tools": "system_tools",
"systems": "systems_3" "systems": "systems_3"
} }
}, },
"rust-overlay": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixos-cosmic",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1731551344, "lastModified": 1738291974,
"narHash": "sha256-wr8OOqgw7M1pWfe4W7WA5lErzOVMg3zvrrxx/dy/nPo=", "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=",
"owner": "oxalica", "owner": "Mic92",
"repo": "rust-overlay", "repo": "sops-nix",
"rev": "27570abfd3461875f11fc07c9b01c141a6332b4f", "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "oxalica", "owner": "Mic92",
"repo": "rust-overlay", "repo": "sops-nix",
"type": "github" "type": "github"
} }
}, },
@@ -288,11 +287,11 @@
"poetry2nix": "poetry2nix" "poetry2nix": "poetry2nix"
}, },
"locked": { "locked": {
"lastModified": 1729617389, "lastModified": 1738431375,
"narHash": "sha256-Q05Nhw84FprGiuQHd1ahOhKKIbxzp1rpeCqddjXUSVM=", "narHash": "sha256-jk6JrgqNe0dEPxV2xX/pBVsrPDfWaa033LKcyERkHJw=",
"owner": "RichieCahill", "owner": "RichieCahill",
"repo": "system_tools", "repo": "system_tools",
"rev": "2a2aa711fcf67ed5e4db484e507a4a511b9b4230", "rev": "36764189680c9be26192ee94da1a3f33f890ff0d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -326,8 +325,9 @@
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "systems", "owner": "nix-systems",
"type": "indirect" "repo": "default",
"type": "github"
} }
}, },
"systems_3": { "systems_3": {
@@ -354,11 +354,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1719749022, "lastModified": 1730120726,
"narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=", "narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd", "rev": "9ef337e492a5555d8e17a51c911ff1f02635be15",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -3,8 +3,8 @@
nixConfig = { nixConfig = {
extra-substituters = [ extra-substituters = [
"https://cache.nixos.org/?priority=1&want-mass-query=true" "https://cache.nixos.org/?priority=2&want-mass-query=true"
"https://cache.tmmworkshop.com/?priority=1&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 = [
@@ -42,6 +42,11 @@
url = "github:lilyinstarlight/nixos-cosmic"; url = "github:lilyinstarlight/nixos-cosmic";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { outputs = {
@@ -50,6 +55,7 @@
home-manager, home-manager,
systems, systems,
nixos-cosmic, nixos-cosmic,
sops-nix,
... ...
} @ inputs: let } @ inputs: let
inherit (self) outputs; inherit (self) outputs;
@@ -71,19 +77,21 @@
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,17 +1,22 @@
{ {
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/scanner.nix ../../common/optional/scanner.nix
../../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/zerotier.nix ../../common/optional/update.nix
../../common/optional/yubikey.nix ../../common/optional/yubikey.nix
../../common/optional/zerotier.nix
./hardware.nix ./hardware.nix
./nvidia.nix ./nvidia.nix
./syncthing.nix ./syncthing.nix
./games.nix
./llms.nix
]; ];
networking = { networking = {
@@ -21,37 +26,17 @@
networkmanager.enable = true; networkmanager.enable = true;
}; };
hardware = {
pulseaudio.enable = false;
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
security.rtkit.enable = true;
services = { services = {
displayManager = {
displayManager.sddm.enable = true; enable = true;
autoLogin = {
user = "gaming";
enable = true;
};
defaultSession = "plasma";
};
openssh.ports = [ 262 ]; openssh.ports = [ 262 ];
printing.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
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,8 @@
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";
}; };
}; };
kernelModules = [ "kvm-amd" ]; kernelModules = [ "kvm-amd" ];

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

@@ -0,0 +1,24 @@
{
services = {
ollama = {
enable = true;
loadModels = [
"codellama:7b"
"deepseek-r1:1.5b"
"deepseek-r1:7b"
"deepseek-r1:8b"
"deepseek-r1:14b"
"deepseek-r1:32b"
"llama3.2:3b"
"mistral-nemo:12b"
];
acceleration = "cuda";
openFirewall = true;
};
open-webui = {
enable = true;
openFirewall = true;
host = "192.168.90.25";
};
};
}

View File

@@ -5,8 +5,9 @@
nvidia = { nvidia = {
modesetting.enable = true; modesetting.enable = true;
powerManagement.enable = true; powerManagement.enable = true;
package = config.boot.kernelPackages.nvidiaPackages.production; package = config.boot.kernelPackages.nvidiaPackages.beta;
nvidiaSettings = true; nvidiaSettings = true;
open = true;
}; };
nvidia-container-toolkit.enable = true; nvidia-container-toolkit.enable = true;
}; };

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,39 +0,0 @@
{ inputs, pkgs, ... }:
let
vars = import ./vars.nix;
in
{
users = {
users.arch-mirror = {
isSystemUser = true;
group = "arch-mirror";
};
groups.arch-mirror = {};
};
virtualisation.oci-containers.containers.arch_mirror = {
image = "ubuntu/apache2:latest";
volumes = [
"${../../common/docker_templates}/file_server/sites/:/etc/apache2/sites-enabled/"
"${vars.media_mirror}:/data"
];
ports = [ "800:80" ];
extraOptions = [ "--network=web" ];
autoStart = true;
};
systemd.services.sync_mirror = {
requires = [ "network-online.target" ];
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
description = "validates startup";
path = [ pkgs.rsync ];
serviceConfig = {
Environment = "MIRROR_DIR=${vars.media_mirror}/archlinux/";
Type = "simple";
User = "arch-mirror";
Group = "arch-mirror";
ExecStart = "${inputs.system_tools.packages.x86_64-linux.default}/bin/sync_mirror";
};
};
}

View File

@@ -1,20 +1,17 @@
let
vars = import ./vars.nix;
in
{ {
imports = [ imports = [
../../users/richie ../../users/richie
../../common/global ../../common/global
../../common/optional/docker.nix
../../common/optional/ssh_decrypt.nix ../../common/optional/ssh_decrypt.nix
../../common/optional/syncthing_base.nix ../../common/optional/syncthing_base.nix
../../common/optional/zerotier.nix ../../common/optional/zerotier.nix
./arch_mirror.nix
./docker ./docker
./services
./hardware.nix ./hardware.nix
./home_assistant.nix
./networking.nix ./networking.nix
./programs.nix ./programs.nix
./services.nix ./runners
./syncthing.nix ./syncthing.nix
]; ];
@@ -27,31 +24,9 @@ in
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

@@ -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:16";
# 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 = [/root/secrets/docker/postgres];
# autoStart = true;
# user = "postgres:postgres";
# };
# };
}

View File

@@ -1,17 +0,0 @@
let
vars = import ../vars.nix;
in
{
networking.firewall.allowedTCPPorts = [ 9696 ];
virtualisation.oci-containers.containers.prowlarr = {
image = "ghcr.io/linuxserver/prowlarr:latest";
ports = [ "9696:9696" ];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
};
volumes = [ "${vars.media_docker_configs}/prowlarr:/config" ];
autoStart = true;
};
}

View File

@@ -4,10 +4,10 @@ in
{ {
networking.firewall = { networking.firewall = {
allowedTCPPorts = [ 6881 8082 29432 ]; allowedTCPPorts = [ 6881 8082 29432 ];
allowedUDPPorts = [ 6881 ]; allowedUDPPorts = [ 6881 29432 ];
}; };
virtualisation.oci-containers.containers.qbit = { virtualisation.oci-containers.containers.qbit = {
image = "ghcr.io/linuxserver/qbittorrent:latest"; image = "ghcr.io/linuxserver/qbittorrent:5.0.2";
ports = [ ports = [
"6881:6881" "6881:6881"
"6881:6881/udp" "6881:6881/udp"

View File

@@ -7,7 +7,8 @@ in
allowedUDPPorts = [ 6882 ]; allowedUDPPorts = [ 6882 ];
}; };
virtualisation.oci-containers.containers.qbitvpn = { virtualisation.oci-containers.containers.qbitvpn = {
image = "binhex/arch-qbittorrentvpn:latest"; image = "binhex/arch-qbittorrentvpn:5.0.3-1-01";
devices = [ "/dev/net/tun:/dev/net/tun" ];
extraOptions = [ "--cap-add=NET_ADMIN" ]; extraOptions = [ "--cap-add=NET_ADMIN" ];
ports = [ ports = [
"6882:6881" "6882:6881"

View File

@@ -1,40 +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 = [
"arch_mirror"
"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.media_share}:/data"
];
extraOptions = [ "--network=web" ];
autoStart = true;
};
}

View File

@@ -1,21 +0,0 @@
let
vars = import ../vars.nix;
in
{
networking.firewall.allowedTCPPorts = [ 9696 8989 ];
virtualisation.oci-containers.containers.sonarr = {
image = "ghcr.io/linuxserver/sonarr:latest";
ports = [ "8989:8989" ];
environment = {
PUID = "600";
PGID = "100";
TZ = "America/New_York";
};
volumes = [
"${vars.media_docker_configs}/sonarr:/config"
"${vars.storage_plex}/tv:/tv"
"${vars.torrenting_qbitvpn}:/data"
];
autoStart = true;
};
}

View File

@@ -4,7 +4,8 @@ in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
uptime_kuma = { uptime_kuma = {
image = "louislam/uptime-kuma:latest"; ports = [ "3001:3001" ];
image = "louislam/uptime-kuma:1.23.16-debian";
volumes = [ volumes = [
"${vars.media_docker_configs}/uptime_kuma:/app/data" "${vars.media_docker_configs}/uptime_kuma:/app/data"
"/var/run/docker.sock:/var/run/docker.sock" "/var/run/docker.sock:/var/run/docker.sock"

View File

@@ -1,49 +0,0 @@
{
services.home-assistant = {
enable = true;
openFirewall = true;
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.100.0.4";
};
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 = { };
};
extraPackages =
python3Packages: with python3Packages; [
psycopg2
gtts
aioesphomeapi
esphome-dashboard-api
bleak-esphome
pymetno
];
extraComponents = [ "isal" ];
};
}

View File

@@ -18,13 +18,21 @@
}; };
vlanConfig.Id = 20; vlanConfig.Id = 20;
}; };
"21-internal-ioit-vlan" = {
netdevConfig = {
Kind = "vlan";
Name = "internal-ioit-vlan";
};
vlanConfig.Id = 21;
};
}; };
networks = { networks = {
"10-1GB_Primary" = { "10-1GB_Primary" = {
matchConfig.Name = "enp98s0f0"; matchConfig.Name = "enp98s0f0";
DHCP = "yes"; address = [ "192.168.95.14/24" ];
vlan = [ "ioit-vlan" ]; routes = [{ Gateway = "192.168.95.1"; }];
vlan = [ "ioit-vlan" "internal-ioit-vlan" ];
linkConfig.RequiredForOnline = "routable"; linkConfig.RequiredForOnline = "routable";
}; };
"10-1GB_Secondary" = { "10-1GB_Secondary" = {
@@ -44,6 +52,10 @@
matchConfig.Name = "ioit-vlan"; matchConfig.Name = "ioit-vlan";
DHCP = "yes"; DHCP = "yes";
}; };
"41-internal-ioit-vlan" = {
matchConfig.Name = "internal-ioit-vlan";
DHCP = "yes";
};
}; };
}; };

View File

@@ -0,0 +1,27 @@
{ 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,83 @@
{ 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.storage_secrets}/services/github-runners/${name}";
"ssh-keys".mountPoint = "${vars.storage_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.95.14
IdentityFile ${vars.storage_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.storage_secrets}/services/github-runners/${name}";
user = "github-runners";
group = "github-runners";
extraPackages = with pkgs; [ nixos-rebuild openssh ];
};
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

@@ -18,11 +18,12 @@ 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 recordsize=1M -o compression=zstd-19 media/library
sudo zfs create -o exec=off media/minio sudo zfs create -o compression=zstd-9 -o sync=disabled media/github-runners
sudo zfs create -o exec=off media/mirror
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 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
# storage datasets # storage datasets

View File

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

View File

@@ -0,0 +1,18 @@
{ 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.storage_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,10 @@
let
vars = import ../vars.nix;
in
{
services.duckdns = {
enable = true;
tokenFile = "${vars.storage_secrets}/services/duckdns/token";
domainsFile = "${vars.storage_secrets}/services/duckdns/domains";
};
}

View File

@@ -0,0 +1,23 @@
{
pkgs,
...
}:
let
vars = import ../vars.nix;
in
{
networking.firewall.allowedTCPPorts = [ 8080 ];
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.media_docker_configs}/filebrowser/filebrowser.db";
Restart = "on-failure";
};
};
}

View File

@@ -22,50 +22,52 @@ defaults
#Application Setup #Application Setup
frontend ContentSwitching frontend ContentSwitching
bind *:80 bind *:80
bind *:443 ssl crt /etc/ssl/certs/cloudflare.pem bind *:443 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_mirror hdr(host) -i mirror.tmmworkshop.com acl host_jellyfin hdr(host) -i jellyfin.tmmworkshop.com
acl host_photoprism hdr(host) -i photoprism.tmmworkshop.com acl host_share hdr(host) -i share.tmmworkshop.com
acl host_uptime_kuma hdr(host) -i uptimekuma-jeeves.tmmworkshop.com acl host_uptime_kuma hdr(host) -i uptimekuma-jeeves.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 mirror_nodes if host_mirror use_backend jellyfin if host_jellyfin
use_backend photoprism_nodes if host_photoprism use_backend share_nodes if host_share
use_backend uptime_kuma_nodes if host_uptime_kuma use_backend uptime_kuma_nodes if host_uptime_kuma
backend audiobookshelf_nodes backend audiobookshelf_nodes
mode http mode http
server server audiobookshelf:80 server server 192.168.90.40:8000
backend cache_nodes backend cache_nodes
mode http mode http
server server 192.168.90.40:5000 server server 192.168.90.40: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 192.168.90.40:8080
backend mirror_nodes backend homeassistant_nodes
mode http mode http
server server arch_mirror:80 server server 192.168.95.14:8123
backend photoprism_nodes backend jellyfin
option httpchk
option forwardfor
http-check send meth GET uri /health
http-check expect string Healthy
server jellyfin 192.168.95.14:8096
backend share_nodes
mode http mode http
server server photoprism:2342 server server 192.168.95.14:8091
backend uptime_kuma_nodes backend uptime_kuma_nodes
mode http mode http
server server uptime_kuma:3001 server server 192.168.95.14:3001

View File

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

View File

@@ -0,0 +1,70 @@
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 = "192.168.95.0/24";
};
homeassistant = {
time_zone = "America/New_York";
unit_system = "us_customary";
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; [
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.media_services}/jellyfin";
};
}

View File

@@ -0,0 +1,10 @@
let
vars = import ../vars.nix;
in
{
services.nix-serve = {
enable = true;
secretKeyFile = "${vars.storage_secrets}/services/nix-cache/cache-priv-key.pem";
openFirewall = 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 = {
@@ -25,7 +25,7 @@ in
serviceConfig = { serviceConfig = {
EnvironmentFile = "${vars.storage_secrets}/services/server-validation"; EnvironmentFile = "${vars.storage_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,13 @@
zpool = ["root_pool", "storage", "torrenting", "media"]
services = [
"audiobookshelf",
"cloud_flare_tunnel",
"haproxy",
"docker-qbit",
"docker-qbitvpn",
"docker-uptime_kuma",
"docker",
"filebrowser",
"home-assistant",
"jellyfin",
]

View File

@@ -2,13 +2,18 @@ let
vars = import ./vars.nix; vars = import ./vars.nix;
in in
{ {
networking.firewall.allowedTCPPorts = [ 8384 ];
services.syncthing = { services.syncthing = {
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 = {
"dotfiles" = {
path = "/home/richie/dotfiles";
devices = [ devices = [
"jeeves" "bob"
"rhapsody-in-green"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };
@@ -16,8 +21,8 @@ in
id = "l62ul-lpweo"; # cspell:disable-line id = "l62ul-lpweo"; # cspell:disable-line
path = vars.media_notes; path = vars.media_notes;
devices = [ devices = [
"bob"
"rhapsody-in-green" "rhapsody-in-green"
"davids-server"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };
@@ -46,7 +51,6 @@ in
id = "vyma6-lqqrz"; # cspell:disable-line id = "vyma6-lqqrz"; # cspell:disable-line
path = "${vars.storage_syncthing}/projects"; path = "${vars.storage_syncthing}/projects";
devices = [ devices = [
"bob"
"rhapsody-in-green" "rhapsody-in-green"
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
@@ -58,6 +62,68 @@ in
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };
"vault" = {
path = "/home/richie/vault";
devices = [
"rhapsody-in-green"
"davids-server"
];
fsWatcherEnabled = true;
};
"backup" = {
path = "${vars.storage_syncthing}/backup";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
};
#
"davids-backup1" = {
id = "8229p-8z3tm"; # cspell:disable-line
path = "${vars.storage_syncthing}/davids_backups/1";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
"davids-backup2" = {
id = "iciw3-dp6ao"; # cspell:disable-line
path = "${vars.storage_syncthing}/davids_backups/2";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
"davids-backup3" = {
id = "9si6m-bnkjb"; # cspell:disable-line
path = "${vars.storage_syncthing}/davids_backups/3";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
"davids-backup4" = {
id = "qjyfy-uupj4"; # cspell:disable-line
path = "${vars.storage_syncthing}/davids_backups/4";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
"davids-backup5" = {
id = "fm4h5-emsu2"; # cspell:disable-line
path = "${vars.storage_syncthing}/davids_backups/5";
devices = [
"davids-server"
];
fsWatcherEnabled = true;
type = "receiveencrypted";
};
};
}; };
}; };
} }

View File

@@ -10,8 +10,11 @@ in
media_docker = "${zfs_media}/docker"; media_docker = "${zfs_media}/docker";
media_docker_configs = "${zfs_media}/docker/configs"; media_docker_configs = "${zfs_media}/docker/configs";
media_mirror = "${zfs_media}/mirror"; media_mirror = "${zfs_media}/mirror";
media_share = "${zfs_media}/share";
media_services = "${zfs_media}/services";
media_notes = "${zfs_media}/notes"; media_notes = "${zfs_media}/notes";
media_plex = "${zfs_media}/plex"; media_plex = "${zfs_media}/plex";
media_home_assistant = "${zfs_media}/home_assistant";
# storage # storage
storage_main = "${zfs_storage}/main"; storage_main = "${zfs_storage}/main";
storage_photos = "${zfs_storage}/photos"; storage_photos = "${zfs_storage}/photos";

View File

@@ -1,52 +0,0 @@
{
imports = [
../../users/richie
../../common/global
../../common/optional/desktop.nix
../../common/optional/steam.nix
../../common/optional/systemd-boot.nix
./hardware.nix
];
networking = {
hostName = "muninn";
hostId = "a43179c5";
firewall.enable = true;
networkmanager.enable = true;
};
hardware = {
pulseaudio.enable = false;
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
security.rtkit.enable = true;
services = {
displayManager.sddm.enable = true;
openssh.ports = [ 262 ];
printing.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.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

@@ -4,6 +4,8 @@
../../users/richie ../../users/richie
../../common/global ../../common/global
../../common/optional/desktop.nix ../../common/optional/desktop.nix
../../common/optional/docker.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/yubikey.nix ../../common/optional/yubikey.nix
@@ -11,6 +13,7 @@
./hardware.nix ./hardware.nix
./syncthing.nix ./syncthing.nix
inputs.nixos-hardware.nixosModules.framework-13-7040-amd inputs.nixos-hardware.nixosModules.framework-13-7040-amd
inputs.nixos-cosmic.nixosModules.default
]; ];
networking = { networking = {
@@ -20,37 +23,10 @@
networkmanager.enable = true; networkmanager.enable = true;
}; };
hardware = {
pulseaudio.enable = false;
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
security.rtkit.enable = true;
services = { services = {
displayManager.sddm.enable = true;
openssh.ports = [ 922 ]; openssh.ports = [ 922 ];
printing.enable = true; desktopManager.cosmic.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
snapshot_manager.enable = true;
zfs = {
trim.enable = true;
autoScrub.enable = true;
};
}; };
system.stateVersion = "24.05"; system.stateVersion = "24.05";

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)
@@ -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()

31
users/gaming/default.nix Normal file
View File

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

View File

@@ -0,0 +1,249 @@
{ 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 = {
# 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

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

View File

@@ -0,0 +1,6 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
chromium
];
}

View File

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

View File

@@ -5,12 +5,21 @@
}: 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 =
@@ -23,6 +32,7 @@ in {
++ ifTheyExist [ ++ ifTheyExist [
"dialout" "dialout"
"docker" "docker"
"hass"
"libvirtd" "libvirtd"
"networkmanager" "networkmanager"
"plugdev" "plugdev"
@@ -33,8 +43,7 @@ in {
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'"; "rspace" = "'for f in *\ *; do mv \"$f\" \"\${f// /_}\"; done'";
"rebuild" = "sudo nixos-rebuild switch --flake /home/richie/projects/dotfiles#$HOST"; "rebuild" = "sudo nixos-rebuild switch --flake /home/richie/dotfiles#$HOST";
"nix-test" = "nixos-rebuild test --flake /home/richie/projects/dotfiles"; "nix-test" = "nixos-rebuild test --flake /home/richie/dotfiles";
}; };
}; };
} }

View File

@@ -1,37 +1,22 @@
{ config, ... }:
{ {
lib,
pkgs,
config,
...
}: {
imports = [ imports = [
./cli ./cli
./programs.nix ./programs.nix
./ssh_config.nix ./ssh_config.nix
]; ];
nix = {
package = lib.mkDefault pkgs.nix;
settings = {
experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
];
};
};
programs = { programs = {
home-manager.enable = true; home-manager.enable = true;
git.enable = true; git.enable = true;
}; };
home = { home = {
username = lib.mkDefault "richie"; username = "richie";
homeDirectory = lib.mkDefault "/home/${config.home.username}"; homeDirectory = "/home/${config.home.username}";
stateVersion = lib.mkDefault "24.05"; stateVersion = "24.05";
sessionVariables = { sessionVariables = {
FLAKE = "$HOME/Projects/dotfiles"; FLAKE = "$HOME/dotfiles";
}; };
}; };
} }

View File

@@ -3,10 +3,12 @@
imports = [ imports = [
./firefox ./firefox
./vscode ./vscode
./kitty.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
candy-icons candy-icons
chromium
discord-canary discord-canary
gimp gimp
gparted gparted

View File

@@ -78,7 +78,7 @@
} }
]; ];
icon = ./github.svg; icon = ./github.svg;
definedAliases = [ "@n" ]; definedAliases = [ "@g" ];
}; };
}; };
} }

View File

@@ -0,0 +1,12 @@
{pkgs, ...}: {
programs.kitty = {
enable = true;
font.name = "IntoneMono Nerd Font";
settings = {
allow_remote_control = "no";
shell = "${pkgs.zsh}/bin/zsh";
wayland_titlebar_color = "background";
};
themeFile = "VSCode_Dark";
};
}

View File

@@ -14,6 +14,7 @@
jq jq
ncdu ncdu
neofetch neofetch
ouch
p7zip p7zip
poppler poppler
rar rar
@@ -35,7 +36,7 @@
wget wget
# python # python
poetry poetry
python312 python313
ruff ruff
# Rust packages # Rust packages
trunk trunk

58
users/secrets.yaml Normal file
View File

@@ -0,0 +1,58 @@
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]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
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-01-07T20:13:43Z"
mac: ENC[AES256_GCM,data:Q5fmv+MRVYGUQ4j+28CcGWHmgT1178N+haVS9xa0c99OKuPZdfSndAG0QVDhh/jYq+7zXs6zzLtBjB+egkoDfxJXfJOmg3E46UMO3vDHaEcIZD16ZbWJaz4Z/+yabqhDURKtgfGiu4xPv3OtGbwcP5kud17WcHNfY/LT+Y+LSD8=,iv:y3K3kCroIh+RTplUe4tM8B9rbLgIHCbE6FJawngam8Q=,tag:2VTIWlLp4cOwm18BfIlz5g==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.2