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