My Nix Configuration
1{ config, ... }:
2{
3 imports = [
4 # Machine-specific configurations.
5 ./bootloader.nix
6 ./firewall.nix
7 ./networking.nix
8 ./hardware.nix
9
10 # Running Services
11 # keep-sorted start
12 ./services/anubis.nix
13 ./services/avahi.nix
14 ./services/booklore.nix
15 ./services/bots.nix
16 ./services/gdq-cals.nix
17 ./services/git.nix
18 ./services/golink.nix
19 ./services/grafana.nix
20 ./services/immich.nix
21 ./services/jellyfin.nix
22 ./services/matrix.nix
23 ./services/miniflux.nix
24 ./services/mysql.nix
25 ./services/nextcloud
26 ./services/nginx.nix
27 ./services/paperless.nix
28 ./services/pinchflat.nix
29 ./services/planka.nix
30 ./services/pocket-id.nix
31 ./services/podman.nix
32 ./services/postgres.nix
33 ./services/prometheus.nix
34 ./services/scrutiny.nix
35 ./services/shelfmark.nix
36 ./services/syncthing.nix
37 ./services/tailscale.nix
38 ./services/tangled.nix
39 ./services/vaultwarden.nix
40 ./services/zfs.nix
41 # keep-sorted end
42 ];
43 nix.settings = {
44 max-jobs = 12;
45 secret-key-files = config.age.secrets.cache-key.path;
46 };
47 fileSystems = {
48 "/" = {
49 fsType = "btrfs";
50 device = "/dev/disk/by-uuid/f15e4072-80dc-414e-a1fc-158ea441aebd";
51 # options = [ "subvol=@" ];
52 };
53 "/boot/efi" = {
54 fsType = "vfat";
55 device = "/dev/disk/by-uuid/EE05-66B4";
56 };
57 "/var" = {
58 fsType = "zfs";
59 device = "tank/var";
60 options = [ "zfsutil" ];
61 };
62 "/var/log/journal" = {
63 fsType = "zfs";
64 device = "tank/var/log/journal";
65 options = [ "zfsutil" ];
66 };
67 "/var/lib" = {
68 fsType = "btrfs";
69 device = "/dev/disk/by-id/nvme-eui.ace42e817013cb34";
70 options = [ "compress=zstd" ];
71 };
72 };
73 swapDevices = [ { device = "/dev/disk/by-uuid/e69409bc-9cf0-4795-8620-33a021a4b729"; } ];
74 users.groups.misc.gid = 1000;
75 time.timeZone = "America/New_York";
76 py = {
77 profiles.server.enable = true;
78 users.default.enable = true;
79 programs = {
80 fish.enable = true;
81 neovim.enable = true;
82 };
83 };
84 services.pulseaudio.enable = false;
85 services.journald.extraConfig = ''
86 SystemMaxUse=2G
87 '';
88 programs.nix-ld.enable = true;
89
90 age.secrets.cache-key = {
91 file = ./services/secrets/cache-key.age;
92 group = "nixbld";
93 };
94}