nix-configs

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

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 }