nix-configs

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

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 }