snowfield/machines/akhaten/default.nix

79 lines
1.7 KiB
Nix

{ inputs, config, ... }:
{
imports = [
./hardware.nix
./home-julien.nix
./stalwart.nix
./nsd.nix
];
machine.meta = {
arch = "x86_64-linux";
nixpkgs_version = inputs.unstable;
hm_version = inputs.home-manager-unstable;
ips = {
public.ipv4 = "163.172.91.82";
public.ipv6 = "2001:0bc8:3d24::45";
vpn.ipv4 = "100.100.45.33";
};
};
deployment.tags = [ "server" ];
deployment.targetHost = config.machine.meta.ips.public.ipv4;
disko = import ./disko.nix;
environment.persistence."/persistent" = {
hideMounts = true;
directories = [
"/var/lib"
"/var/log"
"/srv"
];
files = [
"/etc/machine-id"
"/etc/ssh/ssh_host_ed25519_key"
"/etc/ssh/ssh_host_ed25519_key.pub"
];
};
fileSystems."/srv".neededForBoot = true;
fileSystems."/persistent".neededForBoot = true;
services.fail2ban.enable = true;
networking.useNetworkd = true;
systemd.network = {
enable = true;
networks = {
"10-wan" = {
matchConfig.Name = "enp0s20";
networkConfig = {
DHCP = "ipv6";
IPv6AcceptRA = true;
};
addresses = [
{ Address = "163.172.91.82/24"; }
{ Address = "2001:0bc8:3d24::45/64"; }
];
gateway = [ "163.172.91.1" ];
dhcpV6Config = {
DUIDRawData = "00:01:62:7c:0e:d3:27:5b";
DUIDType = "link-layer";
UseAddress = "no";
WithoutRA = "solicit";
};
ipv6AcceptRAConfig = {
DHCPv6Client = "always";
UseOnLinkPrefix = false;
UseAutonomousPrefix = false;
};
linkConfig.RequiredForOnline = "routable";
};
};
};
system.stateVersion = "24.11";
}