This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
role = "desktop";
|
|
||||||
tags = [ "personal" ];
|
tags = [ "personal" ];
|
||||||
host = {
|
host = {
|
||||||
|
role = "desktop";
|
||||||
username = "h";
|
username = "h";
|
||||||
highRam = true;
|
highRam = true;
|
||||||
admin = true;
|
admin = true;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
role = "laptop";
|
|
||||||
tags = [ "personal" ];
|
tags = [ "personal" ];
|
||||||
host = {
|
host = {
|
||||||
|
role = "laptop";
|
||||||
username = "h";
|
username = "h";
|
||||||
highRam = true;
|
highRam = true;
|
||||||
admin = true;
|
admin = true;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
role = "embedded";
|
|
||||||
tags = [ "lab" ];
|
tags = [ "lab" ];
|
||||||
host = {
|
host = {
|
||||||
|
role = "embedded";
|
||||||
username = "h";
|
username = "h";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
role = "embedded";
|
|
||||||
tags = [ "lab" ];
|
tags = [ "lab" ];
|
||||||
host = {
|
host = {
|
||||||
|
role = "embedded";
|
||||||
username = "h";
|
username = "h";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
role = "server";
|
|
||||||
tags = [ "lab" ];
|
tags = [ "lab" ];
|
||||||
deploy.autoRollback = true;
|
deploy.autoRollback = true;
|
||||||
host = {
|
host = {
|
||||||
|
role = "server";
|
||||||
username = "h";
|
username = "h";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
role = "vm";
|
|
||||||
tags = [ "lab" ];
|
tags = [ "lab" ];
|
||||||
host = {
|
host = {
|
||||||
|
role = "vm";
|
||||||
username = "h";
|
username = "h";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,92 +1,23 @@
|
|||||||
{
|
{ lib, ... }:
|
||||||
inputs,
|
|
||||||
outputs,
|
|
||||||
dotsPath,
|
|
||||||
myUtils,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (inputs.nixpkgs) lib;
|
|
||||||
homeDir = ../../home/hosts + "/${config.host.name}";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.home-manager.nixosModules.default
|
./embedded.nix
|
||||||
|
./home-manager.nix
|
||||||
./host.nix
|
./host.nix
|
||||||
|
./nix.nix
|
||||||
|
./nixpkgs.nix
|
||||||
|
./upgrades.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options.nixpkgs.allowedUnfree = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
system.stateVersion = lib.mkDefault "25.05";
|
system.stateVersion = lib.mkDefault "25.05";
|
||||||
boot.zfs.forceImportRoot = lib.mkDefault false;
|
boot.zfs.forceImportRoot = lib.mkDefault false;
|
||||||
|
|
||||||
nix = {
|
|
||||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; # https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md
|
|
||||||
optimise = {
|
|
||||||
automatic = true;
|
|
||||||
dates = [ "05:00" ];
|
|
||||||
};
|
|
||||||
gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
options = lib.mkDefault "--delete-older-than 30d";
|
|
||||||
};
|
|
||||||
settings.experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
settings.trusted-public-keys = [
|
|
||||||
"nix-signing-key:M6ouQRFl/bZ5QQrceQUyar6P7o8qg4wwVkxD1SSLL2k="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
system.autoUpgrade = {
|
|
||||||
enable = true;
|
|
||||||
flags = [
|
|
||||||
"--recreate-lock-file"
|
|
||||||
"--commit-lock-file"
|
|
||||||
"--print-build-logs"
|
|
||||||
"--refresh"
|
|
||||||
];
|
|
||||||
dates = "05:00";
|
|
||||||
randomizedDelaySec = "45min";
|
|
||||||
allowReboot = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate =
|
|
||||||
pkg: builtins.elem (lib.getName pkg) config.nixpkgs.allowedUnfree;
|
|
||||||
|
|
||||||
environment.defaultPackages = lib.mkForce [ ];
|
environment.defaultPackages = lib.mkForce [ ];
|
||||||
environment.pathsToLink = [
|
environment.pathsToLink = [
|
||||||
"/share/applications"
|
"/share/applications"
|
||||||
"/share/xdg-desktop-portal"
|
"/share/xdg-desktop-portal"
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit
|
|
||||||
inputs
|
|
||||||
outputs
|
|
||||||
dotsPath
|
|
||||||
myUtils
|
|
||||||
;
|
|
||||||
};
|
|
||||||
sharedModules = [
|
|
||||||
{
|
|
||||||
host.username = lib.mkDefault config.host.username;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
users = lib.optionalAttrs (builtins.pathExists homeDir) {
|
|
||||||
${config.host.username} = import homeDir;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf (config.host.role == "embedded") {
|
||||||
|
system.autoUpgrade.enable = false;
|
||||||
|
nix.settings.max-jobs = 0;
|
||||||
|
|
||||||
|
zramSwap = {
|
||||||
|
enable = true;
|
||||||
|
memoryPercent = 100;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.journald.settings.Journal.SystemMaxUse = "100M";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
outputs,
|
||||||
|
dotsPath,
|
||||||
|
myUtils,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
homeDir = ../../home/hosts + "/${config.host.name}";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ inputs.home-manager.nixosModules.default ];
|
||||||
|
|
||||||
|
config.home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit
|
||||||
|
inputs
|
||||||
|
outputs
|
||||||
|
dotsPath
|
||||||
|
myUtils
|
||||||
|
;
|
||||||
|
};
|
||||||
|
sharedModules = [
|
||||||
|
{
|
||||||
|
host.username = lib.mkDefault config.host.username;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
users = lib.optionalAttrs (builtins.pathExists homeDir) {
|
||||||
|
${config.host.username} = import homeDir;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -10,6 +10,16 @@
|
|||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
role = lib.mkOption {
|
||||||
|
type = lib.types.enum [
|
||||||
|
"desktop"
|
||||||
|
"embedded"
|
||||||
|
"laptop"
|
||||||
|
"server"
|
||||||
|
"vm"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
tags = lib.mkOption {
|
tags = lib.mkOption {
|
||||||
type = lib.types.listOf lib.types.str;
|
type = lib.types.listOf lib.types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
{ inputs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config.nix = {
|
||||||
|
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; # https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md
|
||||||
|
optimise = {
|
||||||
|
automatic = true;
|
||||||
|
dates = [ "05:00" ];
|
||||||
|
};
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = lib.mkDefault "--delete-older-than 30d";
|
||||||
|
};
|
||||||
|
settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
settings.trusted-public-keys = [
|
||||||
|
"nix-signing-key:M6ouQRFl/bZ5QQrceQUyar6P7o8qg4wwVkxD1SSLL2k="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.nixpkgs.allowedUnfree = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
default = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
config.nixpkgs.config.allowUnfreePredicate =
|
||||||
|
pkg: builtins.elem (lib.getName pkg) config.nixpkgs.allowedUnfree;
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config.system.autoUpgrade = {
|
||||||
|
enable = lib.mkDefault true;
|
||||||
|
flags = [
|
||||||
|
"--recreate-lock-file"
|
||||||
|
"--commit-lock-file"
|
||||||
|
"--print-build-logs"
|
||||||
|
"--refresh"
|
||||||
|
];
|
||||||
|
dates = "05:00";
|
||||||
|
randomizedDelaySec = "45min";
|
||||||
|
allowReboot = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user