nix-configs

Personal NixOS and home-manager configuration files
Log | Files | Refs

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 }