1

System: Update top-level system config for homelab integration

This commit is contained in:
2025-07-09 00:10:06 +02:00
parent 26a43db666
commit 27fced7ec7

View File

@ -43,6 +43,15 @@ with mylib.networking; {
hyprland.enable = config.programs.hyprland.enable;
};
docker = {
enable = true;
# Use podman on the desktops, the servers are
# already configured using docker though...
podman = !headless;
docker.rootless = true;
};
fonts = {
enable = !headless;
@ -184,6 +193,9 @@ with mylib.networking; {
supportedLocales = ["en_US.UTF-8/UTF-8" "de_DE.UTF-8/UTF-8"];
};
# Configure console keymap
console.keyMap = "us-acentos";
# Define a user account. Don't forget to set a password with passwd.
users.users.christoph = {
isNormalUser = true;
@ -221,10 +233,12 @@ with mylib.networking; {
# Empty since we basically only need git + editor which is enabled below
environment.systemPackages = with pkgs; [
iw
wget
mprocs # run multiple processes in single terminal window, screen alternative
parted # partition manager
procs # Better ps
procps # pgrep, pkill
busybox
killall
slirp4netns # user network namespaces
wireguard-tools
@ -299,7 +313,7 @@ with mylib.networking; {
};
# Enable touchpad support (enabled default in most desktopManager).
libinput.enable = true;
libinput.enable = !headless;
# Enable CUPS to print documents.
printing = {
@ -343,31 +357,6 @@ with mylib.networking; {
gnome.gcr-ssh-agent.enable = false; # TODO: Use this instead of ssh.startAgent?
};
virtualisation = {
docker = {
enable = false;
autoPrune.enable = true;
rootless = {
enable = true;
setSocketVariable = true;
};
};
podman = {
enable = true;
autoPrune.enable = true;
dockerCompat = true;
dockerSocket.enable = true;
defaultNetwork.settings.dns_enabled = true;
# extraPackages = with pkgs; [];
};
oci-containers.backend = "podman"; # "docker" or "podman"
libvirtd.enable = true;
};
systemd = {
# TODO: Technically this should be a user service if it runs as ${username}?
timers."refresh-nps-cache" = {
@ -384,7 +373,7 @@ with mylib.networking; {
path = ["/run/current-system/sw/"];
serviceConfig = {
Type = "oneshot";
User = "${username}"; # ⚠️ replace with your "username" or "${user}", if it's defined
User = "${username}";
};
script = ''
set -eu