54 lines
1.5 KiB
Nix
54 lines
1.5 KiB
Nix
{
|
|
description = "NaxOS: Declarative, Appliance-Like NixOS- & ZFS-Based Network Attached Storage";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, nixpkgs-unstable, ... }:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
};
|
|
in {
|
|
# Exported NixOS Modules for NaxOS
|
|
nixosModules = {
|
|
naxos = import ./modules;
|
|
default = self.nixosModules.naxos;
|
|
};
|
|
|
|
# Standard NaxOS Appliance System Configuration
|
|
nixosConfigurations = {
|
|
naxos = nixpkgs.lib.nixosSystem {
|
|
inherit system;
|
|
modules = [
|
|
self.nixosModules.naxos
|
|
./profiles/nas-appliance.nix
|
|
./profiles/hardware-generic.nix
|
|
];
|
|
};
|
|
|
|
# Bootable Installer ISO
|
|
installer-iso = nixpkgs.lib.nixosSystem {
|
|
inherit system;
|
|
modules = [
|
|
./iso/installer-iso.nix
|
|
];
|
|
};
|
|
};
|
|
|
|
# Exported Packages & ISO Image
|
|
packages.${system} = {
|
|
iso = self.nixosConfigurations.installer-iso.config.system.build.isoImage;
|
|
default = pkgs.writeShellScriptBin "naxos-help" ''
|
|
echo "NaxOS Appliance Flake"
|
|
echo "To build installer ISO: nix build .#iso"
|
|
echo "To test appliance configuration: nix build .#nixosConfigurations.naxos.config.system.build.toplevel"
|
|
'';
|
|
};
|
|
};
|
|
}
|