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 backups.enable = true;
28 btrfs = {
29 enable = true;
30 deduplicate = true;
31 };
32 swap = {
33 enable = true;
34 size = 4096;
35 location = "/.swap";
36 };
37 arr.enable = true;
38 };
39 services = {
40 audiobookshelf.enable = true;
41 caddy.enable = true;
42 cloudflared.enable = true;
43 copyparty.enable = true;
44 dnsmasq.enable = true;
45 forgejo = {
46 enable = true;
47 db = "postgresql";
48 };
49 glance.enable = true;
50 jellyfin.enable = true;
51 jellyseerr.enable = true;
52 karakeep.enable = false;
53 miniflux.enable = true;
54 ntfy.enable = true;
55 pds.enable = true;
56 privatebin.enable = true;
57 qbittorrent = {
58 enable = true;
59 webuiPort = config.mySnippets.tailnet.networkMap.qbittorrent.port;
60 openFirewall = true;
61 };
62 radicale.enable = true;
63 redlib.enable = true;
64 syncthing = {
65 enable = true;
66 certFile = config.age.secrets.syncthingCert.path;
67 keyFile = config.age.secrets.syncthingKey.path;
68 user = "ayla";
69 };
70 tailscale = {
71 enable = true;
72 enableCaddy = true;
73 operator = "ayla";
74 };
75 vaultwarden.enable = true;
76 webdav.enable = true;
77 };
78 };
79
80 myUsers = {
81 ayla = {
82 enable = true;
83 passwordFile = config.age.secrets.aylaPassword.path;
84 };
85 };
86
87 boot = {
88 initrd = {
89 availableKernelModules = [
90 "xhci_pci"
91 "ahci"
92 "usb_storage"
93 "sd_mod"
94 "rtsx_pci_sdmmc"
95 ];
96
97 luks.devices = {
98 crypted.device = "/dev/disk/by-uuid/d82fc855-f29a-4aef-90d4-da94c23d0ac1";
99 crypted_external.device = "/dev/disk/by-uuid/0e477648-92d6-4cf5-a0c5-8d0707b69935";
100 };
101 };
102
103 kernelParams = [
104 "consoleblank=30"
105 ];
106 };
107
108 fileSystems = {
109 "/" = {
110 device = "/dev/disk/by-uuid/97fd311a-2575-487e-be03-45dfa9c2db8a";
111 fsType = "btrfs";
112 options = ["subvol=/root" "compress=zstd" "noatime"];
113 };
114
115 "/home" = {
116 device = "/dev/disk/by-uuid/97fd311a-2575-487e-be03-45dfa9c2db8a";
117 fsType = "btrfs";
118 options = ["subvol=/home" "compress=zstd" "noatime"];
119 };
120
121 "/home/.snapshots" = {
122 device = "/dev/disk/by-uuid/97fd311a-2575-487e-be03-45dfa9c2db8a";
123 fsType = "btrfs";
124 options = ["subvol=/home/.snapshots" "compress=zstd" "noatime"];
125 };
126
127 "/nix" = {
128 device = "/dev/disk/by-uuid/97fd311a-2575-487e-be03-45dfa9c2db8a";
129 fsType = "btrfs";
130 options = ["subvol=/nix" "compress=zstd" "noatime"];
131 };
132
133 "/boot" = {
134 device = "/dev/disk/by-uuid/7D56-EE82";
135 fsType = "vfat";
136 options = ["fmask=0077" "dmask=0077"];
137 };
138
139 "/external1" = {
140 device = "/dev/disk/by-uuid/130ead1c-6642-45d5-9053-b6cb2df9c7e4";
141 fsType = "btrfs";
142 options = ["compress=zstd" "noatime"];
143 };
144 };
145}