nix-configs

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

ilias.nix (3533B)


      1 # NAS
      2 {
      3   config,
      4   pkgs,
      5   machine,
      6   username,
      7   email,
      8   fullname,
      9   domain,
     10   sshkey,
     11   ...
     12 }: let
     13   media-sort = import ../common/media-sort.nix {inherit pkgs;};
     14   # home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz; # Stable
     15   home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/master.tar.gz; # Unstable
     16 in {
     17   # Core OS imports
     18   imports = [
     19     ./${machine}-hardware.nix # Include the results of the hardware scan.
     20     (import "${home-manager}/nixos") # Home-Manager
     21     (import ../common/cron-duolingo-rank.nix {inherit username;})
     22     ../common/flakes.nix
     23     ../common/garbage.nix
     24     ../common/locale.nix
     25     (import ../common/magnets.nix {inherit pkgs username;})
     26     ../common/packages.nix
     27     (import ../common/restic.nix {inherit pkgs username;})
     28     (import ../common/ssh-tunnel.nix {inherit config pkgs username domain;})
     29     (import ../common/ssh.nix {inherit username sshkey;})
     30     (import ../common/syncthing.nix {inherit config pkgs username;})
     31     (import ../common/tank-log.nix {inherit pkgs username;})
     32     (import ../common/tank-sort.nix {inherit pkgs username;})
     33     (import ../common/user.nix {inherit config pkgs username fullname;})
     34     (import ../scripts/audiobook-cleaner.nix {inherit pkgs domain;})
     35     ../scripts/backup-local.nix
     36     (import ../scripts/blog-duolingo-rank.nix {inherit pkgs domain;})
     37     (import ../scripts/blog-music.nix {inherit pkgs domain;})
     38     (import ../scripts/blog-sort-archives.nix {inherit pkgs domain;})
     39     (import ../scripts/blog-sort-languages.nix {inherit pkgs domain;})
     40     (import ../scripts/blog-sort-quotes.nix {inherit pkgs domain;})
     41     (import ../scripts/blog-weight.nix {inherit pkgs domain;})
     42     ../scripts/ctimerename.nix
     43     ../scripts/duupmove.nix
     44     (import ../scripts/overtid.nix {inherit pkgs;})
     45     ../scripts/payslips.nix
     46     ../scripts/phone-dump.nix
     47     ../scripts/seedy.nix
     48     ../scripts/watchedlist.nix
     49     ../scripts/youtube-id-rss.nix
     50   ];
     51 
     52   # Home-Manager
     53   home-manager.backupFileExtension = "hm-bak";
     54   home-manager.users.${username} = {pkgs, ...}: {
     55     imports = [
     56       ../home/fish.nix
     57       (import ../home/git.nix {inherit fullname email;})
     58       ../home/htop.nix
     59       ../home/neovim.nix
     60       (import ../home/rbw.nix {inherit pkgs domain email;})
     61       (import ../home/ssh.nix {inherit domain username;})
     62     ];
     63     # The state version is required and should stay at the version you
     64     # originally installed.
     65     home.stateVersion = "24.11";
     66   };
     67 
     68   # Hostname
     69   networking.hostName = "ilias"; # Define your hostname.
     70 
     71   # Second drive and NFS
     72   fileSystems."/mnt" = {
     73     device = "/dev/disk/by-uuid/9b205675-7376-45ba-b575-2f36eb50ea99";
     74     fsType = "ext4";
     75   };
     76   services.nfs.server = {
     77     enable = true;
     78     exports = ''
     79       /mnt    192.168.1.0/24(rw)
     80     '';
     81   };
     82   # Firewall and NFS server ports
     83   networking.firewall.enable = true;
     84   networking.firewall.allowPing = true;
     85   networking.firewall.allowedTCPPorts = [111 2049];
     86   networking.firewall.allowedUDPPorts = [111 2049];
     87 
     88   # Packages
     89   environment.systemPackages = with pkgs; [
     90     czkawka
     91     atool
     92     dos2unix
     93     fzf
     94     gallery-dl
     95     imagemagick
     96     jdupes
     97     media-sort
     98     mmv
     99     lf
    100     mnamer
    101     mp3val
    102     ngrok
    103     nixfmt-rfc-style
    104     ocrmypdf
    105     optipng
    106     opustags
    107     pciutils
    108     powertop
    109     python3
    110     qpdf
    111     rbw
    112     rclone
    113     shellcheck-minimal
    114     shfmt
    115     sqlite
    116     unrar
    117     yt-dlp
    118   ];
    119 
    120   system.stateVersion = "24.11";
    121 }