jade
b9dbaf9dcd
Let's be real, I am doing this because I got impatient with the gratuitous copy to the store this eliminates caused by pkgs.path. Also gets rid of stuff in nix.extraOptions which is deprecated.
134 lines
4.4 KiB
Nix
134 lines
4.4 KiB
Nix
{
|
|
description = "NixOS configuration with flakes";
|
|
|
|
# To update all inputs:
|
|
# $ nix flake update --recreate-lock-file
|
|
inputs = {
|
|
lix.url = "git+https://git.lix.systems/lix-project/lix.git";
|
|
lix.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz";
|
|
lix-module.inputs.nixpkgs.follows = "nixpkgs";
|
|
lix-module.inputs.lix.follows = "lix";
|
|
|
|
disko.url = "github:nix-community/disko";
|
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
|
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
nur.url = "github:nix-community/NUR";
|
|
|
|
home-manager.url = "github:rycee/home-manager/release-24.05";
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
agenix.url = "github:ryantm/agenix";
|
|
agenix.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
colmena.url = "github:zhaofengli/colmena";
|
|
colmena.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
attic.url = "github:zhaofengli/attic";
|
|
|
|
srvos.url = "github:nix-community/srvos";
|
|
# actually not used when using the modules but than nothing ever will try to fetch this nixpkgs variant
|
|
srvos.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
# Ryan's experimental hypervisor based on cloud-hypervisor
|
|
# Private repository, you need a valid SSH key to access it
|
|
# nixos-hypervisor.url = "git+ssh://gitea@git.newtype.fr/newtype/nixos-hypervisor?ref=main";
|
|
# nixos-hypervisor.inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
flake-parts,
|
|
...
|
|
}@inputs:
|
|
(flake-parts.lib.evalFlakeModule { inherit inputs; } (
|
|
{ self, inputs, ... }:
|
|
{
|
|
systems = [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
"aarch64-darwin"
|
|
];
|
|
imports = [
|
|
./configurations.nix
|
|
# ./modules/monitoring/flake-module.nix
|
|
# ./pkgs/flake-module.nix
|
|
# ./templates
|
|
];
|
|
|
|
# provide debug, allSystems, currentSystem in the resulting flake
|
|
debug = true;
|
|
|
|
perSystem =
|
|
{ self', pkgs, system, ... }:
|
|
{
|
|
# apply the lix overlay to banish CppNix
|
|
_module.args.pkgs = import inputs.nixpkgs {
|
|
inherit system;
|
|
overlays = [ inputs.lix-module.overlays.default ];
|
|
};
|
|
|
|
devShells.default = pkgs.mkShellNoCC {
|
|
buildInputs = [
|
|
pkgs.ipmitool
|
|
pkgs.colmena
|
|
|
|
pkgs.python3.pkgs.invoke
|
|
#Until nixos-anywhere is packaged
|
|
pkgs.python3.pkgs.deploykit
|
|
pkgs.mypy
|
|
pkgs.pixiecore
|
|
pkgs.dnsmasq
|
|
pkgs.python3.pkgs.netaddr
|
|
pkgs.qemu_kvm
|
|
pkgs.openssh
|
|
pkgs.gitMinimal # for git flakes
|
|
pkgs.rsync
|
|
pkgs.nix
|
|
pkgs.coreutils
|
|
pkgs.curl # when uploading tarballs
|
|
pkgs.gnugrep
|
|
pkgs.findutils
|
|
pkgs.gnused # needed by ssh-copy-id
|
|
# sops dependencies
|
|
pkgs.age
|
|
pkgs.yq-go
|
|
] ++ pkgs.lib.optional (pkgs.stdenv.isLinux) pkgs.mkpasswd;
|
|
};
|
|
packages = {
|
|
# netboot = pkgs.callPackage ./modules/netboot/netboot.nix {
|
|
# # this nixosSystem is built for x86_64 machines regardless of the host machine
|
|
# pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
|
# inherit (inputs.nixpkgs.lib) nixosSystem;
|
|
# extraModules = [
|
|
# self.inputs.nur.nixosModules.nur
|
|
# { _module.args.inputs = self.inputs; }
|
|
# ];
|
|
# };
|
|
|
|
# netboot-pixie-core = pkgs.callPackage ./modules/netboot/netboot-pixie-core.nix {
|
|
# inherit (self'.packages) netboot;
|
|
# };
|
|
};
|
|
};
|
|
flake = {
|
|
hydraJobs =
|
|
inputs.nixpkgs.lib.mapAttrs' (
|
|
name: config: inputs.nixpkgs.lib.nameValuePair "nixos-${name}" config.config.system.build.toplevel
|
|
) self.nixosConfigurations
|
|
// {
|
|
devShells = self.devShells.x86_64-linux.default;
|
|
};
|
|
};
|
|
}
|
|
)).config.flake;
|
|
|
|
}
|