147 lines
3.9 KiB
Nix
147 lines
3.9 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
modulesPath,
|
|
suiteModules,
|
|
...
|
|
}: {
|
|
imports = [
|
|
"${modulesPath}/virtualisation/disk-image.nix"
|
|
suiteModules.nixos.attic
|
|
];
|
|
|
|
image.format = "raw";
|
|
|
|
boot.initrd.availableKernelModules = [
|
|
"xhci_pci"
|
|
"usb_storage"
|
|
"uas"
|
|
"ahci"
|
|
"nvme"
|
|
"usbhid"
|
|
"sd_mod"
|
|
];
|
|
|
|
nixpkgs.hostPlatform = "x86_64-linux";
|
|
nixpkgs.config.allowUnfree = true;
|
|
nixpkgs.config.cudaSupport = true;
|
|
|
|
nix.settings = {
|
|
experimental-features = "nix-command flakes";
|
|
auto-optimise-store = true;
|
|
substituters = [
|
|
"https://cache.nixos.org"
|
|
"https://cuda-maintainers.cachix.org"
|
|
];
|
|
trusted-public-keys = [
|
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
|
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
|
];
|
|
};
|
|
|
|
security.sudo.wheelNeedsPassword = false;
|
|
|
|
networking.hostName = "beacon";
|
|
time.timeZone = "Asia/Jerusalem";
|
|
|
|
networking.networkmanager.enable = true;
|
|
hardware.enableRedistributableFirmware = true;
|
|
networking.useDHCP = false;
|
|
environment.etc."NetworkManager/system-connections/Zakobar.nmconnection" = {
|
|
mode = "0600";
|
|
text = ''
|
|
[connection]
|
|
id=Zakobar
|
|
type=wifi
|
|
autoconnect=true
|
|
|
|
[wifi]
|
|
mode=infrastructure
|
|
ssid=Zakobar
|
|
|
|
[wifi-security]
|
|
auth-alg=open
|
|
key-mgmt=wpa-psk
|
|
psk=0502711157
|
|
|
|
[ipv4]
|
|
method=manual
|
|
address1=192.168.1.200/24,192.168.1.1
|
|
dns=8.8.8.8;1.1.1.1;
|
|
ignore-auto-dns=true
|
|
|
|
[ipv6]
|
|
method=disabled
|
|
'';
|
|
};
|
|
|
|
# Swap is created on first boot after boot.growPartition expands the root
|
|
# partition to the full drive size. Non-blocking: a failure just means no
|
|
# swap on this boot (retried next boot once the partition has grown).
|
|
systemd.services.beacon-swap = {
|
|
description = "Create and activate swapfile";
|
|
after = ["systemd-growfs@-.service" "local-fs.target"];
|
|
wantedBy = ["multi-user.target"];
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
RemainAfterExit = true;
|
|
};
|
|
script = ''
|
|
if [ ! -f /swapfile ]; then
|
|
dd if=/dev/zero of=/swapfile bs=1M count=16384 status=progress
|
|
chmod 600 /swapfile
|
|
${pkgs.util-linux}/bin/mkswap /swapfile
|
|
fi
|
|
${pkgs.util-linux}/bin/swapon /swapfile
|
|
'';
|
|
};
|
|
|
|
# NVIDIA RTX 4050 — Ada Lovelace supports open kernel modules
|
|
services.xserver.videoDrivers = ["nvidia"];
|
|
hardware.nvidia = {
|
|
open = true;
|
|
modesetting.enable = true;
|
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
};
|
|
hardware.graphics.enable = true;
|
|
|
|
services.getty.autologinUser = "aner";
|
|
|
|
services.openssh = {
|
|
enable = true;
|
|
settings = {
|
|
PermitRootLogin = "no";
|
|
PasswordAuthentication = false;
|
|
};
|
|
};
|
|
|
|
users.users.aner = {
|
|
isNormalUser = true;
|
|
extraGroups = ["wheel" "video"];
|
|
openssh.authorizedKeys.keys = [
|
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDfzDDO5juINctECmWlsYtGghEiX/RnTJ1cazLvOWSrPfsTyEd+B1+Ig8kFefNryjkpApfRXqj5KtLPNlpLfdVBrOIfhIveEp2MGqhgOGZFNVxQyXnZgii8Zdh4cqZ2O3pZpMsaAQBaJ9nH6dK0dJjicWT5f6TqwrVcInywRc5SuyizoSxoFmg7ch2rnlVi0j5XMVqdh8XLzHXZ7yWCzXy7+hWl/d7pwpyuzoK8dBw2EU9TauhgRDruom5Q9vWJTLStALC9pAIb0v9UFj9y+1zwx7pXsXp5F1g73EYrE4QR+QQ6z2LebuK280W0t+VA/fSCEB13DnkmofgqZQxX5MSCmrxZ5lTFp1FjW6yJo7As9FheF/GECowYkMRIx4IiQsjjHjZqlLRpLas11yAp6tGoZnw59hFo6Lu0Kva39jGVVmioYHtAeE5rD5w+v5kseJR4jlQ8aKB5yOjYUQOIz2AHQyoidgaeR2jPWqZUeRQbACI+/p3CHO45r3hrjATtGloBg0xF95Qws7Be3mjHVhbBLOoob8MdZ8nYAGnhlWrZphlkvXsHC6OUkuDJW00tmMjWXRlFwhFJ+nqUQCgLVjxVHQJ5rq9GeXBUuNXAeCm5BKBsdq+9qqVlt7D9iGyfr0lcZ7peKz/96KwPCWpG2En1Ur0/cVcbWnXEfG/xWO10tQ== openpgp:0xFA67FAB0"
|
|
];
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
git
|
|
rsync
|
|
tmux
|
|
vim
|
|
wget
|
|
rclone
|
|
pciutils
|
|
nvtopPackages.nvidia
|
|
cudaPackages.cudatoolkit
|
|
cudaPackages.cudnn
|
|
cudaPackages.nccl
|
|
python3
|
|
direnv
|
|
];
|
|
|
|
azos.attic.enable = true;
|
|
|
|
system.stateVersion = "25.11";
|
|
}
|