118 Commits

Author SHA1 Message Date
e62b24fbba flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/9d5c673a6611b7bf448dbfb0843c75b9cce9cf1f' (2024-05-30)
  → 'github:nix-community/disko/0274af4c92531ebfba4a5bd493251a143bc51f3c' (2024-05-31)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d24e7fdcfaecdca496ddd426cae98c9e2d12dfe8' (2024-05-30)
  → 'github:NixOS/nixpkgs/805a384895c696f802a9bf5bf4720f37385df547' (2024-05-31)
• Updated input 'nixvim':
    'github:nix-community/nixvim/fa43854e022140cd19b50d265cd481c461d6dd82' (2024-05-31)
  → 'github:nix-community/nixvim/1bbd58b6b293840716355e63fb3d5aa5af00d389' (2024-05-31)
2024-05-31 22:10:49 +01:00
37c4fca572 Re-add explicit pinentry definitions 2024-05-31 22:09:41 +01:00
858e7ee947 Update GNOME background paths 2024-05-31 22:09:16 +01:00
38a2ef3da1 Update mutter triple buffering overlay for v46 2024-05-31 17:52:36 +01:00
b86d372600 Use master branch of SNM 2024-05-31 17:51:56 +01:00
61d39f34b6 Remove deprecated nixvim option 2024-05-31 17:51:40 +01:00
0d3d283568 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/10986091e47fb1180620b78438512b294b7e8f67' (2024-05-27)
  → 'github:nix-community/disko/9d5c673a6611b7bf448dbfb0843c75b9cce9cf1f' (2024-05-30)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/9a20e17a73b052d6be912adcee220cb483477094' (2024-05-27)
  → 'github:NixOS/nixos-hardware/8251761f93d6f5b91cee45ac09edb6e382641009' (2024-05-29)
• Updated input 'nixos-mailserver':
    'gitlab:simple-nixos-mailserver/nixos-mailserver/e47f3719f1db3e0961a4358d4cb234a0acaa7baf' (2024-01-25)
  → 'gitlab:simple-nixos-mailserver/nixos-mailserver/41059fc548088e49e3ddb3a2b4faeb5de018e60f' (2024-05-03)
• Updated input 'nixos-mailserver/flake-compat':
    'github:edolstra/flake-compat/009399224d5e398d03b22badca40a37ac85412a1' (2022-11-17)
  → 'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33' (2023-10-04)
• Removed input 'nixos-mailserver/nixpkgs-23_05'
• Removed input 'nixos-mailserver/nixpkgs-23_11'
• Updated input 'nixos-mailserver/utils':
    'github:numtide/flake-utils/5021eac20303a61fafe17224c087f5519baed54d' (2020-11-14)
  → 'github:numtide/flake-utils/d465f4819400de7c8d874d50b982301f28a84605' (2024-02-28)
• Added input 'nixos-mailserver/utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d12251ef6e8e6a46e05689eeccd595bdbd3c9e60' (2024-05-24)
  → 'github:NixOS/nixpkgs/d24e7fdcfaecdca496ddd426cae98c9e2d12dfe8' (2024-05-30)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/bfb7a882678e518398ce9a31a881538679f6f092' (2024-05-24)
  → 'github:NixOS/nixpkgs/ad57eef4ef0659193044870c731987a6df5cf56b' (2024-05-29)
• Updated input 'nixvim':
    'github:nix-community/nixvim/4175fac0ea144679b9818bfc3c7becfbd68e25a4' (2024-05-27)
  → 'github:nix-community/nixvim/fa43854e022140cd19b50d265cd481c461d6dd82' (2024-05-31)
• Updated input 'nixvim/home-manager':
    'github:nix-community/home-manager/5d151429e1e79107acf6d06dcc5ace4e642ec239' (2024-05-26)
  → 'github:nix-community/home-manager/29c69d9a466e41d46fd3a7a9d0591ef9c113c2ae' (2024-05-30)
• Updated input 'nixvim/nix-darwin':
    'github:lnl7/nix-darwin/0bea8222f6e83247dd13b055d83e64bce02ee532' (2024-05-24)
  → 'github:lnl7/nix-darwin/c0d5b8c54d6828516c97f6be9f2d00c63a363df4' (2024-05-29)
2024-05-31 17:44:46 +01:00
3054e7bb1e Initial support for release 24.05 2024-05-27 14:54:35 +01:00
8eef59ae28 Optimise NFS client options for game ISOs
All checks were successful
Check flake / build-amd64-linux (push) Successful in 4m35s
- Use default settings for file attribute caching
- Increase time client can wait for a response before retrying the
request
2024-05-27 13:37:55 +01:00
819ff11d71 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m5s
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/ab5542e9dbd13d0100f8baae2bc2d68af901f4b4' (2024-05-10)
  → 'github:nix-community/home-manager/147c5eb5b39dee01c44feb6fca4632183e23e03b' (2024-05-26)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/d9e0b26202fd500cf3e79f73653cce7f7d541191' (2024-05-20)
  → 'github:NixOS/nixos-hardware/2e7d6c568063c83355fe066b8a8917ee758de1b8' (2024-05-26)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/5710852ba686cc1fd0d3b8e22b3117d43ba374c2' (2024-05-21)
  → 'github:NixOS/nixpkgs/bfb7a882678e518398ce9a31a881538679f6f092' (2024-05-24)
2024-05-26 10:56:50 +01:00
29a7df3bd6 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 5m29s
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/8d37c5bdeade12b6479c85acd133063ab53187a0' (2024-05-09)
  → 'github:ryantm/agenix/c2fc0762bbe8feb06a2e59a364fa81b3a57671c9' (2024-05-24)
• Updated input 'disko':
    'github:nix-community/disko/f1654e07728008d354c704d265fc710e3f5f42ee' (2024-05-21)
  → 'github:nix-community/disko/7ffc4354dfeb37c8c725ae1465f04a9b45ec8606' (2024-05-23)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a8695cbd09a7ecf3376bd62c798b9864d20f86ee' (2024-05-20)
  → 'github:NixOS/nixpkgs/46397778ef1f73414b03ed553a3368f0e7e33c2f' (2024-05-22)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/3eaeaeb6b1e08a016380c279f8846e0bd8808916' (2024-05-21)
  → 'github:NixOS/nixpkgs/5710852ba686cc1fd0d3b8e22b3117d43ba374c2' (2024-05-21)
2024-05-24 17:15:56 +01:00
8bc751926c Add fail2ban to server hosts
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m52s
2024-05-22 07:48:45 +01:00
d8464519ba Disable router log in gitea
Some checks failed
Check flake / build-amd64-linux (push) Has been cancelled
2024-05-22 07:10:13 +01:00
b1e7f1d74b flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 3m40s
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/601be8412d2ab72f752448766fe0fb2f00d5c40c' (2024-05-19)
  → 'github:nix-community/disko/f1654e07728008d354c704d265fc710e3f5f42ee' (2024-05-21)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/f0cf56878046c42ec2096a2ade89203e7348917b' (2024-05-19)
  → 'github:NixOS/nixos-hardware/d9e0b26202fd500cf3e79f73653cce7f7d541191' (2024-05-20)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e7cc61784ddf51c81487637b3031a6dd2d6673a2' (2024-05-18)
  → 'github:NixOS/nixpkgs/a8695cbd09a7ecf3376bd62c798b9864d20f86ee' (2024-05-20)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/4a6b83b05df1a8bd7d99095ec4b4d271f2956b64' (2024-05-17)
  → 'github:NixOS/nixpkgs/3eaeaeb6b1e08a016380c279f8846e0bd8808916' (2024-05-21)
2024-05-22 06:53:02 +01:00
93c060d467 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m56s
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/5f6dbcce99d60dd77f96dfc66d06bbea149a40e1' (2024-05-16)
  → 'github:nix-community/disko/601be8412d2ab72f752448766fe0fb2f00d5c40c' (2024-05-19)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/b55712de78725c8fcde422ee0a0fe682046e73c3' (2024-05-18)
  → 'github:NixOS/nixos-hardware/f0cf56878046c42ec2096a2ade89203e7348917b' (2024-05-19)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/bacb8503d3a51d9e9b52e52a1ba45e2c380ad07d' (2024-05-17)
  → 'github:NixOS/nixpkgs/e7cc61784ddf51c81487637b3031a6dd2d6673a2' (2024-05-18)
2024-05-19 23:15:48 +01:00
2f51df03a6 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m32s
Flake lock file updates:

• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/ff1be1e3cdf884df0935ab28745ab13c3c26d828' (2024-05-16)
  → 'github:NixOS/nixos-hardware/b55712de78725c8fcde422ee0a0fe682046e73c3' (2024-05-18)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9ddcaffecdf098822d944d4147dd8da30b4e6843' (2024-05-14)
  → 'github:NixOS/nixpkgs/bacb8503d3a51d9e9b52e52a1ba45e2c380ad07d' (2024-05-17)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/33d1e753c82ffc557b4a585c77de43d4c922ebb5' (2024-05-15)
  → 'github:NixOS/nixpkgs/4a6b83b05df1a8bd7d99095ec4b4d271f2956b64' (2024-05-17)
2024-05-18 18:19:20 +01:00
8c120b973d Add chrony module
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m49s
2024-05-18 10:27:27 +01:00
f154431f52 Allow all users to connect to Nix daemon
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m52s
2024-05-18 08:56:15 +01:00
9654a14f37 flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 25s
Flake lock file updates:

• Updated input 'secrets':
    'git+ssh://git@git.vimium.com/jordan/nix-secrets.git?ref=refs/heads/master&rev=b4a1c8968a1cb3688c12caddecd99432494df95b' (2024-05-06)
  → 'git+ssh://git@git.vimium.com/jordan/nix-secrets.git?ref=refs/heads/master&rev=c2adb575ca3a816287c7d8f3c23cde6dfd316e6f' (2024-05-18)
2024-05-18 08:49:48 +01:00
641855afbf Specify ip_prefixes for headscale 2024-05-18 08:49:48 +01:00
93c04e83d3 Add authkey to tailscale module 2024-05-18 08:49:48 +01:00
92c3bd3a13 Set ACME client defaults in server.nix 2024-05-18 08:46:05 +01:00
b16a42732a Add extra systemd config to server profile 2024-05-18 08:46:05 +01:00
52bfdd55a2 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m13s
Flake lock file updates:

• Updated input 'gitea-github-theme':
    'git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main&rev=cb120eb24fa69f69984d175832acfc5a011384e5' (2024-05-03)
  → 'git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main&rev=1b61f3f5cb38a1198d0a525d059a5a1905f2cfca' (2024-05-17)
2024-05-17 21:39:30 +01:00
22aa640a4c flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m0s
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/cb1d6fba694ab3887600d606106f5a044ba1712c' (2024-05-15)
  → 'github:nix-community/disko/5f6dbcce99d60dd77f96dfc66d06bbea149a40e1' (2024-05-16)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/c4eec329c464f3f89ab78a56a47eee6271ea9d19' (2024-05-03)
  → 'github:rafaelmardojai/firefox-gnome-theme/1efffcaa78904816f70dd493627412d299b23a52' (2024-05-16)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/a4e2b7909fc1bdf30c30ef21d388fde0b5cdde4a' (2024-05-08)
  → 'github:NixOS/nixos-hardware/ff1be1e3cdf884df0935ab28745ab13c3c26d828' (2024-05-16)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/2057814051972fa1453ddfb0d98badbea9b83c06' (2024-05-12)
  → 'github:NixOS/nixpkgs/33d1e753c82ffc557b4a585c77de43d4c922ebb5' (2024-05-15)
2024-05-16 20:18:01 +01:00
cb416e35c0 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m6s
Flake lock file updates:

• Updated input 'deploy-rs':
    'github:serokell/deploy-rs/88b3059b020da69cbe16526b8d639bd5e0b51c8b' (2024-04-01)
  → 'github:serokell/deploy-rs/b3ea6f333f9057b77efd9091119ba67089399ced' (2024-05-14)
• Updated input 'disko':
    'github:nix-community/disko/159d87ea5b95bbdea46f0288a33c5e1570272725' (2024-05-11)
  → 'github:nix-community/disko/cb1d6fba694ab3887600d606106f5a044ba1712c' (2024-05-15)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/71bae31b7dbc335528ca7e96f479ec93462323ff' (2024-05-11)
  → 'github:NixOS/nixpkgs/9ddcaffecdf098822d944d4147dd8da30b4e6843' (2024-05-14)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/062ca2a9370a27a35c524dc82d540e6e9824b652' (2024-05-11)
  → 'github:NixOS/nixpkgs/2057814051972fa1453ddfb0d98badbea9b83c06' (2024-05-12)
2024-05-15 20:11:45 +01:00
dbbf1f2f46 flake.lock: Update
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m48s
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/8eb1b315eef89f3bdc5c9814d1b207c6d64f0046' (2024-05-09)
  → 'github:nix-community/disko/159d87ea5b95bbdea46f0288a33c5e1570272725' (2024-05-11)
• Updated input 'home-manager':
    'github:nix-community/home-manager/86853e31dc1b62c6eeed11c667e8cdd0285d4411' (2024-04-25)
  → 'github:nix-community/home-manager/ab5542e9dbd13d0100f8baae2bc2d68af901f4b4' (2024-05-10)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9a9960b98418f8c385f52de3b09a63f9c561427a' (2024-05-09)
  → 'github:NixOS/nixpkgs/71bae31b7dbc335528ca7e96f479ec93462323ff' (2024-05-11)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/f1010e0469db743d14519a1efd37e23f8513d714' (2024-05-09)
  → 'github:NixOS/nixpkgs/062ca2a9370a27a35c524dc82d540e6e9824b652' (2024-05-11)
2024-05-12 15:34:06 +01:00
aa5ac9b55d flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 14s
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/07479c2e7396acaaaac5925483498154034ea80a' (2024-05-07)
  → 'github:ryantm/agenix/8d37c5bdeade12b6479c85acd133063ab53187a0' (2024-05-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8be0d8a1ed4f96d99b09aa616e2afd47acc3da89' (2024-05-07)
  → 'github:NixOS/nixpkgs/9a9960b98418f8c385f52de3b09a63f9c561427a' (2024-05-09)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/b211b392b8486ee79df6cdfb1157ad2133427a29' (2024-05-07)
  → 'github:NixOS/nixpkgs/f1010e0469db743d14519a1efd37e23f8513d714' (2024-05-09)
2024-05-10 22:45:09 +01:00
80e4c58d2f flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 14s
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/24a7ea390564ccd5b39b7884f597cfc8d7f6f44e' (2024-04-26)
  → 'github:ryantm/agenix/07479c2e7396acaaaac5925483498154034ea80a' (2024-05-07)
• Updated input 'disko':
    'github:nix-community/disko/874c83c94830d45a64edb408de5a1dd1cae786a4' (2024-05-07)
  → 'github:nix-community/disko/8eb1b315eef89f3bdc5c9814d1b207c6d64f0046' (2024-05-09)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/d1659c9eb8af718118fb4bbe2c86797c8b8623eb' (2024-05-06)
  → 'github:NixOS/nixos-hardware/a4e2b7909fc1bdf30c30ef21d388fde0b5cdde4a' (2024-05-08)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/27c13997bf450a01219899f5a83bd6ffbfc70d3c' (2024-05-06)
  → 'github:NixOS/nixpkgs/8be0d8a1ed4f96d99b09aa616e2afd47acc3da89' (2024-05-07)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/25865a40d14b3f9cf19f19b924e2ab4069b09588' (2024-05-05)
  → 'github:NixOS/nixpkgs/b211b392b8486ee79df6cdfb1157ad2133427a29' (2024-05-07)
2024-05-09 21:18:50 +01:00
19b1b463f7 Check flake instead of dry building
Some checks failed
Check flake / build-amd64-linux (push) Failing after 13s
2024-05-07 09:03:39 +01:00
2dfb394d31 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/e1b3ae2b4ebc3c7b83154b9361e3d154e64e362d' (2024-05-06)
  → 'github:nix-community/disko/874c83c94830d45a64edb408de5a1dd1cae786a4' (2024-05-07)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/e148ccbecbd2fe4dc4768fba67f6db828466ad06' (2024-05-06)
  → 'github:NixOS/nixos-hardware/d1659c9eb8af718118fb4bbe2c86797c8b8623eb' (2024-05-06)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/651b4702e27a388f0f18e1b970534162dec09aff' (2024-05-04)
  → 'github:NixOS/nixpkgs/27c13997bf450a01219899f5a83bd6ffbfc70d3c' (2024-05-06)
2024-05-07 08:52:04 +01:00
cebbd64bc1 Add dry-build action
Some checks failed
Dry build / build-amd64-linux (push) Failing after 13s
2024-05-06 16:33:30 +01:00
7f82ee9300 Enable gitea-runner on odyssey 2024-05-06 16:33:30 +01:00
d921134b48 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/d57058eb09dd5ec00c746df34fe0a603ea744370' (2024-05-02)
  → 'github:nix-community/disko/e1b3ae2b4ebc3c7b83154b9361e3d154e64e362d' (2024-05-06)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/753176b57b3fcddb140c1c012868e62c025120bd' (2024-05-05)
  → 'github:NixOS/nixos-hardware/e148ccbecbd2fe4dc4768fba67f6db828466ad06' (2024-05-06)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/e9be42459999a253a9f92559b1f5b72e1b44c13d' (2024-05-03)
  → 'github:NixOS/nixpkgs/25865a40d14b3f9cf19f19b924e2ab4069b09588' (2024-05-05)
• Updated input 'secrets':
    'git+ssh://git@git.vimium.com/jordan/nix-secrets.git?ref=refs/heads/master&rev=f350d35d7651c415fa4c0d6a7cff378ba5650f93' (2024-04-01)
  → 'git+ssh://git@git.vimium.com/jordan/nix-secrets.git?ref=refs/heads/master&rev=b4a1c8968a1cb3688c12caddecd99432494df95b' (2024-05-06)
2024-05-06 16:33:29 +01:00
2722826b76 Add gitea-runner module 2024-05-06 16:33:29 +01:00
4ca00f7717 Move podman to module 2024-05-06 15:52:57 +01:00
5726e8ad28 flake.lock: Update
Flake lock file updates:

• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/3f017311191fe6d501ca2496a835d012f656ee9c' (2024-05-03)
  → 'github:NixOS/nixos-hardware/753176b57b3fcddb140c1c012868e62c025120bd' (2024-05-05)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/383ffe076d9b633a2e97b6e4dd97fc15fcf30159' (2024-05-02)
  → 'github:NixOS/nixpkgs/651b4702e27a388f0f18e1b970534162dec09aff' (2024-05-04)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/63c3a29ca82437c87573e4c6919b09a24ea61b0f' (2024-05-02)
  → 'github:NixOS/nixpkgs/e9be42459999a253a9f92559b1f5b72e1b44c13d' (2024-05-03)
2024-05-05 22:19:14 +01:00
d4a48bb679 Add more nix helpers 2024-05-04 23:06:32 +01:00
3618c005c6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0638fe2715d998fa81d173aad264eb671ce2ebc1' (2024-05-01)
  → 'github:NixOS/nixpkgs/383ffe076d9b633a2e97b6e4dd97fc15fcf30159' (2024-05-02)
2024-05-04 21:22:09 +01:00
352db47931 Only reload snd_usb_audio if 1824c not initialised 2024-05-04 13:08:09 +01:00
2b8f9c4ae7 Adjust NFS mount options 2024-05-04 12:49:12 +01:00
37cdd6e81d Add kmod to snd_usb_audio reload unit 2024-05-04 12:48:53 +01:00
23b9ddcbdd flake.lock: Update
Flake lock file updates:

• Updated input 'gitea-github-theme':
    'git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main&rev=ce34870757c302424e65d269f408f5c37797f338' (2024-05-03)
  → 'git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main&rev=cb120eb24fa69f69984d175832acfc5a011384e5' (2024-05-03)
2024-05-03 23:17:37 +01:00
8a60a0ef51 Set Gitea landing page to explore page 2024-05-03 21:32:19 +01:00
9747e7cd03 Add vimium.com to mail domains 2024-05-03 19:33:58 +01:00
5d60516fd2 Change photoprism caption 2024-05-03 19:33:47 +01:00
a181fc8a5e Add gitea-github-theme 2024-05-03 19:33:23 +01:00
12366e5e1c flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/285e26465a0bae510897ca04da26ce6307c652b4' (2024-04-26)
  → 'github:nix-community/disko/d57058eb09dd5ec00c746df34fe0a603ea744370' (2024-05-02)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/ff16a448ff13eaa1ca0428ca766617c0d81f5598' (2024-04-25)
  → 'github:rafaelmardojai/firefox-gnome-theme/c4eec329c464f3f89ab78a56a47eee6271ea9d19' (2024-05-03)
• Added input 'gitea-github-theme':
    'git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main&rev=ce34870757c302424e65d269f408f5c37797f338' (2024-05-03)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/53db5e1070d07e750030bf65f1b9963df8f0c678' (2024-04-27)
  → 'github:NixOS/nixos-hardware/3f017311191fe6d501ca2496a835d012f656ee9c' (2024-05-03)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/12430e43bd9b81a6b4e79e64f87c624ade701eaf' (2024-04-28)
  → 'github:NixOS/nixpkgs/0638fe2715d998fa81d173aad264eb671ce2ebc1' (2024-05-01)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/58a1abdbae3217ca6b702f03d3b35125d88a2994' (2024-04-27)
  → 'github:NixOS/nixpkgs/63c3a29ca82437c87573e4c6919b09a24ea61b0f' (2024-05-02)
2024-05-03 19:00:56 +01:00
7d8e9e6b8d flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/dd37924974b9202f8226ed5d74a252a9785aedf8' (2024-04-24)
  → 'github:NixOS/nixpkgs/12430e43bd9b81a6b4e79e64f87c624ade701eaf' (2024-04-28)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856' (2024-04-25)
  → 'github:NixOS/nixpkgs/58a1abdbae3217ca6b702f03d3b35125d88a2994' (2024-04-27)
2024-04-28 16:19:11 +01:00
eb9406fe1f Use integrated Intel GPU on hypnos 2024-04-28 16:18:01 +01:00
c7e0f66295 Ensure correct snd_usb_audio is loaded on boot 2024-04-28 12:38:15 +01:00
03e4cc7d9e flake.lock: Update
Flake lock file updates:

• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/797f8d8082c7cc3259cba7275c699d4991b09ecc' (2024-04-23)
  → 'github:NixOS/nixos-hardware/53db5e1070d07e750030bf65f1b9963df8f0c678' (2024-04-27)
2024-04-27 14:14:41 +01:00
e2b5ef1c1c flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/1381a759b205dff7a6818733118d02253340fd5e' (2024-04-02)
  → 'github:ryantm/agenix/24a7ea390564ccd5b39b7884f597cfc8d7f6f44e' (2024-04-26)
• Updated input 'disko':
    'github:nix-community/disko/dea314155a9b8a4de242bdd4c005ba8a5dce8385' (2024-04-23)
  → 'github:nix-community/disko/285e26465a0bae510897ca04da26ce6307c652b4' (2024-04-26)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/5501717d3e98fcc418a2ca40de1c5ad1b66939bb' (2024-04-18)
  → 'github:rafaelmardojai/firefox-gnome-theme/ff16a448ff13eaa1ca0428ca766617c0d81f5598' (2024-04-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d6bb9f934f2870e5cbc5b94c79e9db22246141ff' (2024-04-06)
  → 'github:nix-community/home-manager/86853e31dc1b62c6eeed11c667e8cdd0285d4411' (2024-04-25)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b500489fd3cf653eafc075f9362423ad5cdd8676' (2024-04-22)
  → 'github:NixOS/nixpkgs/dd37924974b9202f8226ed5d74a252a9785aedf8' (2024-04-24)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/572af610f6151fd41c212f897c71f7056e3fb518' (2024-04-23)
  → 'github:NixOS/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856' (2024-04-25)
2024-04-26 17:14:28 +01:00
0aba6fa9f7 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/b8785a1c37f6176b6bc3d2939df329ab3a8f226c' (2024-04-22)
  → 'github:nix-community/disko/dea314155a9b8a4de242bdd4c005ba8a5dce8385' (2024-04-23)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/5d48925b815fd202781bfae8fb6f45c07112fdb2' (2024-04-19)
  → 'github:NixOS/nixos-hardware/797f8d8082c7cc3259cba7275c699d4991b09ecc' (2024-04-23)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a5e4bbcb4780c63c79c87d29ea409abf097de3f7' (2024-04-21)
  → 'github:NixOS/nixpkgs/b500489fd3cf653eafc075f9362423ad5cdd8676' (2024-04-22)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/6143fc5eeb9c4f00163267708e26191d1e918932' (2024-04-21)
  → 'github:NixOS/nixpkgs/572af610f6151fd41c212f897c71f7056e3fb518' (2024-04-23)
• Updated input 'nixvim':
    'github:nix-community/nixvim/5bd3cb1ef634f1fc9e88dd5c2a21f11830bf53d1' (2024-04-22)
  → 'github:nix-community/nixvim/7c59615585f691b560d9522c94d8f3195853ca8e' (2024-04-24)
2024-04-24 23:34:57 +01:00
533a6344a2 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/1efd500e9805a9efbce401ed5999006d397b9f11' (2024-04-18)
  → 'github:nix-community/disko/b8785a1c37f6176b6bc3d2939df329ab3a8f226c' (2024-04-22)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/bc194f70731cc5d2b046a6c1b3b15f170f05999c' (2024-04-19)
  → 'github:NixOS/nixpkgs/a5e4bbcb4780c63c79c87d29ea409abf097de3f7' (2024-04-21)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)
  → 'github:NixOS/nixpkgs/6143fc5eeb9c4f00163267708e26191d1e918932' (2024-04-21)
• Updated input 'nixvim':
    'github:nix-community/nixvim/b3ea5256e07ee9105060cffa075028402946bd63' (2024-01-03)
  → 'github:nix-community/nixvim/5bd3cb1ef634f1fc9e88dd5c2a21f11830bf53d1' (2024-04-22)
2024-04-23 09:16:25 +01:00
24a2413acf Set EDITOR variable 2024-04-21 23:28:12 +01:00
fa060ace43 Add hyprland module 2024-04-21 22:47:31 +01:00
050415cb49 Hint electron apps to use wayland 2024-04-21 22:46:25 +01:00
fc1281a397 Use KDE on hypnos 2024-04-21 22:36:10 +01:00
0b1649033c Add kmail and libreoffice-qt for KDE 2024-04-21 20:34:41 +01:00
2b188dab9a Add KDE desktop module 2024-04-21 19:53:58 +01:00
17487f010d Refactor gnome.nix 2024-04-21 19:46:29 +01:00
0258036463 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e402c3eb6d88384ca6c52ef1c53e61bdc9b84ddd' (2024-04-17)
  → 'github:NixOS/nixpkgs/bc194f70731cc5d2b046a6c1b3b15f170f05999c' (2024-04-19)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/66adc1e47f8784803f2deb6cacd5e07264ec2d5c' (2024-04-16)
  → 'github:NixOS/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)
2024-04-21 12:04:36 +01:00
86a3bae9cd Add Terminus font 2024-04-20 16:44:00 +01:00
f3db8d920d flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/bb5ba68ebb73b5ca7996b64e1457fe885891e78e' (2024-04-15)
  → 'github:nix-community/disko/1efd500e9805a9efbce401ed5999006d397b9f11' (2024-04-18)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/a95be99b28fdf1c33f1399a387eb594cf9bffc99' (2024-04-08)
  → 'github:rafaelmardojai/firefox-gnome-theme/5501717d3e98fcc418a2ca40de1c5ad1b66939bb' (2024-04-18)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/f58b25254be441cd2a9b4b444ed83f1e51244f1f' (2024-04-12)
  → 'github:NixOS/nixos-hardware/5d48925b815fd202781bfae8fb6f45c07112fdb2' (2024-04-19)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/90055d5e616bd943795d38808c94dbf0dd35abe8' (2024-04-13)
  → 'github:NixOS/nixpkgs/e402c3eb6d88384ca6c52ef1c53e61bdc9b84ddd' (2024-04-17)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/cfd6b5fc90b15709b780a5a1619695a88505a176' (2024-04-12)
  → 'github:NixOS/nixpkgs/66adc1e47f8784803f2deb6cacd5e07264ec2d5c' (2024-04-16)
2024-04-19 19:48:34 +01:00
89f4af47b9 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/8d4ae698eaac8bd717e23507da2ca8b345bec4b5' (2024-04-12)
  → 'github:nix-community/disko/bb5ba68ebb73b5ca7996b64e1457fe885891e78e' (2024-04-15)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/51651a540816273b67bc4dedea2d37d116c5f7fe' (2024-04-11)
  → 'github:NixOS/nixpkgs/90055d5e616bd943795d38808c94dbf0dd35abe8' (2024-04-13)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/1042fd8b148a9105f3c0aca3a6177fd1d9360ba5' (2024-04-10)
  → 'github:NixOS/nixpkgs/cfd6b5fc90b15709b780a5a1619695a88505a176' (2024-04-12)
2024-04-15 17:44:28 +01:00
66154517f6 Don't prefer dark theme 2024-04-15 17:43:17 +01:00
32356fb1e2 Fix lutris 2024-04-14 23:24:39 +01:00
c855dc7c07 More nixvim options 2024-04-14 19:40:44 +01:00
42429704cb Switch to nixvim 2024-04-14 19:22:37 +01:00
479f4d9eda Disable NetworkManager-wait-online on desktops 2024-04-14 19:21:52 +01:00
69bbc41c39 Add extra dirs to odyssey backups 2024-04-14 15:39:20 +01:00
42b35cb7ae flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/a297cb1cb0337ee10a7a0f9517954501d8f6f74d' (2024-04-11)
  → 'github:nix-community/disko/8d4ae698eaac8bd717e23507da2ca8b345bec4b5' (2024-04-12)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b2cf36f43f9ef2ded5711b30b1f393ac423d8f72' (2024-04-10)
  → 'github:NixOS/nixpkgs/51651a540816273b67bc4dedea2d37d116c5f7fe' (2024-04-11)
2024-04-14 15:30:09 +01:00
2af4c735c9 Add host provisioning steps 2024-04-14 15:29:25 +01:00
3f070b6c52 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/0a17298c0d96190ef3be729d594ba202b9c53beb' (2024-04-05)
  → 'github:nix-community/disko/a297cb1cb0337ee10a7a0f9517954501d8f6f74d' (2024-04-11)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/33015314c12190230295cff61ced148e0f7ffe1c' (2024-03-24)
  → 'github:rafaelmardojai/firefox-gnome-theme/a95be99b28fdf1c33f1399a387eb594cf9bffc99' (2024-04-08)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/f3b959627bca46a9f7052b8fbc464b8323e68c2c' (2024-04-05)
  → 'github:NixOS/nixos-hardware/f58b25254be441cd2a9b4b444ed83f1e51244f1f' (2024-04-12)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e38d7cb66ea4f7a0eb6681920615dfcc30fc2920' (2024-04-06)
  → 'github:NixOS/nixpkgs/b2cf36f43f9ef2ded5711b30b1f393ac423d8f72' (2024-04-10)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/ff0dbd94265ac470dda06a657d5fe49de93b4599' (2024-04-06)
  → 'github:NixOS/nixpkgs/1042fd8b148a9105f3c0aca3a6177fd1d9360ba5' (2024-04-10)
2024-04-12 12:18:47 +01:00
542d6150ba flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/72da83d9515b43550436891f538ff41d68eecc7f' (2024-04-05)
  → 'github:NixOS/nixpkgs/e38d7cb66ea4f7a0eb6681920615dfcc30fc2920' (2024-04-06)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/fd281bd6b7d3e32ddfa399853946f782553163b5' (2024-04-03)
  → 'github:NixOS/nixpkgs/ff0dbd94265ac470dda06a657d5fe49de93b4599' (2024-04-06)
2024-04-07 21:01:01 +01:00
061cd15fad flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/fbbac1aee6eae60c32b47e95447c4a3ec59d9773' (2024-04-05)
  → 'github:nix-community/disko/0a17298c0d96190ef3be729d594ba202b9c53beb' (2024-04-05)
• Updated input 'home-manager':
    'github:nix-community/home-manager/f33900124c23c4eca5831b9b5eb32ea5894375ce' (2024-03-19)
  → 'github:nix-community/home-manager/d6bb9f934f2870e5cbc5b94c79e9db22246141ff' (2024-04-06)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1487bdea619e4a7a53a4590c475deabb5a9d1bfb' (2024-04-03)
  → 'github:NixOS/nixpkgs/72da83d9515b43550436891f538ff41d68eecc7f' (2024-04-05)
2024-04-06 20:51:07 +01:00
5e83195ea2 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/611c9ea53250f7bb22286b3d26872280a0e608f9' (2024-04-01)
  → 'github:nix-community/disko/fbbac1aee6eae60c32b47e95447c4a3ec59d9773' (2024-04-05)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/9a763a7acc4cfbb8603bb0231fec3eda864f81c0' (2024-03-25)
  → 'github:NixOS/nixos-hardware/f3b959627bca46a9f7052b8fbc464b8323e68c2c' (2024-04-05)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/08b9151ed40350725eb40b1fe96b0b86304a654b' (2024-04-03)
  → 'github:NixOS/nixpkgs/fd281bd6b7d3e32ddfa399853946f782553163b5' (2024-04-03)
2024-04-05 19:00:11 +01:00
ee09ed556f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/219951b495fc2eac67b1456824cc1ec1fd2ee659' (2024-03-28)
  → 'github:NixOS/nixpkgs/1487bdea619e4a7a53a4590c475deabb5a9d1bfb' (2024-04-03)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)
  → 'github:NixOS/nixpkgs/08b9151ed40350725eb40b1fe96b0b86304a654b' (2024-04-03)
2024-04-04 12:34:45 +01:00
9618698da5 Add roundcube webmail interface 2024-04-02 23:50:20 +01:00
23abd062ec flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/8cb01a0e717311680e0cbca06a76cbceba6f3ed6' (2024-02-13)
  → 'github:ryantm/agenix/1381a759b205dff7a6818733118d02253340fd5e' (2024-04-02)
2024-04-02 22:57:24 +01:00
29b32d3d85 Add catchAll mailbox for other domains 2024-04-02 00:19:04 +01:00
6df254ed93 Add mail directories to backup 2024-04-02 00:04:51 +01:00
b9cff42ac4 Add mailserver host 2024-04-01 23:50:16 +01:00
02caab13ce flake.lock: Update
Flake lock file updates:

• Updated input 'deploy-rs':
    'github:serokell/deploy-rs/2bad21828ee2c5d1e42588d5f4c53f5b10300c6a' (2024-03-29)
  → 'github:serokell/deploy-rs/88b3059b020da69cbe16526b8d639bd5e0b51c8b' (2024-04-01)
• Updated input 'disko':
    'github:nix-community/disko/502241afa3de2a24865ddcbe4c122f4546e32092' (2024-03-28)
  → 'github:nix-community/disko/611c9ea53250f7bb22286b3d26872280a0e608f9' (2024-04-01)
• Updated input 'secrets':
    'git+ssh://git@git.vimium.com/jordan/nix-secrets.git?ref=refs/heads/master&rev=b64a65c725e4cb63811fca53b60073d4c47802e4' (2024-03-31)
  → 'git+ssh://git@git.vimium.com/jordan/nix-secrets.git?ref=refs/heads/master&rev=f350d35d7651c415fa4c0d6a7cff378ba5650f93' (2024-04-01)
2024-04-01 22:22:53 +01:00
cef43e67d4 nixos-mailserver 2024-04-01 21:17:15 +01:00
d2f6e6aa3c Add nix-tree 2024-04-01 18:05:54 +01:00
94f97a27cd Proxy WebSockets to photoprism 2024-03-31 23:23:14 +01:00
16138921fd Add photoprism originalsPath 2024-03-31 20:45:16 +01:00
2b021cc0a4 Remove some unstable emulators 2024-03-31 19:46:54 +01:00
93ac4b1185 Add photoprism module 2024-03-31 19:46:37 +01:00
544c511341 flake.lock: Update
Flake lock file updates:

• Updated input 'secrets':
    'git+ssh://git@git.vimium.com/jordan/nix-secrets.git?ref=refs/heads/master&rev=d135b4d6d5f0079999188895f8b5f35e821b0d4b' (2024-03-03)
  → 'git+ssh://git@git.vimium.com/jordan/nix-secrets.git?ref=refs/heads/master&rev=b64a65c725e4cb63811fca53b60073d4c47802e4' (2024-03-31)
2024-03-31 19:45:50 +01:00
bffc9ba70d flake.lock: Update
Flake lock file updates:

• Updated input 'deploy-rs':
    'github:serokell/deploy-rs/0a0187794ac7f7a1e62cda3dabf8dc041f868790' (2024-02-16)
  → 'github:serokell/deploy-rs/2bad21828ee2c5d1e42588d5f4c53f5b10300c6a' (2024-03-29)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/44733514b72e732bd49f5511bd0203dea9b9a434' (2024-03-26)
  → 'github:NixOS/nixpkgs/219951b495fc2eac67b1456824cc1ec1fd2ee659' (2024-03-28)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/2726f127c15a4cc9810843b96cad73c7eb39e443' (2024-03-27)
  → 'github:NixOS/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)
2024-03-31 12:16:52 +01:00
8b10d9d2d9 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/a6717b1afee7ae955c61eefdf0ce8f864ef78115' (2024-03-26)
  → 'github:nix-community/disko/502241afa3de2a24865ddcbe4c122f4546e32092' (2024-03-28)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/56528ee42526794d413d6f244648aaee4a7b56c0' (2024-03-22)
  → 'github:NixOS/nixpkgs/44733514b72e732bd49f5511bd0203dea9b9a434' (2024-03-26)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/44d0940ea560dee511026a53f0e2e2cde489b4d4' (2024-03-23)
  → 'github:NixOS/nixpkgs/2726f127c15a4cc9810843b96cad73c7eb39e443' (2024-03-27)
2024-03-28 11:00:05 +00:00
1d8e43c06b flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/5d2d3e421ade554b19b4dbb0d11a04023378a330' (2024-03-24)
  → 'github:nix-community/disko/a6717b1afee7ae955c61eefdf0ce8f864ef78115' (2024-03-26)
2024-03-26 14:27:56 +00:00
0be5b217b0 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/a8c966ee117c278a5aabc6f00b00ef62eb7e28f6' (2024-03-21)
  → 'github:nix-community/disko/5d2d3e421ade554b19b4dbb0d11a04023378a330' (2024-03-24)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/98aee398486c1fb4edf6f1e902b223d85c97eb8c' (2024-03-19)
  → 'github:rafaelmardojai/firefox-gnome-theme/33015314c12190230295cff61ced148e0f7ffe1c' (2024-03-24)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/1e679b9a9970780cd5d4dfe755a74a8f96d33388' (2024-03-18)
  → 'github:NixOS/nixos-hardware/9a763a7acc4cfbb8603bb0231fec3eda864f81c0' (2024-03-25)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/20f77aa09916374aa3141cbc605c955626762c9a' (2024-03-21)
  → 'github:NixOS/nixpkgs/44d0940ea560dee511026a53f0e2e2cde489b4d4' (2024-03-23)
2024-03-25 18:28:24 +00:00
dd4455eafe Add @wheel to trusted-users for nix 2024-03-24 19:45:13 +00:00
310956acad flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f091af045dff8347d66d186a62d42aceff159456' (2024-03-20)
  → 'github:NixOS/nixpkgs/56528ee42526794d413d6f244648aaee4a7b56c0' (2024-03-22)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/b06025f1533a1e07b6db3e75151caa155d1c7eb3' (2024-03-19)
  → 'github:NixOS/nixpkgs/20f77aa09916374aa3141cbc605c955626762c9a' (2024-03-21)
2024-03-23 11:23:14 +00:00
c4e97e81c5 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/e9875b969086a53dff5ec4677575ad3156fc875d' (2024-03-20)
  → 'github:nix-community/disko/a8c966ee117c278a5aabc6f00b00ef62eb7e28f6' (2024-03-21)
• Updated input 'home-manager':
    'github:nix-community/home-manager/652fda4ca6dafeb090943422c34ae9145787af37' (2024-02-03)
  → 'github:nix-community/home-manager/f33900124c23c4eca5831b9b5eb32ea5894375ce' (2024-03-19)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/fa9f817df522ac294016af3d40ccff82f5fd3a63' (2024-03-19)
  → 'github:NixOS/nixpkgs/f091af045dff8347d66d186a62d42aceff159456' (2024-03-20)
2024-03-21 17:43:43 +00:00
f957ea84e8 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/c09c3a9639690f94ddff44c3dd25c85602e5aeb2' (2024-03-18)
  → 'github:nix-community/disko/e9875b969086a53dff5ec4677575ad3156fc875d' (2024-03-20)
• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/4e966509c180f93ba8665cd73cad8456bf44baab' (2024-02-26)
  → 'github:rafaelmardojai/firefox-gnome-theme/98aee398486c1fb4edf6f1e902b223d85c97eb8c' (2024-03-19)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/614b4613980a522ba49f0d194531beddbb7220d3' (2024-03-17)
  → 'github:NixOS/nixpkgs/fa9f817df522ac294016af3d40ccff82f5fd3a63' (2024-03-19)
2024-03-20 20:23:36 +00:00
44369bfa89 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/c75037bbf9093a2acb617804ee46320d6d1fea5a' (2024-03-16)
  → 'github:NixOS/nixpkgs/b06025f1533a1e07b6db3e75151caa155d1c7eb3' (2024-03-19)
2024-03-19 23:03:47 +00:00
f193aab3d7 flake.lock: Update
Flake lock file updates:

• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/968952f950a59dee9ed1e8799dda38c6dfa1bad3' (2024-03-16)
  → 'github:NixOS/nixos-hardware/1e679b9a9970780cd5d4dfe755a74a8f96d33388' (2024-03-18)
• Updated input 'thunderbird-gnome-theme':
    'github:rafaelmardojai/thunderbird-gnome-theme/966e9dd54bd2ce9d36d51cd6af8c3bac7a764a68' (2023-12-06)
  → 'github:rafaelmardojai/thunderbird-gnome-theme/65d5c03fc9172d549a3ea72fd366d544981a002b' (2024-03-18)
2024-03-18 20:17:44 +00:00
e7078d2aac flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/21d89b333ca300bef82c928c856d48b94a9f997c' (2024-03-14)
  → 'github:nix-community/disko/c09c3a9639690f94ddff44c3dd25c85602e5aeb2' (2024-03-18)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8ac30a39abc5ea67037dfbf090d6e89f187c6e50' (2024-03-16)
  → 'github:NixOS/nixpkgs/614b4613980a522ba49f0d194531beddbb7220d3' (2024-03-17)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/d691274a972b3165335d261cc4671335f5c67de9' (2024-03-14)
  → 'github:NixOS/nixpkgs/c75037bbf9093a2acb617804ee46320d6d1fea5a' (2024-03-16)
2024-03-18 09:44:49 +00:00
00bfff1dec Remove vscode from atlas 2024-03-17 09:53:10 +00:00
8adb4f4089 flake.lock: Update
Flake lock file updates:

• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/ad2fd7b978d5e462048729a6c635c45d3d33c9ba' (2024-03-11)
  → 'github:NixOS/nixos-hardware/968952f950a59dee9ed1e8799dda38c6dfa1bad3' (2024-03-16)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/878ef7d9721bee9f81f8a80819f9211ad1f993da' (2024-03-14)
  → 'github:NixOS/nixpkgs/8ac30a39abc5ea67037dfbf090d6e89f187c6e50' (2024-03-16)
2024-03-17 09:24:01 +00:00
8763a70bac Remove vscode from odyssey 2024-03-16 21:27:42 +00:00
87de19d6ae flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/cc69c2340b59e290982ec7e6238471d470c839d0' (2024-03-14)
  → 'github:nix-community/disko/21d89b333ca300bef82c928c856d48b94a9f997c' (2024-03-14)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/51063ed4f2343a59fdeebb279bb81d87d453942b' (2024-03-12)
  → 'github:NixOS/nixpkgs/878ef7d9721bee9f81f8a80819f9211ad1f993da' (2024-03-14)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/0ad13a6833440b8e238947e47bea7f11071dc2b2' (2024-03-12)
  → 'github:NixOS/nixpkgs/d691274a972b3165335d261cc4671335f5c67de9' (2024-03-14)
2024-03-16 17:42:37 +00:00
0b021819d3 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/59e50d4ecbac78701c2f9950ff2b886ac66741ce' (2024-03-13)
  → 'github:nix-community/disko/cc69c2340b59e290982ec7e6238471d470c839d0' (2024-03-14)
2024-03-14 08:24:53 +00:00
f2cbd869de flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/fe064a639319ed61cdf12b8f6eded9523abcc498' (2024-03-11)
  → 'github:nix-community/disko/59e50d4ecbac78701c2f9950ff2b886ac66741ce' (2024-03-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b94a96839afcc56de3551aa7472b8d9a3e77e05d' (2024-03-09)
  → 'github:NixOS/nixpkgs/51063ed4f2343a59fdeebb279bb81d87d453942b' (2024-03-12)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/3030f185ba6a4bf4f18b87f345f104e6a6961f34' (2024-03-09)
  → 'github:NixOS/nixpkgs/0ad13a6833440b8e238947e47bea7f11071dc2b2' (2024-03-12)
2024-03-13 22:21:50 +00:00
661c148504 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/72818e54ec29427f8d9f9cfa6fc859d01ca6dc66' (2024-03-09)
  → 'github:nix-community/disko/fe064a639319ed61cdf12b8f6eded9523abcc498' (2024-03-11)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/59e37017b9ed31dee303dbbd4531c594df95cfbc' (2024-03-02)
  → 'github:NixOS/nixos-hardware/ad2fd7b978d5e462048729a6c635c45d3d33c9ba' (2024-03-11)
2024-03-11 22:59:40 +00:00
2cea68ce91 Remove unneeded applications 2024-03-10 18:11:03 +00:00
4839356310 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2be119add7b37dc535da2dd4cba68e2cf8d1517e' (2024-03-08)
  → 'github:NixOS/nixpkgs/b94a96839afcc56de3551aa7472b8d9a3e77e05d' (2024-03-09)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/9df3e30ce24fd28c7b3e2de0d986769db5d6225d' (2024-03-06)
  → 'github:NixOS/nixpkgs/3030f185ba6a4bf4f18b87f345f104e6a6961f34' (2024-03-09)
2024-03-10 16:33:02 +00:00
9a48913133 Use ComicShanns for Console 2024-03-09 22:11:38 +00:00
80d5f09640 Add nerdfonts 2024-03-09 21:42:48 +00:00
d291a97ccd Remove unused variable 2024-03-09 21:42:48 +00:00
5d3a4606fe Switch to lunarvim 2024-03-09 21:42:48 +00:00
def3fbca47 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/a2009bc2b4e1d3ff5360048292deb0d610aa064b' (2024-03-07)
  → 'github:nix-community/disko/72818e54ec29427f8d9f9cfa6fc859d01ca6dc66' (2024-03-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/880992dcc006a5e00dd0591446fdf723e6a51a64' (2024-03-05)
  → 'github:NixOS/nixpkgs/2be119add7b37dc535da2dd4cba68e2cf8d1517e' (2024-03-08)
2024-03-09 09:41:03 +00:00
da17da719f flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/1f76b318aa11170c8ca8c225a9b4c458a5fcbb57' (2024-03-03)
  → 'github:nix-community/disko/a2009bc2b4e1d3ff5360048292deb0d610aa064b' (2024-03-07)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/79baff8812a0d68e24a836df0a364c678089e2c7' (2024-03-01)
  → 'github:NixOS/nixpkgs/880992dcc006a5e00dd0591446fdf723e6a51a64' (2024-03-05)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/1536926ef5621b09bba54035ae2bb6d806d72ac8' (2024-02-29)
  → 'github:NixOS/nixpkgs/9df3e30ce24fd28c7b3e2de0d986769db5d6225d' (2024-03-06)
2024-03-07 20:13:25 +00:00
51 changed files with 1617 additions and 589 deletions

View File

@ -0,0 +1,15 @@
name: Check flake
on:
push:
branches: ['master']
jobs:
build-amd64-linux:
runs-on: nix
steps:
- uses: actions/checkout@v4
with:
ref: master
- name: Check flake
run: |
echo "Checking flake at ${{ gitea.ref }}"
nix flake check

View File

@ -9,16 +9,47 @@ System and user configuration for NixOS-based systems.
| **Theme:** | adwaita |
| **Terminal:** | Console |
## Provisioning
> [nixos-anywhere](https://github.com/nix-community/nixos-anywhere) is the module used for provisioning
## Provisioning a new host
> [nixos-anywhere](https://github.com/nix-community/nixos-anywhere) is the module used
> for provisioning
Generate a new SSH host key in "$temp/etc/ssh" as per [this guide](https://nix-community.github.io/nixos-anywhere/howtos/secrets.html#example-decrypting-an-openssh-host-key-with-pass).
```
ssh-keygen -t ed25519 -f /tmp/ssh_host_ed25519_key
```
Then run;
Update [nix-secrets](/jordan/nix-secrets) with the new host key to enable the system to decrypt
any relevant secrets.
In order to use the borgmatic module for backups, go to [borgbase.com](https://borgbase.com).
Add the generated SSH host key and create a new repository for the system.
Create a new directory under `hosts/` with a system configuration and disk layout.
Boot the NixOS installer (or any Linux distribution) on the target.
Then run:
```
nix run github:nix-community/nixos-anywhere -- \
--disk-encryption-keys /tmp/secret.key /tmp/secret.key \
--extra-files "$temp" \
--flake .#<hostname> \
root@<ip>
root@<target-ip>
```
### Post install
If backups are configured, you'll need to run:
```
borgmatic init --encryption repokey-blake2
```
then restart `borgmatic`.
To join the Tailscale network, run:
```
tailscale up --login-server https://headscale.vimium.net
```
then visit the URL, SSH onto `vps1` and run `headscale --user mesh nodes register --key <key>`.
The new node can optionally be given a friendly name with `headscale node rename -i <index> <hostname>`.

435
flake.lock generated
View File

@ -8,11 +8,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1707830867,
"narHash": "sha256-PAdwm5QqdlwIqGrfzzvzZubM+FXtilekQ/FA0cI49/o=",
"lastModified": 1716561646,
"narHash": "sha256-UIGtLO89RxKt7RF2iEgPikSdU53r6v/6WYB0RW3k89I=",
"owner": "ryantm",
"repo": "agenix",
"rev": "8cb01a0e717311680e0cbca06a76cbceba6f3ed6",
"rev": "c2fc0762bbe8feb06a2e59a364fa81b3a57671c9",
"type": "github"
},
"original": {
@ -21,6 +21,22 @@
"type": "github"
}
},
"blobs": {
"flake": false,
"locked": {
"lastModified": 1604995301,
"narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"type": "gitlab"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
@ -50,11 +66,11 @@
"utils": "utils"
},
"locked": {
"lastModified": 1708091384,
"narHash": "sha256-dTGGw2y8wvfjr+J9CjQbfdulOq72hUG17HXVNxpH1yE=",
"lastModified": 1715699772,
"narHash": "sha256-sKhqIgucN5sI/7UQgBwsonzR4fONjfMr9OcHK/vPits=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "0a0187794ac7f7a1e62cda3dabf8dc041f868790",
"rev": "b3ea6f333f9057b77efd9091119ba67089399ced",
"type": "github"
},
"original": {
@ -63,6 +79,28 @@
"type": "github"
}
},
"devshell": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1713532798,
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
"owner": "numtide",
"repo": "devshell",
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"disko": {
"inputs": {
"nixpkgs": [
@ -70,11 +108,11 @@
]
},
"locked": {
"lastModified": 1709439398,
"narHash": "sha256-MW0zp3ta7SvdpjvhVCbtP20ewRwQZX2vRFn14gTc4Kg=",
"lastModified": 1717177033,
"narHash": "sha256-G3CZJafCO8WDy3dyA2EhpUJEmzd5gMJ2IdItAg0Hijw=",
"owner": "nix-community",
"repo": "disko",
"rev": "1f76b318aa11170c8ca8c225a9b4c458a5fcbb57",
"rev": "0274af4c92531ebfba4a5bd493251a143bc51f3c",
"type": "github"
},
"original": {
@ -86,11 +124,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1708965002,
"narHash": "sha256-gIBZCPB0sA8Gagrxd8w4+y9uUkWBnXJBmq9Ur5BYTQU=",
"lastModified": 1716813977,
"narHash": "sha256-8fabA8OY1n2OcJFbbE03+bMydVANSBrNGo8hkzhXxxU=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "4e966509c180f93ba8665cd73cad8456bf44baab",
"rev": "8171c0578feb835ce66d49edba7429f46b7ac3f6",
"type": "github"
},
"original": {
@ -115,6 +153,172 @@
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1715865404,
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-root": {
"locked": {
"lastModified": 1713493429,
"narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=",
"owner": "srid",
"repo": "flake-root",
"rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "flake-root",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_4",
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1716213921,
"narHash": "sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "0e8fcc54b842ad8428c9e705cb5994eaf05c26a0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitea-github-theme": {
"flake": false,
"locked": {
"lastModified": 1715978309,
"narHash": "sha256-L9FYLtrK8Lm/wBeafb6eTRL5l2BYov6X6nJOL6rYZvY=",
"ref": "main",
"rev": "1b61f3f5cb38a1198d0a525d059a5a1905f2cfca",
"revCount": 96,
"type": "git",
"url": "ssh://git@git.vimium.com/jordan/gitea-github-theme.git"
},
"original": {
"ref": "main",
"type": "git",
"url": "ssh://git@git.vimium.com/jordan/gitea-github-theme.git"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -143,27 +347,69 @@
]
},
"locked": {
"lastModified": 1706981411,
"narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=",
"lastModified": 1716736833,
"narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "652fda4ca6dafeb090943422c34ae9145787af37",
"rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"ref": "release-24.05",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1717052710,
"narHash": "sha256-LRhOxzXmOza5SymhOgnEzA8EAQp+94kkeUYWKKpLJ/U=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "29c69d9a466e41d46fd3a7a9d0591ef9c113c2ae",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1716993688,
"narHash": "sha256-vo5k2wQekfeoq/2aleQkBN41dQiQHNTniZeVONWiWLs=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "c0d5b8c54d6828516c97f6be9f2d00c63a363df4",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1709410583,
"narHash": "sha256-esOSUoQ7mblwcsSea0K17McZuwAIjoS6dq/4b83+lvw=",
"lastModified": 1716987116,
"narHash": "sha256-uuEkErFVsFdg2K0cKbNQ9JlFSAm/xYqPr4rbPLI91Y8=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "59e37017b9ed31dee303dbbd4531c594df95cfbc",
"rev": "8251761f93d6f5b91cee45ac09edb6e382641009",
"type": "github"
},
"original": {
@ -172,6 +418,29 @@
"type": "github"
}
},
"nixos-mailserver": {
"inputs": {
"blobs": "blobs",
"flake-compat": "flake-compat_2",
"nixpkgs": [
"nixpkgs"
],
"utils": "utils_2"
},
"locked": {
"lastModified": 1714720456,
"narHash": "sha256-e0WFe1BHqX23ADpGBc4ZRu38Mg+GICCZCqyS6EWCbHc=",
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"rev": "41059fc548088e49e3ddb3a2b4faeb5de018e60f",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"type": "gitlab"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1703013332,
@ -190,11 +459,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1709237383,
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=",
"lastModified": 1716948383,
"narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8",
"rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
"type": "github"
},
"original": {
@ -221,29 +490,60 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1709309926,
"narHash": "sha256-VZFBtXGVD9LWTecGi6eXrE0hJ/mVB3zGUlHImUs2Qak=",
"lastModified": 1717144377,
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "79baff8812a0d68e24a836df0a364c678089e2c7",
"rev": "805a384895c696f802a9bf5bf4720f37385df547",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.11",
"ref": "nixos-24.05",
"type": "indirect"
}
},
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts",
"flake-root": "flake-root",
"git-hooks": "git-hooks",
"home-manager": "home-manager_3",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1717188043,
"narHash": "sha256-qg8Tq7OcKtc0BS4RVUYrMZ+KofgMv6DiXOnqz7TN8CA=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "1bbd58b6b293840716355e63fb3d5aa5af00d389",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"root": {
"inputs": {
"agenix": "agenix",
"deploy-rs": "deploy-rs",
"disko": "disko",
"firefox-gnome-theme": "firefox-gnome-theme",
"gitea-github-theme": "gitea-github-theme",
"home-manager": "home-manager_2",
"nixos-hardware": "nixos-hardware",
"nixos-mailserver": "nixos-mailserver",
"nixpkgs": "nixpkgs_3",
"nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim",
"secrets": "secrets",
"thunderbird-gnome-theme": "thunderbird-gnome-theme"
}
@ -251,11 +551,11 @@
"secrets": {
"flake": false,
"locked": {
"lastModified": 1709495020,
"narHash": "sha256-eiz0qUjUbdeb6m28XPY7OVnrGMZ45JiT2dZZ0Bmq2X0=",
"lastModified": 1716018239,
"narHash": "sha256-Ai13Sbj4DzuQSIrX2rjO0PG6PPpmvfwbCpTxX0kB7FI=",
"ref": "refs/heads/master",
"rev": "d135b4d6d5f0079999188895f8b5f35e821b0d4b",
"revCount": 14,
"rev": "c2adb575ca3a816287c7d8f3c23cde6dfd316e6f",
"revCount": 19,
"type": "git",
"url": "ssh://git@git.vimium.com/jordan/nix-secrets.git"
},
@ -294,14 +594,44 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"thunderbird-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1701889124,
"narHash": "sha256-K+6oh7+J6RDBFkxphY/pzf0B+q5+IY54ZMKZrFSKXlc=",
"lastModified": 1710774977,
"narHash": "sha256-nQBz2PW3YF3+RTflPzDoAcs6vH1PTozESIYUGAwvSdA=",
"owner": "rafaelmardojai",
"repo": "thunderbird-gnome-theme",
"rev": "966e9dd54bd2ce9d36d51cd6af8c3bac7a764a68",
"rev": "65d5c03fc9172d549a3ea72fd366d544981a002b",
"type": "github"
},
"original": {
@ -310,6 +640,27 @@
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1715940852,
"narHash": "sha256-wJqHMg/K6X3JGAE9YLM0LsuKrKb4XiBeVaoeMNlReZg=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "2fba33a182602b9d49f0b2440513e5ee091d838b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems_2"
@ -327,6 +678,24 @@
"repo": "flake-utils",
"type": "github"
}
},
"utils_2": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1709126324,
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",

View File

@ -2,7 +2,7 @@
description = "NixOS system configuration";
inputs = {
nixpkgs.url = "nixpkgs/nixos-23.11";
nixpkgs.url = "nixpkgs/nixos-24.05";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
# nixpkgs-master.url = "nixpkgs";
agenix.url = "github:ryantm/agenix";
@ -12,14 +12,26 @@
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-gnome-theme = {
url = "github:rafaelmardojai/firefox-gnome-theme";
flake = false;
};
gitea-github-theme = {
url = "git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main";
flake = false;
};
nixos-hardware.url = "github:NixOS/nixos-hardware";
nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
secrets = {
url = "git+ssh://git@git.vimium.com/jordan/nix-secrets.git";
flake = false;
@ -30,7 +42,7 @@
};
};
outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, agenix, deploy-rs, disko, home-manager, nixos-hardware, secrets, ... }:
outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, agenix, deploy-rs, disko, home-manager, nixos-hardware, nixos-mailserver, secrets, ... }:
let
mkPkgsForSystem = system: inputs.nixpkgs;
overlays = [
@ -46,6 +58,7 @@
commonModules = [
agenix.nixosModules.age
disko.nixosModules.disko
nixos-mailserver.nixosModule
home-manager.nixosModule
./modules
];
@ -78,6 +91,7 @@
helios = mkNixosSystem { system = "x86_64-linux"; name = "helios"; };
hypnos = mkNixosSystem { system = "x86_64-linux"; name = "hypnos"; };
library = mkNixosSystem { system = "x86_64-linux"; name = "library"; };
mail = mkNixosSystem { system = "x86_64-linux"; name = "mail"; };
odyssey = mkNixosSystem { system = "x86_64-linux"; name = "odyssey"; };
pi = mkNixosSystem { system = "aarch64-linux"; name = "pi"; extraModules = [ nixos-hardware.nixosModules.raspberry-pi-4 ]; };
vps1 = mkNixosSystem { system = "x86_64-linux"; name = "vps1"; };
@ -94,6 +108,14 @@
autoRollback = true;
sshUser = "root";
nodes = {
mail = {
hostname = "mail.mesh.vimium.net";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.mail;
};
};
vps1 = {
hostname = "vps1.mesh.vimium.net";

View File

@ -36,7 +36,6 @@
};
editors = {
neovim.enable = true;
vscode.enable = true;
};
security = {
gpg.enable = true;

View File

@ -48,7 +48,7 @@
min-free = 128000000;
max-free = 1000000000;
fallback = true;
allowed-users = [ "@wheel" ];
trusted-users = [ "@wheel" ];
auto-optimise-store = true;
substituters = [
"http://odyssey.mesh.vimium.net"

View File

@ -21,7 +21,17 @@
fileSystems."/mnt/library" = {
device = "library.mesh.vimium.net:/mnt/library";
fsType = "nfs";
options = [ "nfsvers=4.2" "soft" "nocto" "ro" "x-systemd.automount" "noauto" ];
options = [
"nfsvers=4.2"
"bg"
"soft"
"timeo=20"
"retry=5"
"nocto"
"ro"
"x-systemd.automount"
"noauto"
];
};
system.autoUpgrade = {
@ -30,8 +40,35 @@
randomizedDelaySec = "10min";
};
systemd.services.NetworkManager-wait-online.enable = false;
fonts.packages = with pkgs; [
noto-fonts
(nerdfonts.override { fonts = [ "BigBlueTerminal" "ComicShannsMono" "Terminus" "UbuntuMono" ]; })
];
modules = {
desktop.gnome.enable = true;
networking.tailscale.enable = true;
};
environment.systemPackages = with pkgs; [
bind
bmon
fd
ffmpeg
iotop
unstable.nix-du
# unstable.nix-melt
unstable.nix-tree
unstable.nix-visualize
ripgrep
rsync
tcpdump
tokei
tree
wl-clipboard
];
environment.sessionVariables.NIXOS_OZONE_WL = "1";
}

View File

@ -0,0 +1,102 @@
From d310ddee0fb8e7a5a8b89668c6cb8f9dc863ce94 Mon Sep 17 00:00:00 2001
From: Jordan Holt <jordan@vimium.com>
Date: Sun, 28 Apr 2024 15:59:52 +0100
Subject: [PATCH] Add apple_set_os EFI boot service
---
drivers/firmware/efi/libstub/x86-stub.c | 59 +++++++++++++++++++++++++
include/linux/efi.h | 1 +
2 files changed, 60 insertions(+)
diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c
index d5a8182cf..be722c43a 100644
--- a/drivers/firmware/efi/libstub/x86-stub.c
+++ b/drivers/firmware/efi/libstub/x86-stub.c
@@ -449,6 +449,63 @@ static void setup_graphics(struct boot_params *boot_params)
}
}
+typedef struct {
+ u64 version;
+ void (*set_os_version) (const char *os_version);
+ void (*set_os_vendor) (const char *os_vendor);
+} apple_set_os_interface_t;
+
+static efi_status_t apple_set_os()
+{
+ apple_set_os_interface_t *set_os;
+ efi_guid_t set_os_guid = APPLE_SET_OS_PROTOCOL_GUID;
+ efi_status_t status;
+ void **handles;
+ unsigned long i, nr_handles, size = 0;
+
+ status = efi_bs_call(locate_handle, EFI_LOCATE_BY_PROTOCOL,
+ &set_os_guid, NULL, &size, handles);
+
+ if (status == EFI_BUFFER_TOO_SMALL) {
+ status = efi_bs_call(allocate_pool, EFI_LOADER_DATA,
+ size, &handles);
+
+ if (status != EFI_SUCCESS)
+ return status;
+
+ status = efi_bs_call(locate_handle, EFI_LOCATE_BY_PROTOCOL,
+ &set_os_guid, NULL, &size, handles);
+ }
+
+ if (status != EFI_SUCCESS)
+ goto free_handle;
+
+ nr_handles = size / sizeof(void *);
+ for (i = 0; i < nr_handles; i++) {
+ void *h = handles[i];
+
+ status = efi_bs_call(handle_protocol, h,
+ &set_os_guid, &set_os);
+
+ if (status != EFI_SUCCESS || !set_os)
+ continue;
+
+ if (set_os->version > 0) {
+ efi_bs_call((unsigned long)set_os->set_os_version,
+ "Mac OS X 10.9");
+ }
+
+ if (set_os->version >= 2) {
+ efi_bs_call((unsigned long)set_os->set_os_vendor,
+ "Apple Inc.");
+ }
+ }
+
+free_handle:
+ efi_bs_call(free_pool, uga_handle);
+
+ return status;
+}
static void __noreturn efi_exit(efi_handle_t handle, efi_status_t status)
{
@@ -951,6 +1008,8 @@ void __noreturn efi_stub_entry(efi_handle_t handle,
setup_unaccepted_memory();
+ apple_set_os();
+
status = exit_boot(boot_params, handle);
if (status != EFI_SUCCESS) {
efi_err("exit_boot() failed!\n");
diff --git a/include/linux/efi.h b/include/linux/efi.h
index d59b0947f..81158014f 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -385,6 +385,7 @@ void efi_native_runtime_setup(void);
#define EFI_MEMORY_ATTRIBUTES_TABLE_GUID EFI_GUID(0xdcfa911d, 0x26eb, 0x469f, 0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20)
#define EFI_CONSOLE_OUT_DEVICE_GUID EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
#define APPLE_PROPERTIES_PROTOCOL_GUID EFI_GUID(0x91bd12fe, 0xf6c3, 0x44fb, 0xa5, 0xb7, 0x51, 0x22, 0xab, 0x30, 0x3a, 0xe0)
+#define APPLE_SET_OS_PROTOCOL_GUID EFI_GUID(0xc5c5da95, 0x7d5c, 0x45e6, 0xb2, 0xf1, 0x3f, 0xd5, 0x2b, 0xb1, 0x00, 0x77)
#define EFI_TCG2_PROTOCOL_GUID EFI_GUID(0x607f766c, 0x7455, 0x42be, 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f)
#define EFI_TCG2_FINAL_EVENTS_TABLE_GUID EFI_GUID(0x1e2ed096, 0x30e2, 0x4254, 0xbd, 0x89, 0x86, 0x3b, 0xbe, 0xf8, 0x23, 0x25)
#define EFI_LOAD_FILE_PROTOCOL_GUID EFI_GUID(0x56ec3091, 0x954c, 0x11d2, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
--
2.42.0

View File

@ -19,6 +19,8 @@
browsers = {
firefox.enable = true;
};
gnome.enable = lib.mkForce false;
kde.enable = true;
media.recording = {
audio.enable = true;
};

View File

@ -7,8 +7,13 @@
boot = {
initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
initrd.kernelModules = [ ];
kernelModules = [ "applesmc" "kvm-intel" "wl" ];
kernelPatches = [
{
name = "spoof-mac-os-x";
patch = ./0001-Add-apple_set_os-EFI-boot-service.patch;
}
];
extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
};
@ -18,10 +23,19 @@
hardware = {
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
opengl = {
enable = true;
extraPackages = with pkgs; [
intel-vaapi-driver
intel-media-driver
libvdpau-va-gl
];
driSupport = true;
};
};
environment.variables = {
VDPAU_DRIVER = "va_gl";
};
}

View File

@ -21,10 +21,6 @@ with lib.my;
allowedTCPPorts = [
22 # SSH
];
interfaces."podman+" = {
allowedUDPPorts = [ 53 ];
allowedTCPPorts = [ 53 ];
};
};
networkmanager.enable = true;
};
@ -153,6 +149,7 @@ with lib.my;
services.jellyfin.enable = true;
modules = {
podman.enable = true;
security = {
gpg.enable = true;
};

18
hosts/mail/README.md Normal file
View File

@ -0,0 +1,18 @@
# Mail server
## Overview
Mail server hosted in OVH.
## Specs
* CPU - ??
* Memory - ??
### Disks
Device | Partitions _(filesystem, usage)_
--- | ---
NVMe | `/dev/sda1` (ext4, NixOS Root)
### Networks
- DHCP on `10.0.1.0/24` subnet.
- Tailscale on `100.64.0.0/10` subnet. FQDN: `mail.mesh.vimium.net`.

49
hosts/mail/default.nix Normal file
View File

@ -0,0 +1,49 @@
{ config, lib, pkgs, inputs, ... }:
{
imports = [
./hardware-configuration.nix
./disko-config.nix
../server.nix
];
networking = {
hostId = "08ac2f14";
domain = "mesh.vimium.net";
firewall = {
enable = true;
allowedTCPPorts = [
22 # SSH
];
};
};
users = {
users = {
root = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILVHTjsyMIV4THNw6yz0OxAxGnC+41gX72UrPqTzR+OS jordan@vimium.com"
];
};
};
};
services.openssh.settings.PermitRootLogin = lib.mkForce "prohibit-password";
modules = {
services = {
borgmatic = {
enable = true;
directories = [
"/var/dkim"
"/var/lib"
"/var/vmail"
];
repoPath = "ssh://kg2mpt28@kg2mpt28.repo.borgbase.com/./repo";
};
mail.enable = true;
};
};
system.stateVersion = "22.11";
}

View File

@ -0,0 +1,55 @@
{ lib, ... }:
{
disko.devices = {
disk.disk1 = {
device = lib.mkDefault "/dev/sda";
type = "disk";
content = {
type = "gpt";
partitions = {
boot = {
name = "boot";
size = "2M";
type = "EF02";
};
esp = {
name = "ESP";
size = "300M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
name = "root";
size = "100%";
content = {
type = "lvm_pv";
vg = "pool";
};
};
};
};
};
lvm_vg = {
pool = {
type = "lvm_vg";
lvs = {
root = {
size = "100%FREE";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
mountOptions = [
"defaults"
];
};
};
};
};
};
};
}

View File

@ -0,0 +1,22 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
initrd = {
availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi" ];
kernelModules = [ "nvme" ];
};
loader.grub = {
efiSupport = true;
efiInstallAsRemovable = true;
};
tmp.cleanOnBoot = true;
};
zramSwap.enable = true;
}

View File

@ -47,13 +47,16 @@
browsers = {
firefox.enable = true;
};
gaming.emulators = {
gamecube.enable = true;
ps2.enable = true;
ps3.enable = true;
psp.enable = true;
wii.enable = true;
xbox.enable = true;
gaming = {
emulators = {
gamecube.enable = true;
ps2.enable = true;
ps3.enable = true;
psp.enable = true;
wii.enable = true;
xbox.enable = true;
};
lutris.enable = true;
};
media.graphics = {
modeling.enable = true;
@ -70,7 +73,6 @@
};
editors = {
neovim.enable = true;
vscode.enable = true;
};
hardware.presonus-studio.enable = true;
security = {
@ -82,9 +84,16 @@
enable = true;
directories = [
"/home/jordan/Documents"
"/home/jordan/Downloads"
"/home/jordan/Music"
"/home/jordan/Pictures"
"/home/jordan/projects"
"/home/jordan/Videos"
"/home/jordan/.mozilla"
];
repoPath = "ssh://iqwu22oq@iqwu22oq.repo.borgbase.com/./repo";
};
gitea-runner.enable = true;
};
shell = {
git.enable = true;

View File

@ -7,8 +7,17 @@
documentation.enable = false;
fonts.fontconfig.enable = false;
security = {
acme.acceptTerms = true;
acme = {
acceptTerms = true;
defaults = {
email = "hostmaster@vimium.com";
group = "nginx";
webroot = "/var/lib/acme/acme-challenge";
};
};
auditd.enable = true;
audit = {
enable = true;
@ -18,6 +27,33 @@
};
};
systemd = {
enableEmergencyMode = false;
sleep.extraConfig = ''
AllowSuspend=no
AllowHibernation=no
'';
watchdog = {
runtimeTime = "20s";
rebootTime = "30s";
};
};
services.fail2ban = {
enable = true;
bantime = "1h";
bantime-increment = {
enable = true;
maxtime = "24h";
rndtime = "7m";
};
ignoreIP = [
"100.64.0.0/10"
];
};
modules.networking.tailscale = {
enable = true;
restrictSSH = false;

View File

@ -40,12 +40,6 @@
services.openssh.settings.PermitRootLogin = lib.mkForce "prohibit-password";
security.acme.defaults = {
email = "hostmaster@vimium.com";
group = "nginx";
webroot = "/var/lib/acme/acme-challenge";
};
modules = {
services = {
borgmatic = {
@ -62,6 +56,7 @@
headscale.enable = true;
matrix-synapse.enable = true;
nginx.enable = true;
photoprism.enable = true;
};
};

View File

@ -1,7 +1,10 @@
{
imports = [
./options.nix
./podman.nix
./desktop/gnome.nix
./desktop/hyprland.nix
./desktop/kde.nix
./desktop/mimeapps.nix
./desktop/apps/qbittorrent.nix
./desktop/apps/slack.nix
@ -31,11 +34,15 @@
./security/gpg.nix
./security/pass.nix
./services/borgmatic
./services/chrony
./services/coturn
./services/gitea
./services/gitea-runner
./services/headscale
./services/mail
./services/matrix-synapse
./services/nginx
./services/photoprism
./shell/git
./shell/zsh
];

View File

@ -54,11 +54,11 @@ in {
};
config = {
user.packages = with pkgs.unstable; [
user.packages = with pkgs; [
(lib.mkIf cfg.ps1.enable duckstation)
(lib.mkIf cfg.ps2.enable pcsx2)
(lib.mkIf cfg.ps2.enable unstable.pcsx2)
(lib.mkIf cfg.ps3.enable rpcs3)
(lib.mkIf cfg.psp.enable ppsspp)
(lib.mkIf cfg.psp.enable unstable.ppsspp)
(lib.mkIf cfg.ds.enable desmume)
(lib.mkIf (cfg.gba.enable ||
cfg.gb.enable ||
@ -68,7 +68,7 @@ in {
(lib.mkIf (cfg.wii.enable ||
cfg.gamecube.enable)
dolphin-emu)
(lib.mkIf cfg.xbox.enable xemu)
(lib.mkIf cfg.xbox.enable unstable.xemu)
];
};
}

View File

@ -10,8 +10,13 @@ in {
};
config = lib.mkIf cfg.enable {
user.packages = with pkgs; [
lutris
environment.systemPackages = with pkgs; [
(lutris.override {
extraPkgs = pkgs: [
winePackages.staging
wine64Packages.staging
];
})
vulkan-loader
vulkan-tools
];

View File

@ -100,8 +100,8 @@ in {
window-gap = 8;
};
"org/gnome/desktop/background" = {
picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-l.jpg";
picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-d.jpg";
picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-l.jxl";
picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-d.jxl";
};
"org/gnome/desktop/peripherals/touchpad" = {
tap-to-click = true;
@ -135,6 +135,8 @@ in {
};
"org/gnome/Console" = {
font-scale = 1.4;
use-system-font = false;
custom-font = "ComicShannsMono Nerd Font 10";
};
"org/gnome/mutter" = {
center-new-windows = true;
@ -142,9 +144,9 @@ in {
experimental-features = [ "scale-monitor-framebuffer" ];
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
enable-hot-corners = false;
monospace-font-name = "Ubuntu Mono 11";
icon-theme = "MoreWaita";
monospace-font-name = "UbuntuMono Nerd Font 11";
};
"org/gnome/desktop/wm/keybindings" = {
switch-group = [ "<Super>grave" ];
@ -155,39 +157,30 @@ in {
};
};
fonts.packages = with pkgs; [
noto-fonts
ubuntu_font_family
];
user.packages = with pkgs; [
authenticator
bottles
bustle
# bottles
# bustle
celluloid
d-spy
drawing
fragments
# d-spy
# drawing
# fragments
gnome.ghex
# gnome-builder
gnome-decoder
gnome-firmware
gnome-frog
gnome-obfuscate
# gnome-obfuscate
gnome-podcasts
identity
mission-center
newsflash
schemes
# schemes
shortwave
];
environment.systemPackages = with pkgs; [
adw-gtk3
bind
bmon
fd
ffmpeg
gnome.gnome-boxes
gnomeExtensions.another-window-session-manager
# gnomeExtensions.bifocals
@ -195,7 +188,7 @@ in {
gnomeExtensions.browser-tabs
gnomeExtensions.burn-my-windows
gnomeExtensions.desktop-cube
gnomeExtensions.desktop-zoom
# gnomeExtensions.desktop-zoom
gnomeExtensions.espresso
gnome44Extensions."flypie@schneegans.github.com"
# gnomeExtensions.forge
@ -218,18 +211,11 @@ in {
# gnomeExtensions.window-is-ready-remover
# gnomeExtensions.worksets
# gnomeExtensions.workspace-matrix
iotop
unstable.morewaita-icon-theme
ripgrep
rsync
tcpdump
tokei
tree
wl-clipboard
] ++ (if config.virtualisation.podman.enable then [
pods
] else []);
home.services.gpg-agent.pinentryFlavor = "gnome3";
home.services.gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
};
}

View File

@ -0,0 +1,27 @@
{ config, lib, pkgs, ... }:
let cfg = config.modules.desktop.hyprland;
in {
options.modules.desktop.hyprland = {
enable = lib.mkOption {
default = false;
example = true;
};
};
config = lib.mkIf cfg.enable {
programs.hyprland.enable = true;
networking.networkmanager.enable = true;
user.packages = with pkgs; [
mpv
];
environment.systemPackages = with pkgs; [
adw-gtk3
];
home.services.gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
};
}

35
modules/desktop/kde.nix Normal file
View File

@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }:
let cfg = config.modules.desktop.kde;
in {
options.modules.desktop.kde = {
enable = lib.mkOption {
default = false;
example = true;
};
};
config = lib.mkIf cfg.enable {
services.xserver = {
enable = true;
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
desktopManager.plasma5.enable = true;
};
networking.networkmanager.enable = true;
user.packages = with pkgs; [
kmail
mpv
];
environment.systemPackages = with pkgs; [
adw-gtk3
];
home.services.gpg-agent.pinentryPackage = pkgs.pinentry-qt;
};
}

View File

@ -11,7 +11,10 @@ in {
config = lib.mkIf cfg.enable {
user.packages = with pkgs; [
libreoffice
(if config.modules.desktop.kde.enable == true then libreoffice-qt else libreoffice)
hunspell
hunspellDicts.en-gb-large
hunspellDicts.en-us-large
];
};
}

View File

@ -2,7 +2,6 @@
let
cfg = config.modules.editors.neovim;
dev = config.modules.dev;
in {
options.modules.editors.neovim = {
enable = lib.mkOption {
@ -12,124 +11,129 @@ in {
};
config = lib.mkIf cfg.enable {
user.packages = with pkgs; [
(neovim.override {
configure = {
customRC = ''
luafile ~/.config/nvim/init.lua
'';
packages.myPlugins = with pkgs.vimPlugins; {
start = [
(nvim-treesitter.withPlugins (
plugins: with plugins; [
bash
c
cmake
cpp
css
dockerfile
elm
glsl
graphql
haskell
http
html
java
javascript
jsdoc
json
json5
latex
lua
markdown
ninja
nix
org
perl
php
pug
python
regex
rst
ruby
rust
scala
scss
toml
tsx
typescript
vim
yaml
zig
]
))
nvim-treesitter-context
nvim-treesitter-textobjects
nvim-lspconfig
];
home.programs.nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
options = {
number = true;
tabstop = 2;
shiftwidth = 2;
expandtab = true;
foldlevel = 99;
splitbelow = true;
splitright = true;
undofile = true;
updatetime = 100;
list = true;
};
globals = {
mapleader = ",";
maplocalleader = ",";
};
clipboard = {
register = "unnamedplus";
providers.wl-copy.enable = true;
};
plugins.comment.enable = true;
plugins.hmts.enable = true;
plugins.lightline.enable = true;
plugins.luasnip.enable = true;
plugins.lsp = {
enable = true;
servers = {
bashls.enable = true;
ccls.enable = true;
cssls.enable = true;
eslint.enable = true;
gopls.enable = true;
html.enable = true;
lua-ls.enable = true;
pylsp.enable = true;
nixd.enable = true;
rust-analyzer = {
enable = true;
installCargo = true;
installRustc = true;
};
tsserver.enable = true;
};
};
plugins.nvim-autopairs.enable = true;
plugins.cmp = {
enable = true;
autoEnableSources = true;
settings = {
sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
];
mapping = {
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
"<CR>" = "cmp.mapping.confirm({ select = true })";
};
};
})
] ++
};
# Install appropriate language servers
(if dev.cc.enable then [
ccls # C/C++
] else []) ++
(if dev.java.enable then [
java-language-server # Java
ltex-ls # LaTeX
] else []) ++
(if dev.lua.enable then [
sumneko-lua-language-server # Lua
] else []) ++
(if dev.node.enable then [
nodePackages.bash-language-server # Bash
nodePackages.dockerfile-language-server-nodejs # Dockerfile
nodePackages.graphql-language-service-cli # GraphQL
nodePackages.purescript-language-server # PureScript
nodePackages.svelte-language-server # Svelte
nodePackages.typescript-language-server # JavaScript/TypeScript
nodePackages.vim-language-server # Vim
nodePackages.vscode-langservers-extracted # HTML, CSS, JSON, ESLint
nodePackages.vue-language-server # Vue.js
nodePackages.yaml-language-server # YAML
] else []) ++
(if dev.python.enable then [
cmake-language-server # CMake
python310Packages.python-lsp-server # Python
] else []) ++
(if dev.rust.enable then [
rust-analyzer # Rust
] else []) ++
(if dev.scala.enable then [
metals # Scala
] else []) ++
(if dev.zig.enable then [
zls # Zig
] else []);
plugins.telescope = {
enable = true;
keymaps = {
"<leader>ff" = "find_files";
"<leader>fg" = "live_grep";
"<leader>b" = "buffers";
"<leader>fh" = "help_tags";
"<C-p>" = "git_files";
"<C-f>" = "live_grep";
};
};
home.configFile = {
"nvim/init.lua".source = ./init.lua;
"nvim/lua" = { source = ./lua; recursive = true; };
"nvim/lua/config/lsp.lua".text = ''
-- This file is autogenerated, do not edit.
${if dev.cc.enable then "require('config.lsp.cc')\n" else ""}
${if dev.java.enable then "require('config.lsp.java')\n" else ""}
${if dev.lua.enable then "require('config.lsp.lua')\n" else ""}
${if dev.node.enable then "require('config.lsp.node')\n" else ""}
${if dev.python.enable then "require('config.lsp.python')\n" else ""}
${if dev.rust.enable then "require('config.lsp.rust')\n" else ""}
${if dev.scala.enable then "require('config.lsp.scala')\n" else ""}
${if dev.zig.enable then "require('config.lsp.zig')\n" else ""}
'';
plugins.treesitter = {
enable = true;
nixvimInjections = true;
folding = true;
indent = true;
};
plugins.treesitter-refactor = {
enable = true;
highlightDefinitions = {
enable = true;
clearOnCursorMove = false;
};
};
plugins.undotree.enable = true;
# plugins.gitsigns.enable = true;
# plugins.gitgutter.enable = true;
# plugins.goyo.enable = true;
# plugins.fugitive.enable = true;
# plugins.fzf-lua.enable = true;
# plugins.neo-tree.enable = true;
# plugins.none-ls.enable = true;
# plugins.nvim-tree.enable = true;
# plugins.oil.enable = true;
# plugins.project-nvim.enable = true;
# plugins.surround.enable = true;
};
env.EDITOR = "nvim";
environment.shellAliases = {
vim = "nvim";
v = "nvim";
};
};
}

View File

@ -1,6 +0,0 @@
require("config.core")
require("config.keymap")
require("config.treesitter")
require("config.plugins")
require("config.lsp")

View File

@ -1,36 +0,0 @@
local o = vim.opt
local wo = vim.wo
local bo = vim.bo
-- Global dirs
local cachedir = os.getenv("XDG_CACHE_HOME")
o.backupdir = cachedir .. "/nvim/backup/"
o.directory = cachedir .. "/nvim/swap/"
o.undodir = cachedir .. "/nvim/undo/"
-- Global
o.breakindent = true
o.clipboard = "unnamedplus"
o.compatible = false
o.encoding = "utf-8"
o.expandtab = true
o.foldlevel = 99
o.hidden = true
o.hlsearch = false
o.ignorecase = true
o.laststatus = 2
o.listchars = { eol = '', tab = '', trail = '·' }
o.relativenumber = true
o.shiftwidth = 2
o.showmode = false
o.smartcase = true
o.smarttab = true
o.softtabstop = 2
o.synmaxcol = 150
o.tabstop = 4
o.undofile = true
o.wildmenu = true
-- Window
-- Buffer

View File

@ -1,35 +0,0 @@
local keymap = vim.keymap.set
local opts = { noremap = true, silent = true }
vim.g.mapleader = ","
-- Modes
-- Normal = "n",
-- Insert = "i",
-- Visual = "v",
-- Visual Block = "x",
-- Term = "t",
-- Command = "c"
keymap("n", "<Left>", "<Nop>", opts)
keymap("n", "<Right>", "<Nop>", opts)
keymap("n", "<Up>", "<Nop>", opts)
keymap("n", "<Down>", "<Nop>", opts)
keymap("n", "<C-h>", "<C-w>h", { noremap = true })
keymap("n", "<C-j>", "<C-w>j", { noremap = true })
keymap("n", "<C-k>", "<C-w>k", { noremap = true })
keymap("n", "<C-l>", "<C-w>l", { noremap = true })
keymap("n", "gV", "`[v`]", opts)
keymap("n", ";", ":", { noremap = true })
-- Bubble single lines with vim-unimpaired
keymap("n", "<C-Up>", "[e", opts)
keymap("n", "<C-Down>", "]e", opts)
-- Bubble multiple lines with vim-unimpaired
keymap("v", "<C-Up>", "[egv", opts)
keymap("v", "<C-Down>", "]egv", opts)

View File

@ -1,5 +0,0 @@
lspconfig = require('lspconfig')
-- Requires C/C++
lspconfig.ccls.setup{}

View File

@ -1,6 +0,0 @@
lspconfig = require('lspconfig')
-- Requires Java
lspconfig.java_language_server.setup{}
lspconfig.ltex.setup{}

View File

@ -1,22 +0,0 @@
lspconfig = require('lspconfig')
-- Requires Lua
lspconfig.sumneko_lua.setup {
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = {'vim'},
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
},
},
}

View File

@ -1,17 +0,0 @@
lspconfig = require('lspconfig')
-- Requires Node.js
lspconfig.bashls.setup{}
lspconfig.cssls.setup{}
lspconfig.dockerls.setup{}
lspconfig.eslint.setup{}
lspconfig.graphql.setup{}
lspconfig.html.setup{}
lspconfig.jsonls.setup{}
lspconfig.purescriptls.setup{}
lspconfig.svelte.setup{}
lspconfig.tsserver.setup{}
lspconfig.vimls.setup{}
lspconfig.vuels.setup{}
lspconfig.yamlls.setup{}

View File

@ -1,6 +0,0 @@
lspconfig = require('lspconfig')
-- Requires Python
lspconfig.cmake.setup{}
lspconfig.pylsp.setup{}

View File

@ -1,5 +0,0 @@
lspconfig = require('lspconfig')
-- Requires Rust
lspconfig.rls.setup{}

View File

@ -1,5 +0,0 @@
lspconfig = require('lspconfig')
-- Requires Scala
lspconfig.metals.setup{}

View File

@ -1,5 +0,0 @@
lspconfig = require('lspconfig')
-- Requires Zig
lspconfig.zls.setup{}

View File

@ -1,77 +0,0 @@
local fn = vim.fn
local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim"
if fn.empty(fn.glob(install_path)) > 0 then
PACKER_BOOTSTRAP = fn.system {
"git",
"clone",
"--depth",
"1",
"https://github.com/wbthomason/packer.nvim",
install_path,
}
print "Installing packer close and reopen Neovim..."
vim.cmd [[packadd packer.nvim]]
end
vim.cmd [[
augroup packer_user_config
autocmd!
autocmd BufWritePost plugins.lua source <afile> | PackerSync
augroup end
]]
local status_ok, packer = pcall(require, "packer")
if not status_ok then
return
end
packer.init {
display = {
open_fn = function()
return require("packer.util").float { border = "rounded" }
end,
},
}
return packer.startup(function(use)
-- Utilities
use { "wbthomason/packer.nvim", opt = true }
use { "mbbill/undotree" }
use { "nvim-lua/plenary.nvim" }
use { "tpope/vim-fugitive", event = "User InGitRepo" }
-- Editing
use { "andymass/vim-matchup" }
use { "godlygeek/tabular" }
use { "JoosepAlviste/nvim-ts-context-commentstring" }
use { "kana/vim-textobj-user" }
use { "mg979/vim-visual-multi", branch = "master" }
use { "p00f/nvim-ts-rainbow" }
use { "terryma/vim-expand-region" }
use { "tommcdo/vim-exchange", event = "VimEnter" }
use { "tpope/vim-abolish" }
use { "tpope/vim-commentary", event = "VimEnter" }
use { "tpope/vim-repeat", event = "VimEnter" }
use { "tpope/vim-surround", event = "VimEnter" }
use { "windwp/nvim-autopairs" }
use { "windwp/nvim-ts-autotag" }
-- UI
use { "junegunn/goyo.vim" }
use { "junegunn/limelight.vim" }
use { "markonm/traces.vim" }
-- Searching
use { "nvim-telescope/telescope.nvim", config = [[require('config.telescope')]] }
use { "cljoly/telescope-repo.nvim", requires = "telescope.nvim" }
use { "dyng/ctrlsf.vim" }
-- LSP
use { "jose-elias-alvarez/null-ls.nvim" }
if PACKER_BOOTSTRAP then
require("packer").sync()
end
end)

View File

@ -1,46 +0,0 @@
local status_ok, telescope = pcall(require, "telescope")
if not status_ok then
return
end
local actions = require("telescope.actions")
telescope.setup({
defaults = {
file_ignore_patterns = { ".git/", "node_modules" },
},
mappings = {
i = {
["<Down>"] = actions.cycle_history_next,
["<Up>"] = actions.cycle_history_prev,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
},
},
extensions = {
repo = {
list = {
fd_opts = {
"--no-ignore-vcs",
},
search_dirs = {
"~/projects",
"~/repos",
"~/workspace",
},
},
},
},
})
telescope.load_extension("repo")
local keymap = vim.keymap.set
local opts = { noremap = true, silent = true }
keymap("n", "<Leader>ff", "<cmd>Telescope find_files<cr>", opts)
keymap("n", "<Leader>fg", "<cmd>Telescope live_grep<cr>", opts)
keymap("n", "<Leader>fb", "<cmd>Telescope buffers<cr>", opts)
keymap("n", "<Leader>fh", "<cmd>Telescope help_tags<cr>", opts)
keymap("n", "<Leader>fr", "<cmd>Telescope repo list<cr>", opts)

View File

@ -1,35 +0,0 @@
require("nvim-treesitter.configs").setup({
ignore_install = {},
highlight = {
enable = true,
disable = {},
},
indent = { enable = true },
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
-- Extensions
autotag = { enable = true },
context_commentstring = { enable = true },
matchup = { enable = true },
rainbow = { enable = true },
textobjects = {
select = {
enable = true,
keymaps = {
["af"] = "@function.outer",
["if"] = "@function.inner",
},
},
},
})
vim.opt.foldmethod = "expr"
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"

View File

@ -7,12 +7,12 @@ let
patched = snd-usb-audio-module.overrideAttrs (prev: {
patches = [ ./0001-Update-device-ID-for-PreSonus-1824c.patch ];
});
upmixConfig = ''
stream.properties = {
channelmix.upmix = true
channelmix.upmix-method = psd
}
'';
upmixConfig = {
"stream.properties" = {
"channelmix.upmix" = true;
"channelmix.upmix-method" = "psd";
};
};
in {
options.modules.hardware.presonus-studio = {
enable = lib.mkOption {
@ -27,43 +27,62 @@ in {
(patched)
];
environment.etc = {
"pipewire/pipewire.conf.d/10-network.conf".text = ''
context.modules = [
{
name = libpipewire-module-rtp-session
args = {
stream.props = {
node.name = "rtp-source"
}
}
}
]
# Workaround for mainline module loading instead of patched module
systemd.services.reload-snd-usb-audio = {
description = "Reload snd_usb_audio kernel module";
wantedBy = [ "sound.target" ];
serviceConfig.Type = "oneshot";
path = with pkgs; [
kmod
];
script = ''
# Only reload if device hasn't been initialised
if ! cat /proc/asound/card*/usbmixer | grep -q "Mute Main Out Switch"; then
rmmod snd_usb_audio
insmod /run/booted-system/kernel-modules/lib/modules/$(uname -r)/extra/snd-usb-audio.ko.xz
fi
'';
"pipewire/pipewire.conf.d/surround.conf".text = ''
context.modules = [
{
name = libpipewire-module-loopback
args = {
node.description = "Genelec 4.1 Surround"
capture.props = {
node.name = "Genelec_Speakers"
media.class = "Audio/Sink"
audio.position = [ FL FR SL SR LFE ]
}
playback.props = {
node.name = "playback.Genelec_Speakers"
audio.position = [ AUX0 AUX1 AUX3 AUX4 AUX5 ]
target.object = "alsa_output.usb-PreSonus_Studio_1824c_SC4E21110775-00.multichannel-output"
stream.dont-remix = true
node.passive = true
}
};
services.pipewire.extraConfig = {
pipewire = {
"10-network" = {
"context.modules" = [
{
"name" = "libpipewire-module-rtp-session";
"args" = {
"stream.props" = {
"node.name" = "rtp-source";
};
};
}
}
]
'';
"pipewire/pipewire-pulse.conf.d/40-upmix.conf".text = upmixConfig;
"pipewire/client-rt.conf.d/40-upmix.conf".text = upmixConfig;
];
};
"surround" = {
"context.modules" = [
{
"name" = "libpipewire-module-loopback";
"args" = {
"node.description" = "Genelec 4.1 Surround";
"capture.props" = {
"node.name" = "Genelec_Speakers";
"media.class" = "Audio/Sink";
"audio.position" = [ "FL" "FR" "SL" "SR" "LFE" ];
};
"playback.props" = {
"node.name" = "playback.Genelec_Speakers";
"audio.position" = [ "AUX0" "AUX1" "AUX3" "AUX4" "AUX5" ];
"target.object" = "alsa_output.usb-PreSonus_Studio_1824c_SC4E21110775-00.multichannel-output";
"stream.dont-remix" = true;
"node.passive" = true;
};
};
}
];
};
};
pipewire-pulse."40-upmix" = upmixConfig;
client-rt."40-upmix" = upmixConfig;
};
};
}

View File

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ config, inputs, lib, pkgs, ... }:
let cfg = config.modules.networking.tailscale;
let
cfg = config.modules.networking.tailscale;
headscale = "https://headscale.vimium.net";
hostname = config.networking.hostName;
in {
options.modules.networking.tailscale = {
enable = lib.mkOption {
@ -14,8 +17,24 @@ in {
};
config = lib.mkIf cfg.enable {
services.tailscale.enable = true;
age.secrets."passwords/services/tailscale/${hostname}-authkey" = {
file = "${inputs.secrets}/passwords/services/tailscale/${hostname}-authkey.age";
};
environment.systemPackages = [ pkgs.tailscale ];
services.tailscale = {
enable = true;
authKeyFile = config.age.secrets."passwords/services/tailscale/${hostname}-authkey".path;
extraUpFlags = [
"--login-server"
headscale
];
};
services.openssh.openFirewall = !cfg.restrictSSH;
networking.firewall = {
checkReversePath = "loose";
trustedInterfaces = [ "tailscale0" ];

View File

@ -66,6 +66,10 @@ with lib;
};
dconf.settings = mkAliasDefinitions options.dconf.settings;
};
sharedModules = [
inputs.nixvim.homeManagerModules.nixvim
];
};
users.users.${config.user.name} = mkAliasDefinitions options.user;

45
modules/podman.nix Normal file
View File

@ -0,0 +1,45 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.modules.podman;
in {
options.modules.podman = {
enable = mkOption {
default = false;
example = true;
description = mdDoc "Enable podman on this host";
};
};
config = mkIf cfg.enable {
virtualisation = {
docker.enable = false;
podman = {
enable = true;
defaultNetwork.settings.dns_enabled = true;
autoPrune = {
enable = true;
dates = "weekly";
flags = [ "--all" ];
};
extraPackages = [ pkgs.zfs ];
};
containers.storage.settings.storage = {
driver = "zfs";
graphroot = "/var/lib/containers/storage";
runroot = "/run/containers/storage";
};
oci-containers.backend = "podman";
};
networking.firewall.interfaces."podman+" = {
allowedUDPPorts = [ 53 ];
allowedTCPPorts = [ 53 ];
};
};
}

View File

@ -0,0 +1,41 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.modules.services.chrony;
in {
options.modules.services.chrony = {
enable = mkOption {
default = false;
example = true;
description = "Enable chrony NTP deamon";
};
config = mkIf cfg.enable {
services.chrony = {
enable = true;
servers = [
"uk.pool.ntp.org"
"time.cloudflare.com"
];
extraConfig = ''
makestep 1.0 3
bindaddress 0.0.0.0
port 123
allow
'';
};
services.timesyncd.enable = mkForce false;
networking.firewall = {
allowedUDPPorts = [ 123 ];
allowedTCPPorts = [ 123 ];
};
};
};
}

View File

@ -0,0 +1,226 @@
{ pkgs, config, lib, inputs, ... }:
# Based on: https://git.clan.lol/clan/clan-infra/src/branch/main/modules/web01/gitea/actions-runner.nix
with lib;
let
cfg = config.modules.services.gitea-runner;
hostname = config.networking.hostName;
giteaUrl = "https://git.vimium.com";
storeDepsBins = with pkgs; [
coreutils
findutils
gnugrep
gawk
git
nix
nix-update
bash
jq
nodejs
];
storeDeps = pkgs.runCommand "store-deps" { } ''
mkdir -p $out/bin
for dir in ${toString storeDepsBins}; do
for bin in "$dir"/bin/*; do
ln -s "$bin" "$out/bin/$(basename "$bin")"
done
done
# Add SSL CA certs
mkdir -p $out/etc/ssl/certs
cp -a "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" $out/etc/ssl/certs/ca-bundle.crt
'';
in
{
options.modules.services.gitea-runner = {
enable = mkOption {
default = false;
example = true;
description = mdDoc "Enable a runner for Gitea Actions on this host";
};
};
config = mkIf cfg.enable {
modules.podman.enable = true;
systemd.services = {
gitea-runner-nix-image = {
wantedBy = [ "multi-user.target" ];
after = [ "podman.service" ];
requires = [ "podman.service" ];
path = [ config.virtualisation.podman.package pkgs.gnutar pkgs.shadow pkgs.getent ];
script = ''
set -eux -o pipefail
mkdir -p etc/nix
# Create an unpriveleged user that we can use also without the run-as-user.sh script
touch etc/passwd etc/group
groupid=$(cut -d: -f3 < <(getent group nix-ci-user))
userid=$(cut -d: -f3 < <(getent passwd nix-ci-user))
groupadd --prefix $(pwd) --gid "$groupid" nix-ci-user
emptypassword='$6$1ero.LwbisiU.h3D$GGmnmECbPotJoPQ5eoSTD6tTjKnSWZcjHoVTkxFLZP17W9hRi/XkmCiAMOfWruUwy8gMjINrBMNODc7cYEo4K.'
useradd --prefix $(pwd) -p "$emptypassword" -m -d /tmp -u "$userid" -g "$groupid" -G nix-ci-user nix-ci-user
cat <<NIX_CONFIG > etc/nix/nix.conf
accept-flake-config = true
experimental-features = nix-command flakes
NIX_CONFIG
cat <<NSSWITCH > etc/nsswitch.conf
passwd: files mymachines systemd
group: files mymachines systemd
shadow: files
hosts: files mymachines dns myhostname
networks: files
ethers: files
services: files
protocols: files
rpc: files
NSSWITCH
# list the content as it will be imported into the container
tar -cv . | tar -tvf -
tar -cv . | podman import - gitea-runner-nix
'';
serviceConfig = {
RuntimeDirectory = "gitea-runner-nix-image";
WorkingDirectory = "/run/gitea-runner-nix-image";
Type = "oneshot";
RemainAfterExit = true;
};
};
gitea-runner-nix = {
after = [ "gitea-runner-nix-image.service" ];
requires = [ "gitea-runner-nix-image.service" ];
serviceConfig = {
# Hardening (may overlap with DynamicUser=)
# The following options are only for optimizing output of systemd-analyze
AmbientCapabilities = "";
CapabilityBoundingSet = "";
# ProtectClock= adds DeviceAllow=char-rtc r
DeviceAllow = "";
NoNewPrivileges = true;
PrivateDevices = true;
PrivateMounts = true;
PrivateTmp = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "strict";
RemoveIPC = true;
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
UMask = "0066";
ProtectProc = "invisible";
SystemCallFilter = [
"~@clock"
"~@cpu-emulation"
"~@module"
"~@mount"
"~@obsolete"
"~@raw-io"
"~@reboot"
"~@swap"
# needed by go?
#"~@resources"
"~@privileged"
"~capset"
"~setdomainname"
"~sethostname"
];
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" "AF_NETLINK" ];
# Needs network access
PrivateNetwork = false;
# Cannot be true due to Node
MemoryDenyWriteExecute = false;
# The more restrictive "pid" option makes `nix` commands in CI emit
# "GC Warning: Couldn't read /proc/stat"
# You may want to set this to "pid" if not using `nix` commands
ProcSubset = "all";
# Coverage programs for compiled code such as `cargo-tarpaulin` disable
# ASLR (address space layout randomization) which requires the
# `personality` syscall
# You may want to set this to `true` if not using coverage tooling on
# compiled code
LockPersonality = false;
# Note that this has some interactions with the User setting; so you may
# want to consult the systemd docs if using both.
DynamicUser = true;
};
};
};
users.users.nix-ci-user = {
group = "nix-ci-user";
description = "Used for running nix-based CI jobs";
home = "/var/empty";
isSystemUser = true;
};
users.groups.nix-ci-user = { };
age.secrets."files/services/gitea-runner/${hostname}-token" = {
file = "${inputs.secrets}/files/services/gitea-runner/${hostname}-token.age";
group = "podman";
};
services.gitea-actions-runner.instances = {
act = {
enable = true;
url = giteaUrl;
name = "act-runner-${hostname}";
tokenFile = config.age.secrets."files/services/gitea-runner/${hostname}-token".path;
settings = {
cache.enabled = true;
runner.capacity = 4;
};
labels = [
"debian-latest:docker://ghcr.io/catthehacker/ubuntu:act-latest"
"ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-latest"
];
};
nix = {
enable = true;
url = giteaUrl;
name = "nix-runner-${hostname}";
tokenFile = config.age.secrets."files/services/gitea-runner/${hostname}-token".path;
settings = {
cache.enabled = true;
container = {
options = "-e NIX_BUILD_SHELL=/bin/bash -e PAGER=cat -e PATH=/bin -e SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt --device /dev/kvm -v /nix:/nix -v ${storeDeps}/bin:/bin -v ${storeDeps}/etc/ssl:/etc/ssl --user nix-ci-user";
network = "host";
valid_volumes = [
"/nix"
"${storeDeps}/bin"
"${storeDeps}/etc/ssl"
];
};
runner.capacity = 4;
};
labels = [
"nix:docker://gitea-runner-nix"
];
};
};
};
}

View File

@ -39,6 +39,13 @@ in {
};
};
systemd.tmpfiles.rules = [
"d '${config.services.gitea.customDir}/public/assets/css' 0750 ${config.services.gitea.user} ${config.services.gitea.group} - -"
"L+ '${config.services.gitea.customDir}/public/assets/css/theme-github.css' - - - - ${inputs.gitea-github-theme}/theme-github.css"
"L+ '${config.services.gitea.customDir}/public/assets/css/theme-github-auto.css' - - - - ${inputs.gitea-github-theme}/theme-github-auto.css"
"L+ '${config.services.gitea.customDir}/public/assets/css/theme-github-dark.css' - - - - ${inputs.gitea-github-theme}/theme-github-dark.css"
];
services.gitea = rec {
package = pkgs.unstable.gitea;
enable = true;
@ -57,19 +64,23 @@ in {
};
settings = {
server = {
DOMAIN = config.networking.domain;
LANDING_PAGE = "explore";
OFFLINE_MODE = true;
PROTOCOL = "http+unix";
SSH_USER = "git";
SSH_DOMAIN = "git.vimium.com";
SSH_PORT = lib.head config.services.openssh.ports;
OFFLINE_MODE = true;
PROTOCOL = "http+unix";
DOMAIN = config.networking.domain;
ROOT_URL = "https://git.vimium.com/";
};
service.DISABLE_REGISTRATION = true;
session.COOKIE_SECURE = true;
log.ROOT_PATH = "${stateDir}/log";
log = {
ROOT_PATH = "${stateDir}/log";
DISABLE_ROUTER_LOG = true;
};
ui = {
THEMES = "gitea,arc-green,github-dark,bthree-dark";
THEMES = "gitea,arc-green,github,github-auto,github-dark";
DEFAULT_THEME = "github-dark";
};
actions.ENABLED = true;

View File

@ -4,6 +4,7 @@ with lib;
let
cfg = config.modules.services.headscale;
fqdn = "headscale.vimium.net";
in {
options.modules.services.headscale = {
enable = mkOption {
@ -13,8 +14,27 @@ in {
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.headscale ];
services.headscale = {
enable = true;
port = 8080;
settings = {
ip_prefixes = [
"100.64.0.0/10"
];
server_url = "https://${fqdn}";
dns_config = {
base_domain = "vimium.net";
};
logtail.enabled = false;
};
};
services.nginx.virtualHosts = {
"headscale.vimium.net" = {
"${fqdn}" = {
forceSSL = true;
enableACME = true;
locations."/" = {
@ -23,21 +43,5 @@ in {
};
};
};
services.headscale = {
enable = true;
port = 8080;
settings = {
server_url = "https://headscale.vimium.net";
dns_config = {
base_domain = "vimium.net";
};
logtail.enabled = false;
};
};
environment.systemPackages = with pkgs; [
config.services.headscale.package
];
};
}

View File

@ -0,0 +1,69 @@
{ config, lib, pkgs, ... }:
let
cfg = config.modules.services.mail;
domains = [
"h0lt.com"
"jdholt.com"
"jordanholt.xyz"
"vimium.co"
"vimium.com"
"vimium.co.uk"
"vimium.info"
"vimium.net"
"vimium.org"
"vimium.xyz"
];
in {
options.modules.services.mail = {
enable = lib.mkOption {
default = false;
example = true;
};
};
config = lib.mkIf cfg.enable {
services.roundcube = {
enable = true;
hostName = config.mailserver.fqdn;
extraConfig = ''
$config['smtp_server'] = "tls://${config.mailserver.fqdn}";
$config['smtp_user'] = "%u";
$config['smtp_pass'] = "%p";
'';
};
services.nginx.enable = true;
networking.firewall.allowedTCPPorts = [ 80 443 ];
mailserver = {
enable = true;
fqdn = "mail.vimium.com";
domains = domains;
indexDir = "/var/lib/dovecot/indices";
certificateDomains = [
"imap.vimium.com"
"smtp.vimium.com"
];
certificateScheme = "acme-nginx";
fullTextSearch.enable = true;
loginAccounts = {
"jordan@vimium.com" = {
hashedPasswordFile = config.users.users.jordan.hashedPasswordFile;
catchAll = domains;
};
};
extraVirtualAliases = {
"hostmaster@vimium.com" = "jordan@vimium.com";
"postmaster@vimium.com" = "jordan@vimium.com";
"webmaster@vimium.com" = "jordan@vimium.com";
"abuse@vimium.com" = "jordan@vimium.com";
};
};
};
}

View File

@ -0,0 +1,57 @@
{ config, lib, pkgs, inputs, ... }:
with lib;
let cfg = config.modules.services.photoprism;
in {
options.modules.services.photoprism = {
enable = mkOption {
default = false;
example = true;
};
};
config = mkIf cfg.enable {
services.nginx = {
virtualHosts = {
"gallery.vimium.com" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://localhost:${toString config.services.photoprism.port}";
extraConfig = ''
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
'';
};
};
};
};
age.secrets."passwords/services/photoprism/admin" = {
file = "${inputs.secrets}/passwords/services/photoprism/admin.age";
};
services.photoprism = {
enable = true;
address = "localhost";
passwordFile = config.age.secrets."passwords/services/photoprism/admin".path;
originalsPath = "${config.services.photoprism.storagePath}/originals";
settings = {
PHOTOPRISM_APP_NAME = "Vimium Gallery";
PHOTOPRISM_SITE_AUTHOR = "Vimium";
PHOTOPRISM_SITE_TITLE = "Vimium Gallery";
PHOTOPRISM_SITE_CAPTION = "Vimium Gallery";
PHOTOPRISM_DISABLE_TLS = "true";
PHOTOPRISM_SPONSOR = "true";
};
};
};
}

View File

@ -3,8 +3,8 @@ self: super:
gnome = super.gnome.overrideScope' (gself: gsuper: {
mutter = gsuper.mutter.overrideAttrs (oldAttrs: {
src = super.fetchurl {
url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-45/mutter-triple-buffering-v4-45.tar.gz";
sha256 = "tN+zQ5brk+hc+louIipqPV/Bqft42ghKOzjZZMj5Q8A=";
url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-46/mutter-triple-buffering-v4-46.tar.gz";
sha256 = "Rdao3TR6wG7YcpoD+nFFiCaE+97G0MreBgwsQJa3GCE=";
};
});
});