97 lines
2.3 KiB
Nix
97 lines
2.3 KiB
Nix
# hosts/valefar/configuration.nix (or default.nix)
|
|
{ config, lib, pkgs, modulesPath, ... }:
|
|
|
|
{
|
|
imports = [
|
|
# Host-specific hardware
|
|
./hardware.nix
|
|
./secrets.nix
|
|
|
|
# Common modules shared across hosts
|
|
../../modules/common/system.nix
|
|
../../modules/common/users.nix
|
|
../../modules/common/services.nix
|
|
../../modules/common/efi.nix
|
|
|
|
# Services specific to this host
|
|
../../services/garage.nix
|
|
../../services/forgejo.nix
|
|
|
|
# Common secrets
|
|
../../host-secrets.nix
|
|
];
|
|
|
|
# pin host platform & microcode
|
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault
|
|
config.hardware.enableRedistributableFirmware;
|
|
|
|
networking.hostName = "valefar";
|
|
networking.hostId = "2a07da90";
|
|
|
|
networking = {
|
|
firewall.enable = false;
|
|
firewall.trustedInterfaces = [
|
|
"tailscale0"
|
|
];
|
|
nameservers = [ "192.168.4.3" "1.1.1.1" ];
|
|
useDHCP = true;
|
|
firewall.allowedTCPPorts = [22 80 443 2456 2457 9000 9001 9002];
|
|
};
|
|
|
|
services.resolved = {
|
|
enable = true;
|
|
dnssec = "true";
|
|
domains = [ "~." ];
|
|
fallbackDns = [ "192.168.4.3" "1.0.0.1#one.one.one.one" ];
|
|
dnsovertls = "true";
|
|
};
|
|
|
|
boot.supportedFilesystems = [ "zfs" ];
|
|
boot.kernelModules = [ "nct6775" "coretemp" ];
|
|
|
|
boot.zfs.extraPools = [ "garage" "storage" ];
|
|
boot.zfs.devNodes = "/dev/disk/by-id";
|
|
boot.zfs.forceImportAll = true;
|
|
|
|
systemd.services.zfs-import-cache.enable = false;
|
|
systemd.services.zfs-import-scan.enable = true;
|
|
|
|
systemd.services.zfs-import-scan = {
|
|
after = [ "systemd-udev-settle.service" ];
|
|
wants = [ "systemd-udev-settle.service" ];
|
|
};
|
|
|
|
systemd.mounts = [
|
|
{
|
|
what = "garage";
|
|
where = "/garage";
|
|
type = "zfs";
|
|
after = [ "zfs-import-scan.service" ];
|
|
wants = [ "zfs-import-scan.service" ];
|
|
}
|
|
{
|
|
what = "storage";
|
|
where = "/storage";
|
|
type = "zfs";
|
|
after = [ "zfs-import-scan.service" ];
|
|
wants = [ "zfs-import-scan.service" ];
|
|
}
|
|
];
|
|
|
|
services.zfs.autoScrub.enable = true;
|
|
services.zfs.trim.enable = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
lm_sensors
|
|
code-server
|
|
];
|
|
|
|
virtualisation.docker = {
|
|
enable = true;
|
|
enableOnBoot = true;
|
|
package = pkgs.docker.override {
|
|
buildGoModule = pkgs.buildGo123Module;
|
|
};
|
|
};
|
|
}
|