Testing a 'minimal' image for Linode
This commit is contained in:
parent
33352e6963
commit
e55ffc6b9d
3 changed files with 79 additions and 1 deletions
|
@ -58,7 +58,7 @@
|
||||||
imageConfigurations = {
|
imageConfigurations = {
|
||||||
nixos-rpi4-img = libx.mkImage { hostname = "nixos-rpi4-img"; platform = "aarch64-linux"; format = "sd-aarch64"; };
|
nixos-rpi4-img = libx.mkImage { hostname = "nixos-rpi4-img"; platform = "aarch64-linux"; format = "sd-aarch64"; };
|
||||||
nixos-iso-console = libx.mkImage { hostname = "nixos-iso-console"; format = "iso"; };
|
nixos-iso-console = libx.mkImage { hostname = "nixos-iso-console"; format = "iso"; };
|
||||||
nixos-linode-img = libx.mkImage { hostname = "nixos-linode-img"; format = "linode"; };
|
nixos-linode-img = libx.mkMinImage { hostname = "nixos-linode-img"; format = "linode"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
# Devshell for bootstrapping; acessible via 'nix develop'
|
# Devshell for bootstrapping; acessible via 'nix develop'
|
||||||
|
|
|
@ -58,6 +58,32 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Combines mkHost and mkHome for image building
|
||||||
|
mkMinImage = {
|
||||||
|
hostname ,
|
||||||
|
username ? "albert",
|
||||||
|
desktop ? null,
|
||||||
|
platform ? "x86_64-linux",
|
||||||
|
gpu ? null,
|
||||||
|
theme ? "default",
|
||||||
|
format
|
||||||
|
}:
|
||||||
|
inputs.nixos-generators.nixosGenerate {
|
||||||
|
specialArgs = { inherit inputs outputs desktop hostname username stateVersion hmStateVersion gpu platform theme format; };
|
||||||
|
format = format;
|
||||||
|
system = platform;
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
../nixos/minimal.nix
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
inputs.lanzaboote.nixosModules.lanzaboote
|
||||||
|
# inputs.home-manager.nixosModules.home-manager {
|
||||||
|
# home-manager.extraSpecialArgs = { inherit inputs outputs desktop hostname username hmStateVersion stateVersion gpu platform theme format; };
|
||||||
|
# home-manager.users."${username}" = import ../home-manager;
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
forAllSystems = inputs.nixpkgs.lib.genAttrs [
|
forAllSystems = inputs.nixpkgs.lib.genAttrs [
|
||||||
"aarch64-linux"
|
"aarch64-linux"
|
||||||
"x86_64-linux"
|
"x86_64-linux"
|
||||||
|
|
52
nixos/minimal.nix
Normal file
52
nixos/minimal.nix
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{ lib, config, pkgs, hostname, stateVersion, username, desktop, gpu, inputs, platform, theme, ... }: {
|
||||||
|
imports = [
|
||||||
|
# Services
|
||||||
|
./common/services/openssh.nix
|
||||||
|
./common/services/fail2ban.nix
|
||||||
|
|
||||||
|
# NixOS Modules
|
||||||
|
./common/modules/networking.nix # Initial Networking configs
|
||||||
|
./common/modules/nixos.nix # NixOS related items
|
||||||
|
|
||||||
|
./users/${username}
|
||||||
|
./hosts/${hostname}
|
||||||
|
] ++ lib.optional (builtins.isString desktop) ./common/desktops/${desktop};
|
||||||
|
|
||||||
|
# List packages installed in system profile
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
sbctl
|
||||||
|
wget
|
||||||
|
killall
|
||||||
|
curl
|
||||||
|
rsync
|
||||||
|
git
|
||||||
|
duf
|
||||||
|
ncdu
|
||||||
|
du-dust
|
||||||
|
btop
|
||||||
|
iftop
|
||||||
|
nload
|
||||||
|
iotop
|
||||||
|
sops
|
||||||
|
gnupg
|
||||||
|
cryptsetup
|
||||||
|
parted
|
||||||
|
screen
|
||||||
|
];
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
i18n.extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
|
LC_PAPER = "en_US.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
|
LC_TIME = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = stateVersion;
|
||||||
|
}
|
Loading…
Reference in a new issue