flock/flake.nix

123 lines
3.3 KiB
Nix
Executable file

{
description = "NixOS System Configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; # Stable nixpkgs.
lanzaboote.url = "github:nix-community/lanzaboote"; # Secure boot.
nixos-hardware.url = "github:NixOS/nixos-hardware"; # Hardware specific config.
sops-nix.url = "github:Mic92/sops-nix"; # Secrets management.
secrets = {
url = "git+ssh://git@docker.local:222/fern/secrets?ref=main";
flake = false;
}; # Secrets repo.
# Updated packages.
fluffychat2.url = "github:NixOS/nixpkgs?ref=pull/419632/head"; # FluffyChat 2.0.0
feishin0_17.url = "github:NixOS/nixpkgs?ref=pull/414929/head"; # Feishin 0.17.0
};
outputs =
inputs@{
self,
nixpkgs,
lanzaboote,
nixos-hardware,
sops-nix,
fluffychat2,
feishin0_17,
...
}:
{
# ThinkPad T480
nixosConfigurations.muskduck = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
fluffychat2 = import fluffychat2 { inherit system; };
feishin0_17 = import feishin0_17 { inherit system; };
};
modules = [
{ networking.hostName = "muskduck"; }
lanzaboote.nixosModules.lanzaboote
nixos-hardware.nixosModules.lenovo-thinkpad-t480
./configuration/common.nix
./configuration/desktop.nix
./hosts/muskduck.nix # Include the results of the hardware scan.
];
};
### Proxmox Guests ###
nixosConfigurations.vm-minecraft = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
{ networking.hostName = "minecraft"; }
./configuration/common.nix
./configuration/server/common.nix
./configuration/server/vm.nix
./configuration/server/docker.nix
./hosts/vm-minecraft.nix # Include the results of the hardware scan.
];
};
nixosConfigurations.vm-docker = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
{ networking.hostName = "docker"; }
./configuration/common.nix
./configuration/server/common.nix
./configuration/server/vm.nix
./configuration/server/docker.nix
./hosts/vm-docker.nix # Include the results of the hardware scan.
];
};
nixosConfigurations.lxc-technitium = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
{ networking.hostName = "technitium"; }
./configuration/common.nix
./configuration/server/common.nix
./configuration/server/containers/common.nix
./configuration/server/containers/technitium.nix
];
};
nixosConfigurations.lxc-firefox-syncserver = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
secrets = builtins.toString inputs.secrets;
};
modules = [
sops-nix.nixosModules.sops
{ networking.hostName = "firefox-syncserver"; }
./configuration/common.nix
./configuration/server/common.nix
./configuration/server/containers/common.nix
./configuration/server/containers/firefox-syncserver.nix
];
};
};
}