summaryrefslogtreecommitdiff
path: root/hosts/poweredge-pro/configuration.nix
blob: 53f2599dbb443eab9dcbcc6929d1ad219b65007f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{ config, lib, pkgs, ... }: {
	imports = [
		./key.nix
		./networking.nix
		./fileshares.nix
		./filebrowser.nix
		./dns.nix
	];

	# Setup bootloader
	boot._loader.enable = true;

	# Enable common options
	_archetypes = {
		profiles = {
			headless = {
				enable = true;
				home.users.timmy.enable = true;
			};
			zfs.enable = true;
			#cuda.enable = true;
		};
		collections = {
			virtualization.enable = true;
			development.docker.enable = true;
		};
	};

	# Import zfs pools
	boot.zfs.extraPools = [ "VMDisk" "Storage" ];

	# Workaround for docker + libvirt bug
	systemd.services.bridge-nf-off = {
		description = "Keep bridged VM traffic out of the IP netfilter path";
		after = [ "docker.service" ];
		partOf = [ "docker.service" ];
		wantedBy = [ "multi-user.target" "docker.service" ];
		serviceConfig = {
			Type = "oneshot";
			RemainAfterExit = true;
		};
		script = ''
			${pkgs.kmod}/bin/modprobe br_netfilter 2>/dev/null || true
			for k in iptables ip6tables arptables; do
				echo 0 > /proc/sys/net/bridge/bridge-nf-call-$k 2>/dev/null || true
			done
		'';
	};

	networking.firewall.checkReversePath = "loose";

	# Enable user timmy
	_users.timmy.enable = true;

	# Without this, "ZFS requires networking.hostId to be set" will be raised
	networking.hostId = "2c7d6b03";

	system.stateVersion = "26.05";
}