126 lines
3.5 KiB
Nix
126 lines
3.5 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
sops-nix.url = "github:Mic92/sops-nix";
|
|
me-emacs.url = "git+https://git.syzygial.cc/Syzygial/EmacsConfig.git";
|
|
me-emacs.inputs.nixpkgs.follows = "nixpkgs";
|
|
nix-darwin.url = "github:LnL7/nix-darwin/master";
|
|
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
|
home-manager.url = "github:nix-community/home-manager";
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
lix-module = {
|
|
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
microvm.url = "github:astro/microvm.nix";
|
|
microvm.inputs.nixpkgs.follows = "nixpkgs";
|
|
deploy-rs.url = "github:serokell/deploy-rs";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, sops-nix, me-emacs, nix-darwin, home-manager, lix-module, microvm, deploy-rs }@inputs: let
|
|
overlays = import ./overlays/default.nix inputs;
|
|
modules = import ./modules/default.nix inputs;
|
|
|
|
overlays' = l: ({ config, pkgs, ... }: {
|
|
nixpkgs.overlays = l;
|
|
});
|
|
|
|
pkgs_linux-x86_64 = nixpkgs.legacyPackages."x86-linux";
|
|
pkgs_linux-aarch64 = nixpkgs.legacyPackages."aarch64-linux";
|
|
|
|
sysConfig = config: {
|
|
system = "x86_64-linux";
|
|
specialArgs = { inherit inputs; };
|
|
} // config;
|
|
|
|
nixosSystem' = config: nixpkgs.lib.nixosSystem (sysConfig ({
|
|
|
|
} // config));
|
|
|
|
darwinSystem' = config: nix-darwin.lib.darwinSystem (sysConfig ({
|
|
system = "aarch64-darwin";
|
|
} // config));
|
|
|
|
homeConf' = config: home-manager.lib.homeManagerConfiguration config;
|
|
in {
|
|
nixosConfigurations = {
|
|
nixos = nixosSystem' {
|
|
modules =[
|
|
./machines/hippocampus/configuration.nix
|
|
(overlays' [
|
|
overlays.nvidiaContainer
|
|
])
|
|
modules.sops
|
|
({ pkgs, ...}: {
|
|
nix.package = pkgs.lix;
|
|
})
|
|
];
|
|
};
|
|
universedesktop = nixosSystem' {
|
|
modules = [
|
|
./machines/universedesktop/configuration.nix
|
|
(overlays' [
|
|
overlays.emacs
|
|
])
|
|
modules.sops
|
|
# Broken w/ this nixpkgs input
|
|
# lix-module.nixosModules.default
|
|
];
|
|
};
|
|
pericyte = nixosSystem' {
|
|
modules = [
|
|
./machines/pericyte/configuration.nix
|
|
modules.sops
|
|
# lix-module.nixosModules.default
|
|
# microvm.nixosModules.host
|
|
];
|
|
};
|
|
};
|
|
darwinConfigurations = {
|
|
UniverseAir = darwinSystem' {
|
|
modules = [
|
|
./machines/universeair/configuration.nix
|
|
(overlays' [
|
|
overlays.emacs
|
|
])
|
|
modules.home-manager-darwin
|
|
# lix-module.nixosModules.default
|
|
];
|
|
};
|
|
};
|
|
homeConfigurations = {
|
|
universelaptop = homeConf' {
|
|
pkgs = pkgs_linux-aarch64;
|
|
|
|
extraSpecialArgs = {
|
|
pkgs-x86_64 = pkgs_linux-x86_64;
|
|
inputs = inputs;
|
|
};
|
|
|
|
modules = [
|
|
./machines/asahi/home.nix
|
|
];
|
|
};
|
|
};
|
|
|
|
deploy = {
|
|
nodes = {
|
|
pericyte = {
|
|
hostname = "opcp";
|
|
sshUser = "root";
|
|
profiles.system = {
|
|
user = "root";
|
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.pericyte;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
# This is highly advised, and will prevent many possible mistakes
|
|
# checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
|
|
|
|
hydraJobs = {
|
|
# inherit (me-emacs) packages;
|
|
};
|
|
};
|
|
}
|