WIP: switch to open modules

This commit is contained in:
Filippo Berto 2025-09-23 15:06:59 +02:00
parent 2d93d5c465
commit 5eb4de6380
Signed by: bertof
GPG key ID: 9DBF7E6A1D2CE9ED

180
flake.nix
View file

@ -29,7 +29,7 @@
# emanote.url = "github:srid/emanote";
};
outputs = inputs:
outputs = { self, ... }@inputs:
let
nix-config = {
allowUnfree = true;
@ -45,61 +45,6 @@
# cute-api = builtins.getFlake "gitlab:bertof/cute-api/0.2.1-3";
basic_module = {
nixpkgs = {
config = nix-config;
overlays = [
# packages
inputs.self.overlays.packages
inputs.self.overlays.overrides
];
};
nix = {
inherit (nix-config) extraOptions;
registry = {
stable = { from = { id = "stable"; type = "indirect"; }; flake = inputs.nixpkgs; };
unstable = { from = { id = "unstable"; type = "indirect"; }; flake = inputs.nixpkgs-u; };
};
};
};
# Home manager configuration
homeManagerUModules = [
inputs.home-manager-u.nixosModules.default
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
stable = inputs.nixpkgs;
unstable = inputs.nixpkgs-u;
};
};
}
];
commonModules = [
# Nix configuration
basic_module
# Nix rice
inputs.nix-rice.modules.default
./nixos/rice.nix
# # S3 cache read
# ./nixos/s3_cache_read.nix
# Agenix configuration
inputs.ragenix.nixosModules.default
# inputs.agenix.nixosModules.default
# { services.userborn.enable = true; }
./nixos/users/bertof.nix
# Some basic defaults
./nixos/basics
];
mainModules = [
./nixos/pro_audio.nix
./nixos/kdeconnect.nix
@ -110,7 +55,7 @@
{ home-manager.users.bertof.imports = [ ./hm/hyprland.nix ]; }
];
installerModules = commonModules ++ [ ./nixos/installer.nix ];
installerModules = [ self.nixosModules.commonModules ./nixos/installer.nix ];
in
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
systems = import inputs.systems;
@ -233,12 +178,68 @@
};
};
nixosModules = { };
nixosModules = {
basic = {
nixpkgs = {
config = nix-config;
overlays = [
# packages
inputs.self.overlays.packages
inputs.self.overlays.overrides
];
};
nix = {
inherit (nix-config) extraOptions;
registry = {
stable = { from = { id = "stable"; type = "indirect"; }; flake = inputs.nixpkgs; };
unstable = { from = { id = "unstable"; type = "indirect"; }; flake = inputs.nixpkgs-u; };
};
};
};
# Home manager configuration
homeManagerUModules = {
imports = [ inputs.home-manager-u.nixosModules.default ];
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
stable = inputs.nixpkgs;
unstable = inputs.nixpkgs-u;
};
};
};
commonModules = {
imports = [
# Nix configuration
self.nixosModules.basic
# Nix rice
inputs.nix-rice.modules.default
./nixos/rice.nix
# # S3 cache read
# ./nixos/s3_cache_read.nix
# Agenix configuration
inputs.ragenix.nixosModules.default
# inputs.agenix.nixosModules.default
# { services.userborn.enable = true; }
./nixos/users/bertof.nix
# Some basic defaults
./nixos/basics
];
};
};
nixosConfigurations = {
thor = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ mainModules ++ [
modules = [ self.nixosModules.commonModules ] ++ mainModules ++ [
./instances/thor/hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-pc-ssd
@ -256,17 +257,20 @@
{ home-manager.users.bertof.imports = [ ./hm/hyprland.nix ]; }
./nixos/musa.nix
] ++ homeManagerUModules ++ [{
self.nixosModules.homeManagerUModules
{
age.secrets = {
rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; };
};
home-manager.users.bertof = import ./instances/thor/hm.nix;
}];
}
];
};
sif = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ mainModules ++ [
modules = [ self.nixosModules.commonModules ] ++ mainModules ++ [
./instances/sif/hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-cpu-intel
inputs.nixos-hardware.nixosModules.common-cpu-intel
@ -282,17 +286,20 @@
# ./nixos/minio_local.nix
# ./nixos/musa.nix
] ++ homeManagerUModules ++ [{
self.nixosModules.homeManagerUModules
{
age.secrets = {
rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; };
};
home-manager.users.bertof = import ./instances/sif/hm.nix;
}];
}
];
};
odin = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
modules = [ self.nixosModules.commonModules ] ++ [
inputs.nixos-hardware.nixosModules.common-cpu-intel
inputs.nixos-hardware.nixosModules.common-pc-laptop
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
@ -305,19 +312,22 @@
./nixos/ip_forwarding.nix
# ./nixos/plasma6.nix
./nixos/steam.nix
] ++ homeManagerUModules ++ [{
self.nixosModules.homeManagerUModules
{
home-manager.users.bertof = import ./instances/odin/hm.nix;
home-manager.users.tiziano = import ./instances/odin/hm_tiziano.nix;
age.secrets = {
rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; };
rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; };
};
}];
}
];
};
heimdall = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
modules = [ self.nixosModules.commonModules ] ++ [
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-gpu-amd
inputs.nixos-hardware.nixosModules.common-pc-ssd
@ -340,7 +350,9 @@
# ./nixos/ntfy.nix
# S3 cache read
# ./nixos/s3_cache_read.nix
] ++ homeManagerUModules ++ [{
self.nixosModules.homeManagerUModules
{
age.secrets = {
rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; };
heimdall-gitlab-runner-nix.file = ./secrets/heimdall-gitlab-runner-nix.age;
@ -348,12 +360,13 @@
heimdall-gitlab-runner-default.file = ./secrets/heimdall-gitlab-runner-default.age;
};
home-manager.users.bertof = import ./instances/heimdall/hm.nix;
}];
}
];
};
freya = inputs.nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = commonModules ++ [
modules = [ self.nixosModules.commonModules ] ++ [
inputs.nixos-hardware.nixosModules.raspberry-pi-4
({ lib, ... }: {
boot.supportedFilesystems = lib.mkForce [
@ -379,7 +392,9 @@
./nixos/ntfy.nix
# S3 cache read
# ./nixos/s3_cache_read.nix
] ++ homeManagerUModules ++ [{
self.nixosModules.homeManagerUModules
{
home-manager.users.bertof = import ./instances/freya/hm.nix;
@ -389,12 +404,13 @@
rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; };
};
}];
}
];
};
baldur = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
modules = [ self.nixosModules.commonModules ] ++ [
./nixos/server
./instances/baldur/hardware-configuration.nix
./instances/baldur/configuration.nix
@ -405,7 +421,9 @@
# ./nixos/users/tiziano.nix
# S3 cache read
# ./nixos/s3_cache_read.nix
] ++ homeManagerUModules ++ [{
self.nixosModules.homeManagerUModules
{
home-manager.users.bertof = import ./instances/baldur/hm.nix;
home-manager.users.tiziano = import ./instances/baldur/hm_tiziano.nix;
@ -413,12 +431,13 @@
rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; };
rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; };
};
}];
}
];
};
loki = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
modules = [ self.nixosModules.commonModules ] ++ [
./nixos/server
inputs.nixos-hardware.nixosModules.common-cpu-intel
@ -429,7 +448,9 @@
./nixos/users/tiziano.nix
# S3 cache read
# ./nixos/s3_cache_read.nix
] ++ homeManagerUModules ++ [{
self.nixosModules.homeManagerUModules
{
home-manager.users.bertof = import ./instances/odin/hm.nix;
home-manager.users.tiziano = import ./instances/odin/hm_tiziano.nix;
@ -437,7 +458,8 @@
rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; };
rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; };
};
}];
}
];
};
};