ilias.nix (3595B)
1 # NAS 2 3 { config, pkgs, lib, machine, username, email, fullname, domain, sshkey, sshport, timezone, privatekey, ... }: 4 5 let 6 home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/master.tar.gz; 7 in 8 9 { 10 11 networking.hostName = "ilias"; 12 13 imports = [ 14 (import "${home-manager}/nixos") 15 ../common/dhcp.nix 16 ../common/flakes.nix 17 ../common/garbage.nix 18 (import ../common/locale.nix {inherit pkgs timezone;}) 19 ../common/mount-drives.nix 20 ../common/nfs-server.nix 21 ../common/packages.nix 22 (import ../scripts/restic.nix {inherit pkgs;}) 23 (import ../common/ssh-tunnel.nix {inherit config pkgs username domain sshport privatekey;}) 24 (import ../common/ssh.nix {inherit username sshkey sshport;}) 25 (import ../common/syncthing.nix {inherit config pkgs username;}) 26 (import ../scripts/tank-log.nix {inherit pkgs username;}) 27 (import ../scripts/tank-sort.nix {inherit pkgs username;}) 28 (import ../common/user.nix {inherit config pkgs username fullname;}) 29 (import ../scripts/audiobook-cleaner.nix {inherit pkgs domain;}) 30 ../scripts/backup-local.nix 31 (import ../scripts/blog-music.nix {inherit pkgs domain;}) 32 (import ../scripts/blog-sort-archives.nix {inherit pkgs domain;}) 33 (import ../scripts/blog-sort-languages.nix {inherit pkgs domain;}) 34 (import ../scripts/blog-sort-quotes.nix {inherit pkgs domain;}) 35 (import ../scripts/blog-weight.nix {inherit pkgs domain;}) 36 ../scripts/ctimerename.nix 37 ../scripts/duupmove.nix 38 (import ../scripts/overtid.nix {inherit pkgs;}) 39 ../scripts/payslips.nix 40 ../scripts/phone-dump.nix 41 ../scripts/seedy.nix 42 ../scripts/startpage-sort.nix 43 ../scripts/watchedlist.nix 44 ../scripts/youtube-id-rss.nix 45 ]; 46 home-manager = { 47 backupFileExtension = "hm-bak"; 48 users.${username} = {pkgs, ...}: { 49 imports = [ 50 (import ../home/fish.nix {inherit pkgs domain;}) 51 (import ../home/git.nix {inherit fullname email;}) 52 ../home/htop.nix 53 ../home/neovim.nix 54 (import ../home/rbw.nix {inherit pkgs domain email;}) 55 (import ../home/rclone.nix {inherit domain username sshport privatekey;}) 56 (import ../home/ssh.nix {inherit domain username sshport privatekey;}) 57 ]; 58 home.stateVersion = "24.11"; 59 }; 60 }; 61 62 # Hardware and system 63 boot = { 64 initrd = { 65 availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" ]; 66 kernelModules = [ ]; 67 }; 68 kernelModules = [ "kvm-intel" ]; 69 extraModulePackages = [ ]; 70 loader = { 71 systemd-boot.enable = true; 72 efi.canTouchEfiVariables = true; 73 }; 74 }; 75 nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 76 hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 77 swapDevices = [ 78 { device = "/dev/disk/by-uuid/3397e636-91db-44ae-9572-923e4b3acbbe"; } 79 ]; 80 81 # Cron jobs 82 services = { 83 cron = { 84 enable = true; 85 systemCronJobs = [ 86 "0 */4 * * * ${username} . /etc/profile; tank-sort" 87 "5 */4 * * * ${username} . /etc/profile; tank-log" 88 "0 */12 * * * ${username} backup-cloud" 89 ]; 90 }; 91 }; 92 93 # Packages 94 environment.systemPackages = with pkgs; [ 95 czkawka 96 atool 97 dos2unix 98 fzf 99 gallery-dl 100 imagemagick 101 jdupes 102 mmv 103 lf 104 mnamer 105 mp3val 106 nixfmt-rfc-style 107 ocrmypdf 108 optipng 109 opustags 110 pciutils 111 powertop 112 python3 113 qpdf 114 rbw 115 shellcheck-minimal 116 shfmt 117 sqlite 118 unrar 119 yt-dlp 120 ]; 121 122 system.stateVersion = "24.11"; 123 }