snowfield/lib/mkmachine.nix

96 lines
3.1 KiB
Nix
Raw Normal View History

2023-11-06 10:20:10 +01:00
inputs: lib:
let
overlay-unstable = arch: _final: _prev: {
stable = import inputs.nixpkgs { system = arch; };
unstable = import inputs.unstable { system = arch; };
};
2023-11-06 10:20:10 +01:00
in
2024-05-01 19:12:07 +02:00
{
name,
host-config,
modules,
nixpkgs ? inputs.nixpkgs,
system ? "x86_64-linux",
home-manager ? inputs.home-manager,
self,
2024-08-24 22:27:29 +02:00
dnsLib,
2024-05-01 19:12:07 +02:00
}:
let
pkgs = import nixpkgs { inherit system; };
2024-03-31 21:23:04 +02:00
in
import "${nixpkgs}/nixos/lib/eval-config.nix" {
2023-11-06 10:20:10 +01:00
inherit system;
2024-08-24 22:27:29 +02:00
lib = pkgs.lib.extend (import ./default.nix inputs self.profiles dnsLib);
2024-05-01 19:12:07 +02:00
specialArgs = {
2024-08-24 22:27:29 +02:00
inherit inputs dnsLib;
2024-08-14 20:23:21 +02:00
inherit (self) nixosConfigurations profiles;
2024-05-01 19:12:07 +02:00
};
2024-08-14 20:23:21 +02:00
modules = modules ++ [
2023-11-06 10:20:10 +01:00
host-config
2024-03-31 23:45:33 +02:00
(import "${home-manager}/nixos")
2024-04-05 00:34:14 +02:00
(import "${inputs.disko}/module.nix")
2024-03-31 21:23:04 +02:00
(import "${inputs.buildbot-nix}/nix/master.nix")
(import "${inputs.buildbot-nix}/nix/worker.nix")
2024-04-05 19:27:53 +02:00
(import "${inputs.agenix}/modules/age.nix")
2024-05-09 00:51:34 +02:00
(import "${inputs.impermanence}/nixos.nix")
2024-03-31 23:38:12 +02:00
(import inputs.lanzaboote).nixosModules.lanzaboote
2024-05-21 22:03:36 +02:00
(import inputs.lila).nixosModules.hash-collection
(import "${inputs.stateless-uptime-kuma}/nixos/module.nix")
2024-12-21 20:28:55 +01:00
(import "${inputs.proxmox}/modules/declarative-vms")
2023-11-06 10:20:10 +01:00
{
home-manager.useGlobalPkgs = true;
2024-05-01 19:12:07 +02:00
nixpkgs.system = system;
2024-04-05 15:37:19 +02:00
networking.hostName = name;
2024-05-21 22:36:19 +02:00
nixpkgs.overlays = lib.mkAfter [
2023-11-06 10:20:10 +01:00
(overlay-unstable system)
2025-02-23 11:55:35 +01:00
(import "${inputs.emacs-overlay}/overlays/emacs.nix")
2024-05-01 19:12:07 +02:00
(_final: prev: {
waybar = prev.waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
});
# Packages comming from other repositories
2024-05-21 22:03:36 +02:00
lila-build-hook = (import inputs.lila).packages.${system}.utils;
2024-05-01 19:12:07 +02:00
# My own packages
keycloak-keywind = prev.pkgs.callPackage ../packages/keycloak-keywind { };
hydrasect = prev.pkgs.callPackage ../packages/hydrasect { };
2024-08-09 17:02:59 +02:00
codeberg-pages-custom = prev.pkgs.callPackage ../packages/codeberg-pages-custom { };
uptime-kuma-beta = prev.pkgs.callPackage ../packages/uptime-kuma-beta { };
2024-05-01 19:12:07 +02:00
})
(
_final: prev:
let
generated = import "${inputs.nix-index-database}/generated.nix";
nix-index-database =
(prev.fetchurl {
url = generated.url + prev.stdenv.system;
hash = generated.hashes.${prev.stdenv.system};
}).overrideAttrs
{
__structuredAttrs = true;
unsafeDiscardReferences.out = true;
};
in
{
inherit nix-index-database;
nix-index-with-db = prev.callPackage "${inputs.nix-index-database}/nix-index-wrapper.nix" {
inherit nix-index-database;
};
comma-with-db = prev.callPackage "${inputs.nix-index-database}/comma-wrapper.nix" {
inherit nix-index-database;
};
}
)
2023-11-06 10:20:10 +01:00
];
}
];
2024-03-31 21:23:04 +02:00
extraModules =
let
2024-05-01 19:12:07 +02:00
colmenaModules = import "${inputs.colmena}/src/nix/hive/options.nix";
2024-03-31 21:23:04 +02:00
in
[ colmenaModules.deploymentOptions ];
2023-11-06 10:20:10 +01:00
}