Compare commits

..

2 commits

Author SHA1 Message Date
Ranomier
14dfeec55f feat: manage stateVersion through hostHelper 2025-05-04 20:52:04 +02:00
Ranomier
bf19849309 fix: cleanup! 2025-05-04 20:26:19 +02:00
8 changed files with 61 additions and 100 deletions

View file

@ -10,5 +10,15 @@ in
modules = [ modules = [
{networking.hostName = hostname;} {networking.hostName = hostname;}
(./hosts/${hostname}) (./hosts/${hostname})
{
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = hostOptions.stateVersion; # Did you read the comment?
}
]; ];
} }

View file

@ -5,13 +5,6 @@
nixos-unstable, nixos-unstable,
... ...
}: { }: {
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.05"; # Did you read the comment?
#nixpkgs.overlays = [ overlays.unstable-packages ]; #nixpkgs.overlays = [ overlays.unstable-packages ];
nixpkgs = { nixpkgs = {
@ -33,22 +26,9 @@
# }) # })
]; ];
# Configure your nixpkgs instance
config = {
allowUnfree = true;
};
}; };
nix = {
settings.experimental-features = ["nix-command" "flakes"];
# https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager,
# focused on correctness, usability, and growth
# and committed to doing right by its community.
package = pkgs.lix;
channel.enable = false;
};
imports = [ imports = [
# steam and other stuff seems to depend on perl # steam and other stuff seems to depend on perl
@ -78,6 +58,7 @@
../../modules/pkg_mgrmnt ../../modules/pkg_mgrmnt
../../system_profiles/defaults.nix
# ../../tests # ../../tests
]; ];
} }

View file

@ -4,38 +4,13 @@
modulesPath, modulesPath,
... ...
}: { }: {
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.05"; # Did you read the comment?
nixpkgs.config = {
# Disable if you don't want unfree packages
allowUnfree = true;
};
nix.settings.experimental-features = ["nix-command" "flakes"];
# https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager,
# focused on correctness, usability, and growth
# and committed to doing right by its community.
nix.package = pkgs.lix;
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../../modules/locale.nix ../../system_profiles/defaults.nix
../../system_profiles/mini-container.nix
../../system_profiles/mini.nix
{
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
}
]; ];
} }

View file

@ -4,52 +4,16 @@
modulesPath, modulesPath,
... ...
}: { }: {
#networking.hostName = "jitsi"; # Define your hostname.
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.11"; # Did you read the comment?
nixpkgs.config = { nixpkgs.config = {
# Disable if you don't want unfree packages # Disable if you don't want unfree packages
allowUnfree = true; allowUnfree = true;
}; };
nix.settings.experimental-features = ["nix-command" "flakes"];
# https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager,
# focused on correctness, usability, and growth
# and committed to doing right by its community.
nix.package = pkgs.lix;
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../../modules/locale.nix ../../system_profiles/defaults.nix
../../system_profiles/mini-container.nix
(modulesPath + "/profiles/perlless.nix")
(modulesPath + "/profiles/minimal.nix")
{
environment.defaultPackages = [];
boot.kernel.enable = false;
boot.isContainer = true;
nixpkgs.overlays = [(self: super: {})];
}
{
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
}
];
disabledModules = [
(modulesPath + "/profiles/all-hardware.nix")
(modulesPath + "/profiles/base.nix")
# <nixpkgs/nixos/modules/profiles/all-hardware.nix>
# <nixpkgs/nixos/modules/profiles/base.nix>
]; ];
} }

View file

@ -1,27 +1,27 @@
inArgs: let inArgs: let
lib = inArgs.nixpkgs.lib;
hostHelper = import ./hostHelper.nix inArgs;
# Supported systems for your flake packages, shell, etc. # Supported systems for your flake packages, shell, etc.
systems = [ systems = [
#"aarch64-linux" #"aarch64-linux"
"x86_64-linux" "x86_64-linux"
]; ];
# This is a function that generates an attribute by calling a function you # This is a function that generates an attribute by calling a function you
# pass to it, with each system as an argument # pass to it, with each system as an argument
forAllSystems = inArgs.nixpkgs.lib.genAttrs systems; forAllSystems = inArgs.nixpkgs.lib.genAttrs systems;
lib = inArgs.nixpkgs.lib;
hostHelper = import ./hostHelper.nix inArgs;
in { in {
# NixOS configuration entrypoint # NixOS configuration entrypoint
# Available through 'nixos-rebuild --flake .#your-hostname' # Available through 'nixos-rebuild --flake .#your-hostname'
# to add more append // (host_helper example);
nixosConfigurations = builtins.mapAttrs (hostName: hostOptions: (hostHelper hostName hostOptions)) { nixosConfigurations = builtins.mapAttrs (hostName: hostOptions: (hostHelper hostName hostOptions)) {
crocoite = {}; crocoite = {stateVersion = "24.05";};
game-luanti = {unstable = true;};
jitsi = {stateVersion = "24.11";};
game-luanti = {stateVersion = "25.05"; unstable = true;};
}; };
# Your custom packages # Your custom packages
# Accessible through 'nix build', 'nix shell', etc # Accessible through 'nix build', 'nix shell', etc
#packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); #packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});

View file

@ -0,0 +1,23 @@
{
lib,
pkgs,
...
}: {
nix.settings.experimental-features = lib.mkDefault ["nix-command" "flakes"];
# Disable if you don't want unfree packages
nixpkgs.config.allowUnfree = lib.mkDefault true;
nix = {
# https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager,
# focused on correctness, usability, and growth
# and committed to doing right by its community.
package = lib.mkDefault pkgs.lix;
channel.enable = lib.mkDefault false;
};
imports = [
../modules/locale.nix
];
}

View file

@ -1,10 +1,13 @@
{ {
lib,
...
}: {
imports = [ imports = [
./mini.nix ./mini.nix
{ {
boot.isContainer = true; boot.isContainer = lib.mkDefault true;
boot.kernel.enable = false; boot.kernel.enable = lib.mkDefault false;
} }
]; ];
} }

View file

@ -1,4 +1,5 @@
{ {
lib,
modulesPath, modulesPath,
... ...
}: { }: {
@ -7,10 +8,14 @@
(modulesPath + "/profiles/perlless.nix") (modulesPath + "/profiles/perlless.nix")
{ {
boot.isContainer = true; environment.defaultPackages = lib.mkDefault [];
boot.kernel.enable = false; nixpkgs.overlays = lib.mkDefault [(self: super: {})];
environment.defaultPackages = [];
nixpkgs.overlays = [(self: super: {})]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
} }
]; ];