nix-config/flake.nix

163 lines
4.1 KiB
Nix
Raw Permalink Normal View History

2022-05-25 19:27:42 +02:00
{
inputs = {
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
2025-01-21 23:09:25 +01:00
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
2022-09-28 21:42:37 +02:00
2023-01-09 18:23:59 +01:00
flake-utils.url = "github:numtide/flake-utils";
2022-09-28 21:42:37 +02:00
2022-05-29 13:39:17 +02:00
sops-nix = {
2023-01-09 18:23:59 +01:00
url = "github:Mic92/sops-nix";
2025-01-21 23:09:25 +01:00
inputs.nixpkgs.follows = "nixpkgs";
2022-05-29 13:39:17 +02:00
};
2022-09-28 21:42:37 +02:00
2025-01-01 16:37:23 +01:00
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
2025-01-02 16:29:05 +01:00
microvm = {
url = "github:astro/microvm.nix/v0.5.0";
inputs = {
2025-01-21 23:09:25 +01:00
nixpkgs.follows = "nixpkgs";
2025-01-02 16:29:05 +01:00
flake-utils.follows = "flake-utils";
};
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.1";
2025-01-21 23:09:25 +01:00
inputs.nixpkgs.follows = "nixpkgs";
2025-01-12 13:45:55 +01:00
};
2025-01-21 00:14:24 +00:00
authentik-nix = {
url = "github:nix-community/authentik-nix";
2025-01-21 23:09:25 +01:00
inputs.nixpkgs.follows = "nixpkgs";
};
2025-02-10 12:07:38 +01:00
lix = {
url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz";
flake = false;
};
2025-01-21 23:09:25 +01:00
lix-module = {
2025-02-10 12:07:38 +01:00
url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz";
2025-01-21 23:09:25 +01:00
inputs.nixpkgs.follows = "nixpkgs";
2025-02-10 12:07:38 +01:00
inputs.lix.follows = "lix";
2025-01-21 00:14:24 +00:00
};
2025-02-02 20:50:39 +01:00
website = {
2025-02-10 12:08:08 +01:00
url = "git+https://git.oxapentane.com/0xa/website.git?ref=main";
2025-02-02 20:50:39 +01:00
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
2023-02-14 22:13:52 +01:00
tmux-yank = {
url = "github:tmux-plugins/tmux-yank";
flake = false;
};
2022-05-25 19:27:42 +02:00
};
outputs =
2025-01-11 03:55:19 +01:00
inputs@{
2025-01-21 00:14:24 +00:00
authentik-nix,
2025-01-11 03:55:19 +01:00
lanzaboote,
2025-01-21 23:09:25 +01:00
lix-module,
2025-01-11 03:55:19 +01:00
microvm,
nixos-hardware,
2025-01-21 23:09:25 +01:00
nixpkgs,
2025-01-11 03:55:19 +01:00
sops-nix,
...
}:
2022-09-28 21:42:37 +02:00
2025-01-11 03:55:19 +01:00
{
2025-02-02 23:18:19 +00:00
nixosConfigurations =
let
microvm-list = [
"auth"
2025-02-05 18:11:49 +00:00
"conduwuit"
2025-02-03 17:12:11 +00:00
"forgejo"
2025-02-02 23:18:19 +00:00
"immich"
"miniflux"
"radicale"
];
2025-01-12 13:45:55 +01:00
2025-02-02 23:18:19 +00:00
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 {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
lanzaboote.nixosModules.lanzaboote
nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen3
lix-module.nixosModules.default
./hosts/toaster
./modules/basic-tools
./modules/binary-caches.nix
./modules/devtools.nix
./modules/gnome.nix
2025-02-02 23:18:19 +00:00
./modules/gnupg.nix
./modules/radio.nix
./modules/science.nix
./modules/tlp.nix
./modules/virtualization.nix
./hosts/toaster/secure-boot.nix
./modules/chromium.nix
./modules/mail
./modules/wg
];
};
cloud = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
lix-module.nixosModules.default
./hosts/cloud
./modules/basic-tools
./modules/server
./modules/binary-caches.nix
./modules/wg
];
};
minime = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.host
lix-module.nixosModules.default
./hosts/minime
./modules/basic-tools
./modules/server
./modules/binary-caches.nix
./modules/wg
{
config.microvm.autostart = microvm-list;
}
];
};
2025-01-21 17:39:25 +00:00
};
2025-01-11 03:55:19 +01:00
};
}