diff --git a/flake.lock b/flake.lock index 1c1d638..19a500d 100644 --- a/flake.lock +++ b/flake.lock @@ -65,11 +65,11 @@ ] }, "locked": { - "lastModified": 1780290312, - "narHash": "sha256-eTAlX0CwgB84Ts3GaBd944A3DRXVMzgA0EqroZBISUo=", + "lastModified": 1781152676, + "narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=", "owner": "nix-community", "repo": "disko", - "rev": "115e5211780054d8a890b41f0b7734cafad54dfe", + "rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1", "type": "github" }, "original": { @@ -197,16 +197,16 @@ ] }, "locked": { - "lastModified": 1779506708, - "narHash": "sha256-QOD/CNm196nCJRheux/URi4/HE66fthdOMqCJoPP1Y0=", + "lastModified": 1781319724, + "narHash": "sha256-ZGuxexEMo4Xv28KJ0dX/m/PHN4oZIOnxHZpNTyrvx4M=", "owner": "nix-community", "repo": "home-manager", - "rev": "3ee51fbdac8c8bdfe1e7e1fcaba6520a563f394f", + "rev": "8355f0a16b2dbb06a97959a918af5b239bbe05ae", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.11", + "ref": "release-26.05", "repo": "home-manager", "type": "github" } @@ -261,11 +261,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1780310866, - "narHash": "sha256-fPBRVf6A5xlACYcOI59shGrjURuvwu0lRsDoSCEXt/I=", + "lastModified": 1781168557, + "narHash": "sha256-LOnLQ2tpYF9gqIDDr3+j3DbpJJr/QCH6zPRT2GzEUOE=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "4ed851c979641e28597a05086332d75cdc9e395f", + "rev": "6358ff76821101c178e3ab4919a62799bfe3652e", "type": "github" }, "original": { @@ -338,11 +338,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1780243769, - "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", + "lastModified": 1781074563, + "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "type": "github" }, "original": { @@ -354,16 +354,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1780511130, - "narHash": "sha256-2v9lT4ya59Lh1FqPeLnz1MoX9y/wz2huqfe9RtQZITk=", + "lastModified": 1781216227, + "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "535f3e6942cb1cead3929c604320d3db54b542b9", + "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.11", + "ref": "nixos-26.05", "repo": "nixpkgs", "type": "github" } @@ -476,11 +476,11 @@ "secrets": { "flake": false, "locked": { - "lastModified": 1781207988, - "narHash": "sha256-ZsPqHeeUXDR1fksT4EGlizv8RHPHp42kusVNhnenzxo=", + "lastModified": 1781738124, + "narHash": "sha256-fff++SWoSeZJk9wwns/XzCHGU5ZOTDie821At68gH9I=", "ref": "refs/heads/main", - "rev": "53c5bdca5f2ff22b4e950c38b4d8bb96ee03c80d", - "revCount": 40, + "rev": "fdf7619e52d6bea25224f19da87b6946a6f23cf7", + "revCount": 41, "type": "git", "url": "ssh://git@git.jfreudenberger.de/JuliusFreudenberger/nix-private.git" }, diff --git a/flake.nix b/flake.nix index fe2e6da..3ff514b 100644 --- a/flake.nix +++ b/flake.nix @@ -12,10 +12,10 @@ inputs = { nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; home-manager = { - url = "github:nix-community/home-manager/release-25.11"; + url = "github:nix-community/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; }; auto-cpufreq = { @@ -88,14 +88,12 @@ specialArgs = { inherit inputs outputs username; - pkgs-unstable = import nixpkgs-unstable { - inherit system; - }; }; modules = [ nixos-hardware.nixosModules.framework-11th-gen-intel auto-cpufreq.nixosModules.default + lanzaboote.nixosModules.lanzaboote ./hosts/julius-framework ./users/julius/nixos.nix @@ -152,9 +150,6 @@ specialArgs = { inherit inputs outputs; - pkgs-unstable = import nixpkgs-unstable { - inherit system; - }; }; modules = [ @@ -169,9 +164,6 @@ specialArgs = { inherit inputs outputs; - pkgs-unstable = import nixpkgs-unstable { - inherit system; - }; }; modules = [ @@ -181,6 +173,20 @@ ]; }; + busch-nixos-native = nixpkgs.lib.nixosSystem rec { + system = "x86_64-linux"; + + specialArgs = { + inherit inputs outputs; + }; + + modules = [ + ./hosts/busch-nixos-native + disko.nixosModules.disko + agenix.nixosModules.default + ]; + }; + srv01-hf = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; diff --git a/home/gtk/default.nix b/home/gtk/default.nix index 626ebbe..17ce9c3 100644 --- a/home/gtk/default.nix +++ b/home/gtk/default.nix @@ -6,5 +6,6 @@ name = "Arc"; package = pkgs.arc-icon-theme; }; + gtk4.theme = null; }; } diff --git a/home/neovim/default.nix b/home/neovim/default.nix index 70a52ce..bfe616b 100644 --- a/home/neovim/default.nix +++ b/home/neovim/default.nix @@ -7,6 +7,8 @@ viAlias = true; vimdiffAlias = true; withNodeJs = true; + withRuby = false; + withPython3 = false; coc.enable = true; plugins = with pkgs.vimPlugins; [ vim-gitgutter diff --git a/home/xdg/default.nix b/home/xdg/default.nix index fbd1711..4570621 100644 --- a/home/xdg/default.nix +++ b/home/xdg/default.nix @@ -15,6 +15,9 @@ "text/calendar" = ["thunderbird.desktop"]; }; }; - userDirs.enable = true; + userDirs = { + enable = true; + setSessionVariables = false; + }; }; } diff --git a/home/zsh/default.nix b/home/zsh/default.nix index ece5c8e..01f522f 100644 --- a/home/zsh/default.nix +++ b/home/zsh/default.nix @@ -26,6 +26,8 @@ history.size = 10000; history.path = "$HOME/.zsh_history"; + dotDir = config.home.homeDirectory; + initContent = lib.mkMerge [ beforeCompInit defaultInit ]; }; } diff --git a/hosts/busch-gpu-docker/default.nix b/hosts/busch-gpu-docker/default.nix index a31b2e3..1a6b6c4 100644 --- a/hosts/busch-gpu-docker/default.nix +++ b/hosts/busch-gpu-docker/default.nix @@ -1,4 +1,4 @@ -{ inputs, outputs, config, lib, pkgs, pkgs-unstable, ... }: +{ inputs, outputs, config, lib, pkgs, ... }: { imports = @@ -8,6 +8,7 @@ ../../users/julius/nixos-server.nix ../../modules/nix.nix + ../../modules/qemu-guest.nix ../../modules/auto-upgrade.nix ../../modules/locale.nix ../../modules/server-cli.nix @@ -40,7 +41,7 @@ nixpkgs.config.nvidia.acceptLicense = true; services.xserver.videoDrivers = [ "nvidia" ]; - networking.hostName = "docker-gpu"; # Define your hostname. + networking.hostName = "busch-gpu-docker"; # Define your hostname. services.netbird-client = { enable = true; diff --git a/hosts/busch-main-docker/default.nix b/hosts/busch-main-docker/default.nix index 6df1d21..cdb13bc 100644 --- a/hosts/busch-main-docker/default.nix +++ b/hosts/busch-main-docker/default.nix @@ -1,4 +1,4 @@ -{ inputs, outputs, config, lib, pkgs, pkgs-unstable, ... }: +{ inputs, outputs, config, lib, pkgs, ... }: { imports = @@ -9,6 +9,7 @@ ../../users/julius/nixos-server.nix ../../modules/nix.nix ../../modules/auto-upgrade.nix + ../../modules/qemu-guest.nix ../../modules/locale.nix ../../modules/server-cli.nix ../../modules/sshd.nix @@ -28,7 +29,7 @@ }; tmp.useTmpfs = true; }; - networking.hostName = "docker-main"; # Define your hostname. + networking.hostName = "busch-main-docker"; # Define your hostname. services.netbird-client = { enable = true; diff --git a/hosts/busch-nixos-native/default.nix b/hosts/busch-nixos-native/default.nix new file mode 100644 index 0000000..e33ed9c --- /dev/null +++ b/hosts/busch-nixos-native/default.nix @@ -0,0 +1,73 @@ +{ inputs, outputs, config, lib, pkgs, ... }: + +{ + imports = + [ + ../../modules/disko/legacy-full-ext4.nix + ./secrets.nix + + ../../users/julius/nixos-server.nix + ../../modules/nix.nix + ../../modules/auto-upgrade.nix + ../../modules/qemu-guest.nix + ../../modules/locale.nix + ../../modules/server-cli.nix + ../../modules/sshd.nix + ../../modules/netbird-client.nix + "${inputs.secrets}/modules/opkssh.nix" + + # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + # Use the GRUB 2 boot loader. + boot = { + loader.grub = { + enable = true; + }; + tmp.useTmpfs = true; + }; + networking.hostName = "busch-nixos-native"; # Define your hostname. + + services.netbird-client = { + enable = true; + managementUrl = "https://netbird.jfreudenberger.de"; + host.setupKey = "E182754A-F338-4DAE-8036-03404033D30E"; + }; + + services.beszel.agent = { + enable = true; + environment = { + HUB_URL = "https://beszel.jfreudenberger.de"; + DISABLE_SSH = "true"; + }; + environmentFile = config.age.secrets.beszel.path; + }; + + services.renovate = { + enable = true; + credentials = { + RENOVATE_TOKEN = config.age.secrets.renovate-token.path; + RENOVATE_GITHUB_COM_TOKEN = config.age.secrets.renovate-github-com-token.path; + }; + settings = { + gitAuthor = "Renovate Bot "; + platform = "forgejo"; + endpoint = "https://git.jfreudenberger.de"; + }; + }; + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "25.05"; # Did you read the comment? +} diff --git a/hosts/busch-nixos-native/hardware-configuration.nix b/hosts/busch-nixos-native/hardware-configuration.nix new file mode 100644 index 0000000..54932ff --- /dev/null +++ b/hosts/busch-nixos-native/hardware-configuration.nix @@ -0,0 +1,17 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; +} diff --git a/hosts/busch-nixos-native/secrets.nix b/hosts/busch-nixos-native/secrets.nix new file mode 100644 index 0000000..5aa64a4 --- /dev/null +++ b/hosts/busch-nixos-native/secrets.nix @@ -0,0 +1,8 @@ +{ inputs, ... }: +{ + age.secrets = { + beszel.file = "${inputs.secrets}/secrets/busch-nixos-native/beszel"; + renovate-token.file = "${inputs.secrets}/secrets/busch-nixos-native/renovate-token"; + renovate-github-com-token.file = "${inputs.secrets}/secrets/busch-nixos-native/renovate-github-com-token"; + }; +} diff --git a/hosts/busch/default.nix b/hosts/busch/default.nix index 3c55b48..62a43a9 100644 --- a/hosts/busch/default.nix +++ b/hosts/busch/default.nix @@ -87,6 +87,8 @@ memoryPercent = 50; }; + hardware.ksm.enable = true; # Linux kernel Same-Page Merging, useful when having multiple VMs with same OS + networking.useDHCP = false; systemd.network = { diff --git a/hosts/julius-framework/default.nix b/hosts/julius-framework/default.nix index 1719e36..b3c7505 100644 --- a/hosts/julius-framework/default.nix +++ b/hosts/julius-framework/default.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ inputs, outputs, config, pkgs, pkgs-unstable, ... }: +{ inputs, outputs, config, pkgs, ... }: { imports = @@ -51,7 +51,6 @@ services.resolved.enable = true; services.netbird = { - package = pkgs-unstable.netbird; useRoutingFeatures = "client"; clients.wt0 = { hardened = true; @@ -75,10 +74,13 @@ loader = { efi.canTouchEfiVariables = true; systemd-boot = { - enable = true; - editor = false; + enable = false; # Enabled by lanzaboote }; }; + lanzaboote = { + enable = true; + pkiBundle = "/var/lib/sbctl"; + }; initrd = { systemd.enable = true; luks.devices = { diff --git a/modules/cli-essentials.nix b/modules/cli-essentials.nix index faa63dc..d1ef5a6 100644 --- a/modules/cli-essentials.nix +++ b/modules/cli-essentials.nix @@ -7,8 +7,9 @@ environment.systemPackages = with pkgs; [ wget curl + dig git - neofetch + fastfetch bat tealdeer diff --git a/modules/desktop-essentials.nix b/modules/desktop-essentials.nix index ea0d424..74452f8 100644 --- a/modules/desktop-essentials.nix +++ b/modules/desktop-essentials.nix @@ -15,10 +15,10 @@ pavucontrol xed-editor - mate.mate-calc + mate-calc xarchiver - mate.engrampa + engrampa nemo-with-nextcloud-extensions ]; diff --git a/modules/i3.nix b/modules/i3.nix index 9540221..7ba88ce 100644 --- a/modules/i3.nix +++ b/modules/i3.nix @@ -26,10 +26,10 @@ dex # autostart applications xbindkeys # bind keys to commands xclip - xorg.xbacklight # control screen brightness + xbacklight # control screen brightness brightnessctl numlockx - xorg.xdpyinfo # get screen information + xdpyinfo # get screen information sysstat # get system information scrot diff --git a/modules/netbird-client.nix b/modules/netbird-client.nix index 8477d00..200984f 100644 --- a/modules/netbird-client.nix +++ b/modules/netbird-client.nix @@ -1,6 +1,5 @@ { pkgs, - pkgs-unstable, utils, config, lib, @@ -10,13 +9,14 @@ let cfg = config.services.netbird-client; - clientVersion = "0.71.2"; + clientVersion = "0.72.4"; clientConfiguration = lib.types.submodule { options = { setupKey = lib.mkOption { description = "Setup Key for this client"; - type = lib.types.str; + type = lib.types.nullOr lib.types.str; + default = null; }; }; }; @@ -45,8 +45,7 @@ in { }; config = lib.mkIf cfg.enable { - services.netbird = { - package = pkgs-unstable.netbird; + services.netbird = lib.mkIf (cfg.host.setupKey != null) { useRoutingFeatures = "both"; clients.wt0 = { hardened = false; @@ -60,11 +59,10 @@ in { }; }; }; - systemd.services.${config.services.netbird.clients.wt0.service.name}.path = [ pkgs.shadow ]; - services.resolved.enable = true; + services.resolved.enable = lib.mkIf (cfg.host.setupKey != null) true; - virtualisation.oci-containers.containers = { + virtualisation.oci-containers.containers = lib.mkIf (cfg.docker.setupKey != null) { netbird = { image = "netbirdio/netbird:${clientVersion}-rootless"; autoStart = true; @@ -83,7 +81,7 @@ in { }; }; - systemd.services."docker-netbird" = { + systemd.services."docker-netbird" = lib.mkIf (cfg.docker.setupKey != null) { after = [ "docker-network-webproxy.service" ]; @@ -93,7 +91,7 @@ in { }; - systemd.services."docker-network-webproxy" = { + systemd.services."docker-network-webproxy" = lib.mkIf (cfg.docker.setupKey != null) { path = [ pkgs.docker_29 ]; serviceConfig = { Type = "oneshot"; diff --git a/modules/netbird-docker.nix b/modules/netbird-docker.nix index 9792bb4..a8faeb3 100644 --- a/modules/netbird-docker.nix +++ b/modules/netbird-docker.nix @@ -10,7 +10,7 @@ let cfg = config.services.netbird-docker; netbirdCfg = config.services.netbird; - serverVersion = "0.72.2"; + serverVersion = "0.72.4"; dashboardVersion = "2.39.0"; in { diff --git a/pkgs/nemo-engrampa/default.nix b/pkgs/nemo-engrampa/default.nix index 9dd6aaf..a576f21 100644 --- a/pkgs/nemo-engrampa/default.nix +++ b/pkgs/nemo-engrampa/default.nix @@ -8,7 +8,7 @@ glib, gtk3, nemo, - mate, + engrampa, cinnamon-translations, }: @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { done popd substituteInPlace src/nemo-engrampa.c \ - --replace-fail "file-roller" "${lib.getExe mate.engrampa}" \ + --replace-fail "file-roller" "${lib.getExe engrampa}" \ --replace-fail "fileroller" "engrampa" \ --replace-fail "FileRoller" "Engrampa" \ --replace-quiet "GNOMELOCALEDIR" "${cinnamon-translations}/share/locale"