nixos-config/flake.nix

159 lines
4.8 KiB
Nix

{
description = "My nix setup";
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
impermanence.url = "github:nix-community/impermanence";
home-manager = {
inputs.nixpkgs.follows = "nixpkgs";
};
dns = {
url = "github:nix-community/dns.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-colors.url = "github:Misterio77/nix-colors";
purge = {
url = "sourcehut:~rouven/purge";
inputs.nixpkgs.follows = "nixpkgs";
};
trucksimulatorbot = {
url = "sourcehut:~rouven/trucksimulator";
inputs.nixpkgs.follows = "nixpkgs";
};
pfersel = {
url = "sourcehut:~rouven/pfersel";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.3.0";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ self
, nixpkgs
, home-manager
, dns
, nix-index-database
, agenix
, impermanence
, nix-colors
, lanzaboote
, purge
, trucksimulatorbot
, pfersel
, ...
}@attrs: {
packages.x86_64-linux = {
iso = self.nixosConfigurations.iso.config.system.build.isoImage;
# thinkpad = self.nixosConfigurations.thinkpad.config.system.build.toplevel;
jmri = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/jmri { };
adguardian-term = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/adguardian-term { };
matrix-authentication-service = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/matrix-authentication-service { };
pww = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/pww { };
gnome-break-timer = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/gnome-break-timer { };
hashcash-milter = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/hashcash-milter { };
ianny = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/ianny { };
ssh3 = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/ssh3/client.nix { };
ssh3-server = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/ssh3/server.nix { };
};
hydraJobs = self.packages;
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
overlays.default = import ./overlays;
nixosConfigurations = {
thinkpad = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = attrs;
modules = [
./hosts/thinkpad
./shared
./users/rouven
home-manager.nixosModules.home-manager
agenix.nixosModules.default
nix-index-database.nixosModules.nix-index
impermanence.nixosModules.impermanence
lanzaboote.nixosModules.lanzaboote
{
nixpkgs.overlays = [ self.overlays.default ];
home-manager.extraSpecialArgs = attrs;
home-manager.users.rouven = {
imports = [
nix-colors.homeManagerModules.default
];
};
}
];
};
nuc = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = attrs;
modules = [
nix-index-database.nixosModules.nix-index
impermanence.nixosModules.impermanence
agenix.nixosModules.default
./hosts/nuc
./shared
{
nixpkgs.overlays = [ self.overlays.default ];
}
];
};
falkenstein = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = attrs;
modules = [
./hosts/falkenstein
./shared
{
nixpkgs.overlays = [ self.overlays.default ];
}
nix-index-database.nixosModules.nix-index
agenix.nixosModules.default
purge.nixosModules.default
trucksimulatorbot.nixosModules.default
pfersel.nixosModules.default
];
};
vm = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = attrs;
modules = [
./hosts/vm
./shared
nix-index-database.nixosModules.nix-index
];
};
iso = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs.inputs = attrs;
modules = [
./hosts/iso
./shared/vim.nix
./shared/tmux.nix
./shared/zsh.nix
nix-index-database.nixosModules.nix-index
];
};
};
};
}