From 5329b3e4adfca1505be3e49f0c18bbb77660a2e5 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 15 May 2024 21:46:48 +0100 Subject: [PATCH] fileserver nfs --- flake.nix | 34 +++---------------- .../common/optional/fileserver-nfs-mount.nix | 17 ++++++++++ hosts/fileserver/default.nix | 2 ++ 3 files changed, 24 insertions(+), 29 deletions(-) create mode 100644 hosts/common/optional/fileserver-nfs-mount.nix diff --git a/flake.nix b/flake.nix index bcbbb33..46cf9a4 100644 --- a/flake.nix +++ b/flake.nix @@ -1,16 +1,12 @@ { - description = "Your new nix config"; + description = "Nix Config"; inputs = { # Nixpkgs - #nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; - # You can access packages and modules from different nixpkgs revs - # at the same time. Here's an working example: nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - # Also see the 'unstable-packages' overlay at 'overlays/default.nix'. # Home manager - home-manager = { + home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -39,45 +35,26 @@ home-manager, disko, ... - } @ inputs: let + } @ inputs: + let inherit (self) outputs; - # Supported systems for your flake packages, shell, etc. systems = [ - "aarch64-linux" - "i686-linux" "x86_64-linux" - "aarch64-darwin" - "x86_64-darwin" ]; - # This is a function that generates an attribute by calling a function you - # pass to it, with each system as an argument forAllSystems = nixpkgs.lib.genAttrs systems; specialArgs = { inherit inputs outputs; }; in { - # Your custom packages - # Accessible through 'nix build', 'nix shell', etc packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); - # Formatter for your nix files, available through 'nix fmt' - # Other options beside 'alejandra' include 'nixpkgs-fmt' formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); - - # Your custom packages and modifications, exported as overlays overlays = import ./overlays {inherit inputs;}; - # Reusable nixos modules you might want to export - # These are usually stuff you would upstream into nixpkgs nixosModules = import ./modules/nixos; - # Reusable home-manager modules you might want to export - # These are usually stuff you would upstream into home-manager homeManagerModules = import ./modules/home-manager; - # NixOS configuration entrypoint - # Available through 'nixos-rebuild --flake .#your-hostname' + # System level configs nixosConfigurations = { - # FIXME replace with your hostname nixdev = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ - # > Our main nixos configuration file < ./hosts/nixdev home-manager.nixosModules.home-manager{ home-manager.extraSpecialArgs = specialArgs; @@ -87,7 +64,6 @@ fileserver = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ - # > Our main nixos configuration file < ./hosts/fileserver home-manager.nixosModules.home-manager{ home-manager.extraSpecialArgs = specialArgs; diff --git a/hosts/common/optional/fileserver-nfs-mount.nix b/hosts/common/optional/fileserver-nfs-mount.nix new file mode 100644 index 0000000..272d163 --- /dev/null +++ b/hosts/common/optional/fileserver-nfs-mount.nix @@ -0,0 +1,17 @@ +{...}: +{ + fileSystems."/mnt" = { + device = "/dev/vdb"; + fsType = "ext4"; + options = [ ]; + }; + + services.nfs.server = { + enable = true; + + exports = '' + /mnt/ *(ro,insecure,all_squash) + ''; + }; +} + diff --git a/hosts/fileserver/default.nix b/hosts/fileserver/default.nix index daa9fe7..5129b19 100644 --- a/hosts/fileserver/default.nix +++ b/hosts/fileserver/default.nix @@ -9,6 +9,7 @@ # Import optional options ../common/optional/openssh + ../common/optional/fileserver-nfs-mount.nix # Create users for this host ../common/users/admin @@ -35,6 +36,7 @@ hostName = "fileserver"; networkmanager.enable = true; enableIPv6 = false; + hosts = { "192.168.122.223" = [ "fileserver" ] }; }; time.timeZone = "Europe/London";