dotfiles/hosts/Aloria/default.nix

107 lines
3.1 KiB
Nix

{ pkgs, ... }:
let
mkConnection = name: cfg: {
connection = {
id = name;
type = "wifi";
};
ipv4 = {
method = "auto";
};
ipv6 = {
method = "auto";
};
wifi = {
ssid = name;
mode = "infrastructure";
};
wifi-security = {
auth-alg = "open";
key-mgmt = "wpa-psk";
psk = cfg.id;
};
};
connections = {
"The Buttshark" = {
id = "$THE_BUTTSHARK";
};
"5G Research Tower (5000 Watt)" = {
id = "$RESEARCH_TOWER";
};
"5G Research Tower (2400 Watt)" = {
id = "$RESEARCH_TOWER";
};
};
in
{
services.pcscd.enable = true;
hardware.opengl.extraPackages = [
pkgs.intel-compute-runtime
pkgs.intel-media-driver
];
services.udev.packages = [ pkgs.yubikey-personalization ];
# Calendar
programs.dconf.enable = true;
services.gnome.evolution-data-server.enable = true;
services.gnome.gnome-online-accounts.enable = true;
services.gnome.gnome-keyring.enable = true;
environment.systemPackages = with pkgs; [ wireguard-tools ];
# Add the server using gnome-online-accounts:
# nix-shell -p gnome.gnome-control-center --run "gnome-control-center"
# Just add the main webdav server and gnome-calendar will automatically pick up all available calendars.
networking.wg-quick.interfaces = {
wg0 = {
address = [ "10.0.0.5/24" "2a02:a03f:83ad:2101::5/128" ];
dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ];
privateKeyFile = "/home/user/.secrets/Wireguard/Aloria.key";
listenPort = 51820;
# postUp = "resolvectl dns %i 10.0.0.1; resolvectl domain %i ~thomasave.be;";
peers = [{
publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c=";
allowedIPs = [ "10.0.0.1/8" "192.168.1.2/32" ];
endpoint = "h.thomasave.be:13231";
persistentKeepalive = 25;
}];
};
};
networking.networkmanager = {
enable = true;
ensureProfiles = {
environmentFiles = [
"/home/user/.secrets/Wireless/Aloria.env"
];
profiles = pkgs.lib.mapAttrs mkConnection connections;
};
};
fileSystems."/home/server" = {
device = "10.1:/home/server";
fsType = "nfs";
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
};
fileSystems."/home/user/Workspace" = {
device = "10.1:/home/server/Workspace";
fsType = "nfs";
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
};
fileSystems."/home/user/Documents" = {
device = "10.1:/home/server/Storage/Thomas/Documents";
fsType = "nfs";
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
};
fileSystems."/home/user/Pictures" = {
device = "10.1:/home/server/Storage/Thomas/Pictures";
fsType = "nfs";
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
};
fileSystems."/home/user/Videos" = {
device = "10.1:/home/server/Storage/Thomas/Videos";
fsType = "nfs";
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
};
}