fileserver nfs

This commit is contained in:
Sam 2024-05-15 21:46:48 +01:00
parent b82b079966
commit 5329b3e4ad
3 changed files with 24 additions and 29 deletions

View File

@ -1,16 +1,12 @@
{ {
description = "Your new nix config"; description = "Nix Config";
inputs = { inputs = {
# Nixpkgs # 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"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Also see the 'unstable-packages' overlay at 'overlays/default.nix'.
# Home manager # Home manager
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -39,45 +35,26 @@
home-manager, home-manager,
disko, disko,
... ...
} @ inputs: let } @ inputs:
let
inherit (self) outputs; inherit (self) outputs;
# Supported systems for your flake packages, shell, etc.
systems = [ systems = [
"aarch64-linux"
"i686-linux"
"x86_64-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; forAllSystems = nixpkgs.lib.genAttrs systems;
specialArgs = { inherit inputs outputs; }; specialArgs = { inherit inputs outputs; };
in { in {
# Your custom packages
# Accessible through 'nix build', 'nix shell', etc
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); 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); formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
# Your custom packages and modifications, exported as overlays
overlays = import ./overlays {inherit inputs;}; 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; 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; homeManagerModules = import ./modules/home-manager;
# NixOS configuration entrypoint # System level configs
# Available through 'nixos-rebuild --flake .#your-hostname'
nixosConfigurations = { nixosConfigurations = {
# FIXME replace with your hostname
nixdev = nixpkgs.lib.nixosSystem { nixdev = nixpkgs.lib.nixosSystem {
inherit specialArgs; inherit specialArgs;
modules = [ modules = [
# > Our main nixos configuration file <
./hosts/nixdev ./hosts/nixdev
home-manager.nixosModules.home-manager{ home-manager.nixosModules.home-manager{
home-manager.extraSpecialArgs = specialArgs; home-manager.extraSpecialArgs = specialArgs;
@ -87,7 +64,6 @@
fileserver = nixpkgs.lib.nixosSystem { fileserver = nixpkgs.lib.nixosSystem {
inherit specialArgs; inherit specialArgs;
modules = [ modules = [
# > Our main nixos configuration file <
./hosts/fileserver ./hosts/fileserver
home-manager.nixosModules.home-manager{ home-manager.nixosModules.home-manager{
home-manager.extraSpecialArgs = specialArgs; home-manager.extraSpecialArgs = specialArgs;

View File

@ -0,0 +1,17 @@
{...}:
{
fileSystems."/mnt" = {
device = "/dev/vdb";
fsType = "ext4";
options = [ ];
};
services.nfs.server = {
enable = true;
exports = ''
/mnt/ *(ro,insecure,all_squash)
'';
};
}

View File

@ -9,6 +9,7 @@
# Import optional options # Import optional options
../common/optional/openssh ../common/optional/openssh
../common/optional/fileserver-nfs-mount.nix
# Create users for this host # Create users for this host
../common/users/admin ../common/users/admin
@ -35,6 +36,7 @@
hostName = "fileserver"; hostName = "fileserver";
networkmanager.enable = true; networkmanager.enable = true;
enableIPv6 = false; enableIPv6 = false;
hosts = { "192.168.122.223" = [ "fileserver" ] };
}; };
time.timeZone = "Europe/London"; time.timeZone = "Europe/London";