my nix configs for my servers and desktop
1# hosts/valefar/configuration.nix (or default.nix)
2{ config, lib, pkgs, modulesPath, inputs, ... }:
3
4{
5 imports = [
6 # Host-specific hardware
7 ./hardware.nix
8 ./secrets.nix
9 #../../common/nvidia.nix
10
11 # Common modules shared across hosts
12 ../../common/system.nix
13 ../../common/users.nix
14 ../../common/services.nix
15 ../../common/efi.nix
16
17 # Common secrets
18 ../../host-secrets.nix
19 ];
20
21 # Enable modules
22 modules.garage.enable = true;
23 modules.forgejo.enable = true;
24
25 system.stateVersion = "24.11";
26
27 # pin host platform & microcode
28 nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
29 hardware.cpu.intel.updateMicrocode = lib.mkDefault
30 config.hardware.enableRedistributableFirmware;
31
32 networking.hostName = "valefar";
33 networking.hostId = "2a07da90";
34
35 networking = {
36 firewall.enable = false;
37 firewall.trustedInterfaces = [
38 "tailscale0"
39 ];
40 nameservers = [ "10.0.0.210" "1.1.1.1" ];
41 useDHCP = true;
42 firewall.allowedTCPPorts = [22 80 443 2456 2457 9000 9001 9002];
43 };
44
45 services.resolved = {
46 enable = true;
47 dnssec = "false";
48 domains = [ "~." ];
49 fallbackDns = [ "10.0.0.210" "1.1.1.1" ];
50 dnsovertls = "false";
51 };
52
53 boot.supportedFilesystems = [ "zfs" ];
54 boot.kernelModules = [ "nct6775" "coretemp" ];
55
56 boot.zfs.extraPools = [ "garage" "storage" ];
57 boot.zfs.devNodes = "/dev/disk/by-id";
58 boot.zfs.forceImportAll = true;
59
60 /*boot.kernelParams = [ "ip=dhcp" ];
61 boot.initrd = {
62 availableKernelModules = [ "r8169" ];
63 network = {
64 enable = true;
65 ssh = {
66 enable = true;
67 port = 22;
68 authorizedKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ0pU82lV9dSjkgYbdh9utZ5CDM2dPN70S5fBqN1m3Pb" ];
69 hostKeys = [ "/etc/secrets/initrd/ssh_host_rsa_key" ];
70 shell = "/bin/cryptsetup-askpass";
71 };
72 };
73 };*/
74
75 systemd.services.zfs-import-cache.enable = false;
76 systemd.services.zfs-import-scan.enable = true;
77
78 systemd.services.zfs-import-scan = {
79 after = [ "systemd-udev-settle.service" ];
80 wants = [ "systemd-udev-settle.service" ];
81 };
82
83 systemd.mounts = [
84 {
85 what = "garage";
86 where = "/garage";
87 type = "zfs";
88 after = [ "zfs-import-scan.service" ];
89 wants = [ "zfs-import-scan.service" ];
90 }
91 {
92 what = "storage";
93 where = "/storage";
94 type = "zfs";
95 after = [ "zfs-import-scan.service" ];
96 wants = [ "zfs-import-scan.service" ];
97 }
98];
99
100 services.zfs.autoScrub.enable = true;
101 services.zfs.trim.enable = true;
102
103 services.vscode-server.enable = true;
104 services.vscode-server.nodejsPackage = pkgs.nodejs_20;
105
106 environment.systemPackages = with pkgs; [
107 lm_sensors
108 code-server
109 inputs.agenix.packages.x86_64-linux.default
110 ];
111
112 virtualisation.docker = {
113 enable = true;
114 enableOnBoot = true;
115 package = pkgs.docker.override {
116 buildGoModule = pkgs.buildGo123Module;
117 };
118 };
119}