eve-psr-nix0/flake.nix

84 lines
2.4 KiB
Nix

{
description = "eve-psr-nix0 - Home Server";
inputs = {
nixpkgs.url = "nixpkgs/nixos-24.11";
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.darwin.follows = "";
inputs.home-manager.follows = "";
};
nix-serve-ng = {
url = github:aristanetworks/nix-serve-ng;
inputs.nixpkgs.follows = "nixpkgs";
};
parts.url = "github:hercules-ci/flake-parts";
};
outputs = inputs@{ self, agenix, nix-serve-ng, nixpkgs, parts, ... }:
parts.lib.mkFlake { inherit inputs; } {
systems =
[ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
perSystem = { config, self', inputs', pkgs, system, ... }:
let
shell = import ./nix/shell.nix { inherit inputs' agenix pkgs; };
in
{
devShells.default = shell.dev;
formatter = pkgs.nixpkgs-fmt;
};
flake =
let
pkgs = import nixpkgs { inherit system; };
system = "x86_64-linux";
in
{
inherit system;
nixosConfigurations = {
eve-psr-nix0 = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = inputs;
modules = [
({ modulesPath, ... }: {
imports = [
agenix.nixosModules.default
nix-serve-ng.nixosModules.default
./nix/application/containers.nix
./nix/application/miniflux.nix
./nix/application/nginx.nix
./nix/application/postgresql.nix
./nix/monitoring/nginx.nix
./nix/monitoring/grafana.nix
./nix/monitoring/prometheus.nix
./nix/system/age.nix
./nix/system/backups.nix
./nix/system/dns.nix
./nix/system/hardware.nix
./nix/system/nix-conf.nix
./nix/system/network.nix
./nix/system/overlays.nix
./nix/system/security.nix
./nix/system/system.nix
./nix/system/virtualisation.nix
./nix/system/wireguard.nix
./nix/user/users.nix
];
system.stateVersion = "22.11";
})
];
};
};
};
};
}