Files
dev/modules/optionnals/hosts/home-nix.nix
2025-10-08 22:36:01 +02:00

94 lines
2.1 KiB
Nix

{
config,
pkgs,
...
}:
{
imports = [
../ai.nix
../autologin.nix
../openfortivpn.nix
../packages.nix
../sops-desktop.nix
../ssh.nix
../sudo-nopasswd.nix
### Import GUI modules
../desktop/code.nix
../desktop/dunst.nix
../desktop/kitty.nix
../desktop/packages.nix
../desktop/pipewire.nix
../desktop/qwerty-fr.nix
../desktop/rofi.nix
../desktop/starship.nix
../desktop/wayland.nix
### Import Graphics modules
../desktop/nvidia.nix
];
sops = {
secrets = {
"wireguard_home/publickey" = { };
"wireguard_home/presharedkey" = { };
"wireguard_home/privatekey" = { };
};
};
networking = {
interfaces.enp5s0 = {
ipv4.addresses = [
{
address = "192.168.0.2";
prefixLength = 24;
}
];
};
defaultGateway = {
address = "192.168.0.254";
interface = "enp5s0";
};
nameservers = [
#"9.9.9.9"
"2001:41d0:303:20da::1"
"217.182.138.218"
];
extraHosts = ''
172.18.21.172 errorpages.grandbesancon.fr
#172.18.23.4 dozzle.grandbesancon.fr
#172.18.22.206 toto.grandbesancon.fr
#172.18.229.3 sso.grandbesancon.fr
#172.18.20.37 sso.grandbesancon.fr
#172.18.20.229 auth.grandbesancon.fr
#172.18.20.181 traefikauth.grandbesancon.fr
'';
wireguard = {
interfaces = {
wg0 = {
ips = [
"fc00::2/56"
"10.0.0.2/16"
];
listenPort = 51820;
privateKeyFile = config.sops.secrets."wireguard_home/privatekey".path;
peers = [
{
publicKey = "X8D/RhwjpFYXm2DbtC0wY39TrFkdaw7RA7kHhbmOXnw=";
presharedKeyFile = config.sops.secrets."wireguard_home/presharedkey".path;
allowedIPs = [
"fc00::0/56"
"10.0.0.0/16"
"10.1.0.0/16"
];
endpoint = "[2001:41d0:303:20da::1]:51820";
persistentKeepalive = 15;
}
];
};
};
};
};
environment.systemPackages = [ pkgs.tor-browser ];
}