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 }