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