ilias.nix (3551B)
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/devel.nix {inherit pkgs;}) 19 (import ../common/locale.nix {inherit pkgs timezone;}) 20 ../common/mount-drives.nix 21 ../common/nfs-server.nix 22 ../common/packages.nix 23 (import ../scripts/restic.nix {inherit pkgs;}) 24 (import ../common/ssh-tunnel.nix {inherit config pkgs username domain sshport privatekey;}) 25 (import ../common/ssh.nix {inherit username sshkey sshport;}) 26 (import ../common/syncthing.nix {inherit config pkgs username;}) 27 (import ../scripts/tank-log.nix {inherit pkgs username;}) 28 (import ../scripts/tank-sort.nix {inherit pkgs username;}) 29 (import ../common/user.nix {inherit config pkgs username fullname;}) 30 (import ../scripts/audiobook-cleaner.nix {inherit pkgs domain;}) 31 ../scripts/backup-local.nix 32 (import ../scripts/blog-music.nix {inherit pkgs domain;}) 33 (import ../scripts/blog-sort-archives.nix {inherit pkgs domain;}) 34 (import ../scripts/blog-sort-languages.nix {inherit pkgs domain;}) 35 (import ../scripts/blog-sort-quotes.nix {inherit pkgs domain;}) 36 (import ../scripts/blog-weight.nix {inherit pkgs domain;}) 37 ../scripts/ctimerename.nix 38 ../scripts/duupmove.nix 39 (import ../scripts/overtid.nix {inherit pkgs;}) 40 ../scripts/payslips.nix 41 ../scripts/phone-dump.nix 42 ../scripts/seedy.nix 43 ../scripts/startpage-sort.nix 44 ../scripts/watchedlist.nix 45 ../scripts/youtube-id-rss.nix 46 ]; 47 home-manager = { 48 backupFileExtension = "hm-bak"; 49 users.${username} = {pkgs, ...}: { 50 imports = [ 51 (import ../home/fish.nix {inherit pkgs domain;}) 52 (import ../home/git.nix {inherit fullname email;}) 53 ../home/htop.nix 54 ../home/neovim.nix 55 (import ../home/rbw.nix {inherit pkgs domain email;}) 56 (import ../home/rclone.nix {inherit domain username sshport privatekey;}) 57 (import ../home/ssh.nix {inherit domain username sshport privatekey;}) 58 ]; 59 home.stateVersion = "24.11"; 60 }; 61 }; 62 63 # Hardware and system 64 boot = { 65 initrd = { 66 availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" ]; 67 kernelModules = [ ]; 68 }; 69 kernelModules = [ "kvm-intel" ]; 70 extraModulePackages = [ ]; 71 loader = { 72 systemd-boot.enable = true; 73 efi.canTouchEfiVariables = true; 74 }; 75 }; 76 nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 77 hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 78 swapDevices = [ 79 { device = "/dev/disk/by-uuid/3397e636-91db-44ae-9572-923e4b3acbbe"; } 80 ]; 81 82 # Cron jobs 83 services = { 84 cron = { 85 enable = true; 86 systemCronJobs = [ 87 "0 */4 * * * ${username} . /etc/profile; tank-sort" 88 "5 */4 * * * ${username} . /etc/profile; tank-log" 89 "0 */12 * * * ${username} backup-cloud" 90 ]; 91 }; 92 }; 93 94 # Packages 95 environment.systemPackages = with pkgs; [ 96 czkawka # duplicate file finder 97 jdupes # duplicate file finder 98 mmv # mass renamer 99 nixfmt-rfc-style 100 ocrmypdf 101 optipng 102 pciutils 103 powertop 104 python3 105 qpdf 106 sqlite 107 unrar 108 ]; 109 110 system.stateVersion = "24.11"; 111 }