nix-config/flake.nix

119 lines
3.2 KiB
Nix
Raw Normal View History

2022-02-23 12:40:21 +01:00
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
2023-07-26 11:57:46 +02:00
nixpkgs-stable.url = "nixpkgs/nixos-23.05";
2022-03-05 18:52:59 +01:00
2022-02-23 12:40:21 +01:00
home-manager = {
2022-03-05 18:52:59 +01:00
url = "github:nix-community/home-manager/master";
2022-02-23 12:40:21 +01:00
inputs.nixpkgs.follows = "nixpkgs";
};
impermanence.url = "github:nix-community/impermanence";
2023-08-04 17:45:37 +02:00
deploy-rs.url = "github:serokell/deploy-rs";
2022-05-24 09:47:14 +02:00
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
2022-02-23 12:40:21 +01:00
};
2022-07-11 16:46:10 +02:00
2023-07-23 16:53:16 +02:00
outputs =
{ self
, nixpkgs
, nixpkgs-stable
, nixos-hardware
, home-manager
, impermanence
2023-08-04 17:45:37 +02:00
, deploy-rs
}@inputs:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
deployPkgs = import nixpkgs {
inherit system;
overlays = [
deploy-rs.overlay
(self: super: {
deploy-rs = {
inherit (pkgs) deploy-rs;
lib = deploy-rs.lib;
};
})
];
};
in
{
2022-03-05 18:52:59 +01:00
nixosConfigurations = {
trantor = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
# unstablePkgs = nixpkgs-unstable.legacyPackages."x86_64-linux";
2022-03-05 19:54:51 +01:00
stablePkgs = nixpkgs-stable.legacyPackages."x86_64-linux";
2022-03-05 18:52:59 +01:00
impermanence = impermanence;
};
2022-02-23 12:40:21 +01:00
2022-03-05 18:52:59 +01:00
modules = [
./hosts/trantor
2022-03-05 18:52:59 +01:00
home-manager.nixosModules.home-manager
impermanence.nixosModules.impermanence
];
};
2022-02-23 12:40:21 +01:00
2022-03-05 18:52:59 +01:00
capibara = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
# unstablePkgs = nixpkgs-unstable.legacyPackages."x86_64-linux";
stablePkgs = nixpkgs-stable.legacyPackages."x86_64-linux";
impermanence = impermanence;
};
2022-02-23 12:40:21 +01:00
2022-03-05 18:52:59 +01:00
modules = [
./hosts/capibara
2022-05-24 09:47:14 +02:00
nixos-hardware.nixosModules.lenovo-thinkpad-x230
2022-03-05 18:52:59 +01:00
home-manager.nixosModules.home-manager
impermanence.nixosModules.impermanence
];
};
lb = nixpkgs-stable.lib.nixosSystem {
system = "aarch64-linux";
specialArgs = { impermanence = impermanence; };
modules = [
./hosts/lb
impermanence.nixosModules.impermanence
];
};
2022-02-23 12:40:21 +01:00
};
2023-08-04 17:45:37 +02:00
deploy.nodes = {
capibara = {
hostname = "capibara";
profiles = {
system = {
sshUser = "rilla";
user = "root";
sudo = "doas -u";
path = deployPkgs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.capibara;
autoRollback = true;
remoteBuild = false;
};
};
};
lb = {
hostname = "lb";
profiles = {
system = {
sshUser = "rilla";
user = "root";
sudo = "doas -u";
path = deployPkgs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.lb;
autoRollback = true;
# remoteBuild = false;
remoteBuild = true;
};
};
};
};
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deployPkgs.deploy-rs.lib;
2022-02-23 12:40:21 +01:00
};
}