blob: bab7b97c67cc652cbe0bbcb3e511465f8f3a21d1 (
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
{ config, lib, pkgs, ... }:
{
imports = [
../config/borg-backup.nix
../config/common.nix
../config/users.nix
../config/weechat.nix
../config/dns.nix
../config/hydra.nix
../config/web-server.nix
../config/cgit.nix
../config/mail-server.nix
../config/munin-node.nix
../config/munin-master.nix
../config/vpn-server.nix
];
environment.systemPackages = with pkgs; [ ipmitool ];
virtualisation.lxd.enable = true;
security.apparmor = {
enable = true;
profiles = [
"${pkgs.lxc}/etc/apparmor.d/usr.bin.lxc-star"
"${pkgs.lxc}/etc/apparmor.d/lxc-containers"
];
packages = [ pkgs.lxc ];
};
boot = {
kernelParams = [ "console=tty0" ''console="ttyS0,115200n8"'' ];
kernel.sysctl = {
"net.ipv4.conf.all.forwarding" = true;
"net.ipv6.conf.all.forwarding" = true;
};
loader.grub.extraConfig = ''
GRUB_TERMINAL="serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
'';
loader.grub.enable = true;
loader.grub.version = 2;
loader.grub.devices = ["/dev/sda" "/dev/sdb"];
};
networking = {
hostName = lib.mkForce "dragon";
firewall.allowPing = true;
firewall.checkReversePath = "loose";
bridges = {
br0 = {
interfaces = ["eno2"];
};
};
# interfaces.br0.ip6 = [
# # { address = "2001:470:8e2e:20:eca0:41ff:feef:92"; prefixLength = 64; }
# { address = "2001:470:8e2e:20::d"; prefixLength = 64; }
# ];
localCommands = ''
sleep 10
echo setting up routes
ip -6 addr add 2001:470:8e2e:20::d/64 dev br0 || true
ip -6 route replace default via fe80::822a:a8ff:fe4d:f5d6 dev br0 metric 0 src 2001:470:8e2e:20::d || true
ip route replace default via 10.0.20.1 dev br0 metric 0 || true
'';
};
services = {
openssh = {
enable = lib.mkDefault true;
passwordAuthentication = false;
};
};
fileSystems = {
"/storage" = {
device = "/dev/sda3";
fsType = "btrfs";
options = [ "subvol=storage" ];
};
"/staging" = {
device = "/dev/sda3";
fsType = "btrfs";
options = [ "subvol=staging" ];
};
};
system.stateVersion = lib.mkForce "17.09";
}
|