less microvm boilerplate

This commit is contained in:
Grigory Shipunov 2025-02-02 23:18:19 +00:00 committed by Grisha Shipunov
parent 9842b2df1a
commit 9ebfe0c59b
3 changed files with 92 additions and 134 deletions

View file

@ -60,7 +60,35 @@
}: }:
{ {
nixosConfigurations = { nixosConfigurations =
let
microvm-list = [
"auth"
"immich"
"miniflux"
"radicale"
];
microvms = builtins.listToAttrs (
map (vm: {
name = vm;
value = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.microvm
./hosts/${vm}
./modules/server
./modules/wg
];
};
}) microvm-list
);
in
microvms
// {
toaster = nixpkgs.lib.nixosSystem { toaster = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit inputs; }; specialArgs = { inherit inputs; };
@ -115,59 +143,10 @@
./modules/server ./modules/server
./modules/binary-caches.nix ./modules/binary-caches.nix
./modules/wg ./modules/wg
];
};
auth = nixpkgs.lib.nixosSystem { {
system = "x86_64-linux"; config.microvm.autostart = microvm-list;
specialArgs = { inherit inputs; }; }
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.microvm
authentik-nix.nixosModules.default
./hosts/auth
./modules/server
./modules/wg
];
};
immich = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.microvm
./hosts/immich
./modules/server
./modules/wg
];
};
miniflux = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.microvm
./hosts/miniflux
./modules/server
./modules/wg
];
};
radicale = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.microvm
./hosts/radicale
./modules/server
./modules/wg
]; ];
}; };
}; };

View file

@ -1,5 +1,8 @@
{ config, ... }: { config, inputs, ... }:
{ {
imports = [
inputs.authentik-nix.nixosModules.default
];
sops.secrets."authentik/env" = { }; sops.secrets."authentik/env" = { };
services.authentik = { services.authentik = {
enable = true; enable = true;

View file

@ -1,24 +0,0 @@
{ inputs, ... }:
{
microvm.stateDir = "/var/lib/microvms";
microvm.autostart = [
"auth"
"radicale"
"immich"
"miniflux"
];
microvm.vms = {
auth = {
flake = inputs.self;
updateFlake = "github:gshipunov/nix-config/master";
};
radicale = {
flake = inputs.self;
updateFlake = "github:gshipunov/nix-config/master";
};
immich = {
flake = inputs.self;
updateFlake = "github:gshipunov/nix-config/master";
};
};
}