From 7b779b84c27e9f6ed2114d1f20beb33b67d905ed Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Wed, 9 Jul 2025 00:10:06 +0200 Subject: [PATCH] System: Update top-level system config for homelab integration --- system/default.nix | 43 ++++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/system/default.nix b/system/default.nix index ca3f46c2..a9687073 100644 --- a/system/default.nix +++ b/system/default.nix @@ -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