1{
2 self,
3 config,
4 ...
5}: {
6 imports = [
7 ./home.nix
8 ./secrets.nix
9 ./notifier.nix
10 ./backups.nix
11 self.nixosModules.locale-en-gb
12 ];
13
14 networking.hostName = "nanpi";
15 system.stateVersion = "25.05";
16 time.timeZone = "America/Sao_Paulo";
17 myHardware.acer.aspire."A315-53".enable = true;
18
19 myNixOS = {
20 programs = {
21 lanzaboote.enable = true;
22 nix.enable = true;
23 };
24 profiles = {
25 base.enable = true;
26 server.enable = true;
27 autoUpgrade = {
28 enable = true;
29 operation = "boot";
30 allowReboot = false;
31 };
32 backups.enable = true;
33 btrfs = {
34 enable = true;
35 deduplicate = true;
36 };
37 swap = {
38 enable = true;
39 size = 4096;
40 location = "/.swap";
41 };
42 arr.enable = true;
43 };
44 services = {
45 audiobookshelf.enable = true;
46 caddy.enable = true;
47 cloudflared.enable = true;
48 copyparty.enable = true;
49 dnsmasq.enable = true;
50 forgejo = {
51 enable = true;
52 db = "postgresql";
53 };
54 glance.enable = true;
55 jellyfin.enable = true;
56 jellyseerr.enable = true;
57 karakeep.enable = true;
58 miniflux.enable = true;
59 ntfy.enable = true;
60 pds.enable = true;
61 qbittorrent = {
62 enable = true;
63 webuiPort = config.mySnippets.tailnet.networkMap.qbittorrent.port;
64 openFirewall = true;
65 };
66 radicale.enable = true;
67 redlib.enable = true;
68 syncthing = {
69 enable = true;
70 certFile = config.age.secrets.syncthingCert.path;
71 keyFile = config.age.secrets.syncthingKey.path;
72 user = "ayla";
73 };
74 tailscale = {
75 enable = true;
76 enableCaddy = true;
77 operator = "ayla";
78 };
79 vaultwarden.enable = true;
80 webdav.enable = true;
81 };
82 };
83
84 myUsers = {
85 ayla = {
86 enable = true;
87 password = "REDACTED";
88 };
89 };
90
91 boot = {
92 initrd = {
93 availableKernelModules = [
94 "xhci_pci"
95 "ahci"
96 "usb_storage"
97 "sd_mod"
98 "rtsx_pci_sdmmc"
99 ];
100
101 luks.devices = {
102 crypted.device = "/dev/disk/by-uuid/d82fc855-f29a-4aef-90d4-da94c23d0ac1";
103 crypted_external.device = "/dev/disk/by-uuid/0e477648-92d6-4cf5-a0c5-8d0707b69935";
104 };
105 };
106
107 kernelParams = [
108 "consoleblank=30"
109 ];
110 };
111
112 fileSystems = {
113 "/" = {
114 device = "/dev/disk/by-uuid/97fd311a-2575-487e-be03-45dfa9c2db8a";
115 fsType = "btrfs";
116 options = ["subvol=/root" "compress=zstd" "noatime"];
117 };
118
119 "/home" = {
120 device = "/dev/disk/by-uuid/97fd311a-2575-487e-be03-45dfa9c2db8a";
121 fsType = "btrfs";
122 options = ["subvol=/home" "compress=zstd" "noatime"];
123 };
124
125 "/home/.snapshots" = {
126 device = "/dev/disk/by-uuid/97fd311a-2575-487e-be03-45dfa9c2db8a";
127 fsType = "btrfs";
128 options = ["subvol=/home/.snapshots" "compress=zstd" "noatime"];
129 };
130
131 "/nix" = {
132 device = "/dev/disk/by-uuid/97fd311a-2575-487e-be03-45dfa9c2db8a";
133 fsType = "btrfs";
134 options = ["subvol=/nix" "compress=zstd" "noatime"];
135 };
136
137 "/boot" = {
138 device = "/dev/disk/by-uuid/7D56-EE82";
139 fsType = "vfat";
140 options = ["fmask=0077" "dmask=0077"];
141 };
142
143 "/external1" = {
144 device = "/dev/disk/by-uuid/130ead1c-6642-45d5-9053-b6cb2df9c7e4";
145 fsType = "btrfs";
146 options = ["compress=zstd" "noatime"];
147 };
148 };
149}