Switch to module-based rice

This commit is contained in:
Filippo Berto 2024-10-22 18:49:26 +02:00
parent a8ee39aaa3
commit 61329e5f96
No known key found for this signature in database
GPG key ID: FE98AE5EC52B1056
19 changed files with 505 additions and 547 deletions

359
flake.nix
View file

@ -25,7 +25,6 @@
nixpkgs.follows = "nixpkgs";
};
};
flake-utils.url = "github:numtide/flake-utils";
nix-rice.url = "github:bertof/nix-rice/modules";
nixos-generators = {
url = "github:nix-community/nixos-generators";
@ -53,15 +52,10 @@
];
};
basic_module = {
nixpkgs = {
config = nix-config;
overlays = [
# Nix rice
inputs.nix-rice.overlays.default
inputs.self.overlays.rice
# packages
inputs.self.overlays.packages
inputs.self.overlays.overrides
@ -97,6 +91,9 @@
# Nix configuration
basic_module
inputs.nix-rice.modules.default
./modules/nixos/rice.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
@ -137,10 +134,7 @@
./modules/nixos/musa.nix
] ++ homeManagerUModules ++ [{ home-manager.users.bertof = import ./instances/odin/hm.nix; }];
installerModules = commonModules ++ [ ./modules/nixos/installer.nix ];
in
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
systems = import inputs.systems;
@ -152,8 +146,7 @@
inherit system;
config = nix-config;
overlays = [
inputs.nix-rice.overlays.default
# inputs.self.overlays.rice.default
# inputs.nix-rice.overlays.default
inputs.self.overlays.packages
];
};
@ -224,8 +217,6 @@
overlays = {
default = inputs.self.overlays.packages;
rice = import ./rice.nix;
packages = self: _super: {
keyboard-switch = self.callPackage ./pkgs/keyboard-switch { };
sddm-sugar-dark = self.callPackage ./pkgs/sddm-sugar-dark { };
@ -235,10 +226,9 @@
wl-update-background = self.callPackage ./pkgs/wl-update-background { };
};
overrides = self: super: {
overrides = _self: super: {
google-chrome = super.google-chrome.override { commandLineArgs = [ "--password-store=gnome" "--force-dark-mode" ]; };
sddm-theme-clairvoyance = super.sddm-theme-clairvoyance.override { wallpaper = ./wallpapers/background.jpg; };
wl-lockscreen = super.wl-lockscreen.override { strPalette = self.lib.nix-rice.palette.toRgbaShortHex self.rice.colorPalette; font = self.rice.font.normal; };
};
# two-channels = (self: _: {
@ -253,191 +243,174 @@
# });
};
nixosConfigurations =
{
nixosConfigurations = {
thor = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
./instances/thor/hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-pc-ssd
./instances/thor/configuration.nix
thor = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules =
commonModules
++ [
./instances/thor/hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-pc-ssd
./instances/thor/configuration.nix
# S3 cache write
./modules/nixos/s3_cache_write.nix
# S3 cache write
./modules/nixos/s3_cache_write.nix
./modules/nixos/pro_audio.nix
./modules/nixos/kdeconnect.nix
./modules/nixos/steam.nix
./modules/nixos/pro_audio.nix
./modules/nixos/kdeconnect.nix
./modules/nixos/steam.nix
./modules/nixos/plymouth.nix
./modules/nixos/hyprland.nix
{
home-manager.users.bertof.imports = [
./modules/hm/hyprland.nix
./modules/hm/swayidle.nix
];
}
./modules/nixos/musa.nix
]
++ homeManagerUModules
++ [{ home-manager.users.bertof = import ./instances/thor/hm.nix; }];
};
odin-nvidia = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-nvidia.nix ];
};
odin = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-intel.nix ];
};
heimdall = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules =
commonModules
++ [
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-gpu-amd
inputs.nixos-hardware.nixosModules.common-pc-ssd
./modules/nixos/server
./instances/heimdall/hardware-configuration.nix
./instances/heimdall/configuration.nix
./modules/nixos/users/tiziano.nix
./modules/nixos/torrentbox.nix
./modules/nixos/minio.nix
./modules/nixos/rclone.nix
./modules/nixos/nextcloud.nix
# ./modules/nixos/ntfy.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
]
++ homeManagerModules
++ [{ home-manager.users.bertof = import ./instances/heimdall/hm.nix; }];
};
freya = inputs.nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules =
commonModules
++ [
inputs.nixos-hardware.nixosModules.raspberry-pi-4
(
{ lib, ... }:
{
boot.supportedFilesystems = lib.mkForce [
"btrfs"
"reiserfs"
"vfat"
"f2fs"
"xfs"
"ntfs"
"cifs"
];
}
)
./modules/nixos/server
./instances/freya/hardware-configuration.nix
./instances/freya/configuration.nix
./modules/nixos/users/tiziano.nix
./modules/nixos/torrentbox.nix
./modules/nixos/minio.nix
# ./modules/nixos/nextcloud.nix
./modules/nixos/ntfy.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
]
++ homeManagerModules
++ [{ home-manager.users.bertof = import ./instances/freya/hm.nix; }];
};
baldur = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
./modules/nixos/server
./instances/baldur/hardware-configuration.nix
./instances/baldur/configuration.nix
# ./modules/nixos/digitalocean.nix
./modules/nixos/users/tiziano.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
]
# ++ homeManagerModules ++ [{
# home-manager.users.bertof = import ./instances/baldur/hm.nix;
# home-manager.users.tiziano = import ./instances/baldur/hm_tiziano.nix;
# }]
;
};
loki = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules =
commonModules
++ [
./modules/nixos/server
inputs.nixos-hardware.nixosModules.common-cpu-intel
inputs.nixos-hardware.nixosModules.common-pc-ssd
./instances/loki/hardware-configuration.nix
./instances/loki/configuration.nix
./modules/nixos/users/tiziano.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
]
++ homeManagerModules
++ [
{
home-manager.users.bertof = import ./instances/loki/hm.nix;
home-manager.users.tiziano = import ./instances/loki/hm_tiziano.nix;
}
./modules/nixos/plymouth.nix
./modules/nixos/hyprland.nix
{
home-manager.users.bertof.imports = [
./modules/hm/hyprland.nix
./modules/hm/swayidle.nix
];
}
./modules/nixos/musa.nix
] ++ homeManagerUModules ++ [{
home-manager.users.bertof = import ./instances/thor/hm.nix;
}];
};
odin-nvidia = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-nvidia.nix ];
};
odin = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-intel.nix ];
};
heimdall = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-gpu-amd
inputs.nixos-hardware.nixosModules.common-pc-ssd
./modules/nixos/server
./instances/heimdall/hardware-configuration.nix
./instances/heimdall/configuration.nix
./modules/nixos/users/tiziano.nix
./modules/nixos/torrentbox.nix
./modules/nixos/minio.nix
./modules/nixos/rclone.nix
./modules/nixos/nextcloud.nix
# ./modules/nixos/ntfy.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
] ++ homeManagerModules ++ [{
home-manager.users.bertof = import ./instances/heimdall/hm.nix;
}];
};
freya = inputs.nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = commonModules ++ [
inputs.nixos-hardware.nixosModules.raspberry-pi-4
({ lib, ... }: {
boot.supportedFilesystems = lib.mkForce [
"btrfs"
"reiserfs"
"vfat"
"f2fs"
"xfs"
"ntfs"
"cifs"
];
})
./modules/nixos/server
./instances/freya/hardware-configuration.nix
./instances/freya/configuration.nix
./modules/nixos/users/tiziano.nix
./modules/nixos/torrentbox.nix
./modules/nixos/minio.nix
# ./modules/nixos/nextcloud.nix
./modules/nixos/ntfy.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
] ++ homeManagerModules ++ [{
home-manager.users.bertof = import ./instances/freya/hm.nix;
}];
};
baldur = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
./modules/nixos/server
./instances/baldur/hardware-configuration.nix
./instances/baldur/configuration.nix
# ./modules/nixos/digitalocean.nix
./modules/nixos/users/tiziano.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
]
# ++ homeManagerModules ++ [{
# home-manager.users.bertof = import ./instances/baldur/hm.nix;
# home-manager.users.tiziano = import ./instances/baldur/hm_tiziano.nix;
# }]
;
};
loki = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
./modules/nixos/server
inputs.nixos-hardware.nixosModules.common-cpu-intel
inputs.nixos-hardware.nixosModules.common-pc-ssd
./instances/loki/hardware-configuration.nix
./instances/loki/configuration.nix
./modules/nixos/users/tiziano.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
] ++ homeManagerModules ++ [{
home-manager.users.bertof = import ./instances/loki/hm.nix;
home-manager.users.tiziano = import ./instances/loki/hm_tiziano.nix;
}];
};
# # Deploy-rs checks
# checks = builtins.mapAttrs (_system: deployLib: deployLib.deployChecks inputs.self.deploy) inputs.deploy-rs.lib;
# Map nodes to Deploy-rs deployments
deploy.nodes = {
baldur = {
hostname = "baldur.bertof.net";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.baldur; };
};
# # Deploy-rs checks
# checks = builtins.mapAttrs (_system: deployLib: deployLib.deployChecks inputs.self.deploy) inputs.deploy-rs.lib;
# Map nodes to Deploy-rs deployments
deploy.nodes = {
baldur = {
hostname = "baldur.bertof.net";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.baldur; };
};
freya = {
hostname = "freya.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos inputs.self.nixosConfigurations.freya; };
};
heimdall = {
hostname = "heimdall.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.heimdall; };
};
loki = {
hostname = "loki.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.loki; };
};
odin = {
hostname = "odin.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.odin; };
};
thor = {
hostname = "thor.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.thor; };
};
freya = {
hostname = "freya.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos inputs.self.nixosConfigurations.freya; };
};
heimdall = {
hostname = "heimdall.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.heimdall; };
};
loki = {
hostname = "loki.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.loki; };
};
odin = {
hostname = "odin.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.odin; };
};
thor = {
hostname = "thor.tsn";
profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.thor; };
};
};
};
};
};
}