nix-config/flake.nix

131 lines
3.2 KiB
Nix
Raw Normal View History

2022-05-25 19:27:42 +02:00
{
inputs = {
2023-07-24 00:09:31 +02:00
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05";
2022-09-28 21:42:37 +02:00
2023-01-09 18:23:59 +01:00
flake-utils.url = "github:numtide/flake-utils";
2022-09-28 21:42:37 +02:00
2022-05-29 13:39:17 +02:00
sops-nix = {
2023-01-09 18:23:59 +01:00
url = "github:Mic92/sops-nix";
2023-07-24 00:09:31 +02:00
inputs.nixpkgs.follows = "nixpkgs";
2022-05-29 13:39:17 +02:00
};
2022-09-28 21:42:37 +02:00
2022-05-25 19:27:42 +02:00
microvm = {
2023-07-26 18:00:41 +02:00
url = "github:astro/microvm.nix/v0.4.0";
2023-05-20 14:51:01 +02:00
inputs = {
2023-07-24 00:09:31 +02:00
nixpkgs.follows = "nixpkgs";
2023-05-20 14:51:01 +02:00
flake-utils.follows = "flake-utils";
};
2022-05-25 19:27:42 +02:00
};
2022-09-28 21:42:37 +02:00
2023-02-14 22:13:52 +01:00
tmux-yank = {
url = "github:tmux-plugins/tmux-yank";
flake = false;
};
2022-05-25 19:27:42 +02:00
};
outputs =
inputs@{ self
, flake-utils
, microvm
2023-07-24 00:09:31 +02:00
, nixpkgs
, sops-nix
, ...
}:
2022-09-28 21:42:37 +02:00
flake-utils.lib.eachDefaultSystem
(system:
let
2023-07-24 00:09:31 +02:00
pkgs = nixpkgs.legacyPackages.${system};
2022-09-28 21:42:37 +02:00
in
{
2023-07-24 00:09:31 +02:00
packages.slick = pkgs.callPackage "${self}/pkgs/slick.nix" { };
# packages.imhex = pkgs.libsForQt5.callPackage "${self}/pkgs/imhex.nix" { };
2022-09-28 21:42:37 +02:00
})
//
{
2023-02-09 23:22:43 +01:00
overlays.default = _final: prev: {
2022-09-28 21:42:37 +02:00
inherit (self.packages.${prev.system})
slick;
};
2023-01-27 22:20:34 +01:00
nixosConfigurations = {
2023-07-24 00:09:31 +02:00
cirrus = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
2022-10-09 13:34:48 +02:00
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
./hosts/cirrus
2023-01-22 23:07:29 +01:00
./modules/basic-tools
2023-06-01 20:33:05 +02:00
./modules/server
];
};
2023-01-09 18:23:59 +01:00
2023-07-24 00:09:31 +02:00
dishwasher = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
2022-10-09 13:34:48 +02:00
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.host
./hosts/dishwasher
2023-01-22 23:07:29 +01:00
./modules/basic-tools
./modules/binary-caches.nix
2023-06-01 20:33:05 +02:00
./modules/server
];
};
2023-01-09 18:23:59 +01:00
2023-07-24 00:09:31 +02:00
nextcloud = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
2022-10-09 13:34:48 +02:00
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.microvm
./microvms/nextcloud
2023-06-01 20:33:05 +02:00
./modules/server
];
};
2023-01-24 20:40:41 +01:00
2023-07-24 00:09:31 +02:00
music = nixpkgs.lib.nixosSystem {
2023-01-24 20:40:41 +01:00
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.microvm
./microvms/music
2023-06-01 20:33:05 +02:00
./modules/server
2023-01-24 20:40:41 +01:00
];
};
2023-03-19 00:07:05 +01:00
2023-07-24 00:09:31 +02:00
news = nixpkgs.lib.nixosSystem {
2023-03-19 00:07:05 +01:00
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
microvm.nixosModules.microvm
2023-05-15 16:50:29 +02:00
./microvms/news
2023-06-01 20:33:05 +02:00
./modules/server
2023-03-19 00:07:05 +01:00
];
};
2023-06-01 20:43:57 +02:00
2023-07-24 00:09:31 +02:00
noctilucent = nixpkgs.lib.nixosSystem {
2023-06-01 20:43:57 +02:00
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
sops-nix.nixosModules.sops
./hosts/noctilucent
./modules/server
./modules/basic-tools
./modules/binary-caches.nix
];
};
2022-06-17 19:29:47 +02:00
};
2023-05-26 21:35:05 +02:00
hydraJobs =
let
get-toplevel = (host: nixSystem: nixSystem.config.microvm.declaredRunner or nixSystem.config.system.build.toplevel);
in
2023-07-24 00:09:31 +02:00
nixpkgs.lib.mapAttrs get-toplevel self.nixosConfigurations;
2022-05-25 19:27:42 +02:00
};
}