nix-chimera/flake.nix

77 lines
2.2 KiB
Nix

{
description = "viv's steamdeck";
inputs = { # update a single input; nix flake lock --update-input nixpkgs
nixpkgs = {
url = "github:NixOS/nixpkgs/nixos-unstable";
};
jovian = {
url = "github:jovian-experiments/jovian-nixos/development";
inputs.nixpkgs.follows = "nixpkgs";
};
base = {
url = "github:vivlim/nix-base/main";
#url = "path:/home/vivlim/nix-workspace/nix-base/";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ self, nixpkgs, jovian, base, disko, sops-nix, ... }:
let
overlayModule =
({ config, pkgs, ... }: { nixpkgs.overlays = [ jovian.overlays.default ]; });
machineFactory = base.machineFactory;
colmenaTargetFactory = base.colmenaTargetFactory;
# Using a wrapper I have in `base` that unpacks 'moduleBundles' defined there.
machineFactoryArgs = {
system = "x86_64-linux";
hostname = "chimera";
inherit inputs;
modules = [
disko.nixosModules.disko
./configuration.nix
base.moduleBundles.system-base
base.moduleBundles.plasma-desktop
base.moduleBundles.system-physical
base.moduleBundles.gaming-hardware
sops-nix.nixosModules.sops
];
};
in {
# nix build .#nixosConfigurations.vivdeck.config.system.build.toplevel
nixosConfigurations = {
chimera = (base.machineFactory machineFactoryArgs);
};
colmena = {
meta = {
nixpkgs = import nixpkgs {
system = "x86_64-linux";
};
specialArgs = {
inherit inputs;
};
};
vivdeck = (base.colmenaTargetFactory machineFactoryArgs)
// {
deployment.targetHost = "chimera.cow-bebop.ts.net"; # todo: change to tailscale hostname after it's added.
deployment.targetUser = "root";
};
};
devShells = base.devShells;
};
}