Nix configurations for my homelab
1{ ... }:
2{
3 imports = [
4 ./hardware.nix
5 ./services/fail2ban.nix
6
7 ../modules/basic.nix
8 ../modules/caddy.nix
9 ../modules/editor.nix
10 ../modules/fail2ban.nix
11 ../modules/machine-id.nix
12 ../modules/machine-info.nix
13 ../modules/netbird.nix
14 ../modules/network-info.nix
15 ../modules/nix.nix
16 ../modules/openrgb.nix
17 ../modules/qbittorrent.nix
18 ../modules/remote-build-machines.nix
19 ../modules/remote-builder.nix
20 ../modules/smartd.nix
21 ../modules/vpn-container.nix
22
23 ../modules/services/caddy
24 ../modules/services/caddy/atproto-did.nix
25 ../modules/services/caddy/cp-certs.nix
26 ../modules/services/caddy/jellyfin.nix
27 ../modules/services/caddy/mumble.nix
28 ../modules/services/caddy/nextcloud.nix
29 ../modules/services/caddy/pds.nix
30 ../modules/services/caddy/soju.nix
31 ../modules/services/caddy/tangled-knot.nix
32 ../modules/services/caddy/websites/boo-b77.nix
33 ../modules/services/caddy/websites/boo-y6d.nix
34 ../modules/services/caddy/websites/org-biotabit.nix
35 ../modules/services/caddy/websites/org-butwho.nix
36 ../modules/services/caddy/websites/pink-lilac.nix
37 ../modules/services/caddy/websites/pink-meyou.nix
38 ../modules/services/caddy/websites/pink-yemou.nix
39
40 ../modules/services/arr.nix
41 ../modules/services/jellyfin.nix
42 ../modules/services/murmur.nix
43 ../modules/services/nextcloud.nix
44 ../modules/services/openssh.nix
45 ../modules/services/pds.nix
46 ../modules/services/soju.nix
47 ../modules/services/tangled.nix
48 ];
49
50 garden = {
51 caddy.package = {
52 plugins = [
53 "github.com/mholt/caddy-events-exec@v0.1.0"
54 "github.com/mholt/caddy-l4@v0.0.0-20250825142355-52451c524d96"
55 ];
56 hash = "sha256-lsJLZibzK1PTugICnbfFPk7oGTgUYkotqduAdUpf4Ns=";
57 };
58 info.host.server = true;
59 };
60
61 sops = {
62 defaultSopsFile = ../secrets/lily.yaml;
63 defaultSopsFormat = "yaml";
64 age.keyFile = "/data/keys.txt";
65 };
66
67 networking.hostName = "lily";
68 services.thermald.enable = true;
69
70 nix.settings = {
71 cores = 6;
72 max-jobs = 2;
73 };
74
75 # This option defines the first version of NixOS you have installed on this particular machine,
76 # and is used to maintain compatibility with application data (e.g. databases) created on older
77 # NixOS versions. Most users should NEVER change this value after the initial install, for any
78 # reason, even if you've upgraded your system to a new NixOS release. This value does NOT affect
79 # the Nixpkgs version your packages and OS are pulled from, so changing it will NOT upgrade your
80 # system. This value being lower than the current NixOS release does NOT mean your system is out
81 # of date, out of support, or vulnerable. Do NOT change this value unless you have manually
82 # inspected all the changes it would make to your configuration, and migrated your data
83 # accordingly. For more information, see `man configuration.nix` or
84 # https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
85 system.stateVersion = "24.05"; # Did you read the comment?
86}