diff --git a/flake.lock b/flake.lock index 1bb8e2a..515f6c4 100644 --- a/flake.lock +++ b/flake.lock @@ -222,11 +222,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1764440730, - "narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=", + "lastModified": 1766568855, + "narHash": "sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3", + "rev": "c5db9569ac9cc70929c268ac461f4003e3e5ca80", "type": "github" }, "original": { @@ -237,11 +237,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1765838191, - "narHash": "sha256-m5KWt1nOm76ILk/JSCxBM4MfK3rYY7Wq9/TZIIeGnT8=", + "lastModified": 1766736597, + "narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c6f52ebd45e5925c188d1a20119978aa4ffd5ef6", + "rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852", "type": "github" }, "original": { @@ -297,11 +297,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1765779637, - "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", + "lastModified": 1766651565, + "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", + "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", "type": "github" }, "original": { @@ -354,11 +354,11 @@ ] }, "locked": { - "lastModified": 1765836173, - "narHash": "sha256-hWRYfdH2ONI7HXbqZqW8Q1y9IRbnXWvtvt/ONZovSNY=", + "lastModified": 1766289575, + "narHash": "sha256-BOKCwOQQIP4p9z8DasT5r+qjri3x7sPCOq+FTjY8Z+o=", "owner": "Mic92", "repo": "sops-nix", - "rev": "443a7f2e7e118c4fc63b7fae05ab3080dd0e5c63", + "rev": "9836912e37aef546029e48c8749834735a6b9dad", "type": "github" }, "original": { diff --git a/images/base-config.nix b/images/base-config.nix index 42b87dc..afd4800 100644 --- a/images/base-config.nix +++ b/images/base-config.nix @@ -51,8 +51,8 @@ }; imports = [ - ../machines/core/core.nix - ../machines/core/nix.nix + ../profiles/core/core.nix + ../profiles/core/nix.nix ]; documentation = { diff --git a/machines/configurations.nix b/machines/configurations.nix index 8139b98..a952899 100644 --- a/machines/configurations.nix +++ b/machines/configurations.nix @@ -17,8 +17,7 @@ let }; }; - customModules = import ./core/default.nix; - baseModules = [ + defaultModules = [ # make flake inputs accessible in NixOS { _module.args.self = self; @@ -45,10 +44,12 @@ let sops-nix.nixosModules.sops ]; } + { + my.profiles.core.enable = true; + } ../modules ../profiles ]; - defaultModules = baseModules ++ customModules; in { flake.nixosConfigurations = { diff --git a/machines/core/core.nix b/machines/core/core.nix deleted file mode 100644 index bf21520..0000000 --- a/machines/core/core.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ pkgs, ... }: -{ - # Packages - environment.systemPackages = with pkgs; [ - bandwhich - bind # dig - borgbackup - cryptsetup - delta - fd # find replacement - file - fzf - gettext - git - gptfdisk - htop - jq - killall - lsof - mosh - mtr - multipath-tools # kpartx - nmap - nmon - ouch # de-/compress - pciutils - progress - pv - reptyr - rsync - screen - sd # sed replacement - stress-ng - tmux - unzip - usbutils - vim - wget - whois - xcp - zip - ]; - - time.timeZone = "Europe/Berlin"; -} diff --git a/machines/core/default.nix b/machines/core/default.nix deleted file mode 100644 index 8f95b17..0000000 --- a/machines/core/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -[ - ./core.nix - ./modules.nix - ./network.nix - ./nix.nix - ./users.nix -] diff --git a/machines/core/network.nix b/machines/core/network.nix deleted file mode 100644 index 0666ee7..0000000 --- a/machines/core/network.nix +++ /dev/null @@ -1,13 +0,0 @@ -_: { - networking.networkmanager = { - enable = true; - - unmanaged = [ - "interface-name:br-*" # Ignore docker compose network bridges - "interface-name:docker?" # Ignore docker default bridge - "interface-name:veth*" # Ignore docker compose network devices - "interface-name:virbr?" # Ignore libvirt default bridge - ]; - }; - -} diff --git a/modules/hardware/keychron/default.nix b/modules/hardware/keychron/default.nix index f6702a4..5d0a46f 100644 --- a/modules/hardware/keychron/default.nix +++ b/modules/hardware/keychron/default.nix @@ -13,7 +13,10 @@ in }; config = lib.mkIf cfg.enable { - hardware.keyboard.qmk.enable = true; + hardware.keyboard.qmk = { + enable = true; + keychronSupport = true; + }; services.udev.packages = with pkgs; [ via diff --git a/modules/services/default.nix b/modules/services/default.nix index c3a430b..2113d38 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -5,7 +5,6 @@ ./alertmanager ./aria2 ./backup - ./bazarr ./blackbox ./blocky ./dyndns @@ -20,26 +19,20 @@ ./homepage ./homer ./initrd-ssh - ./jellyfin - ./jellyseerr ./loki - ./minecraft-server ./matrix-bot + ./media + ./minecraft-server ./mumble-server - ./navidrome ./nextcloud ./node-exporter ./octoprint ./paperless ./passworts - ./photos ./prometheus ./promtail - ./prowlarr - ./radarr ./remote-build ./rss-bridge - ./sonarr ./ssh-server ./tandoor-recipes ./vpn diff --git a/modules/services/bazarr/default.nix b/modules/services/media/bazarr/default.nix similarity index 100% rename from modules/services/bazarr/default.nix rename to modules/services/media/bazarr/default.nix diff --git a/modules/services/media/default.nix b/modules/services/media/default.nix new file mode 100644 index 0000000..ebb96ad --- /dev/null +++ b/modules/services/media/default.nix @@ -0,0 +1,13 @@ +{ ... }: +{ + imports = [ + ./bazarr + ./jellyfin + ./jellyseerr + ./navidrome + ./photos + ./prowlarr + ./radarr + ./sonarr + ]; +} diff --git a/modules/services/jellyfin/default.nix b/modules/services/media/jellyfin/default.nix similarity index 100% rename from modules/services/jellyfin/default.nix rename to modules/services/media/jellyfin/default.nix diff --git a/modules/services/jellyfin/enable-metrics.patch b/modules/services/media/jellyfin/enable-metrics.patch similarity index 100% rename from modules/services/jellyfin/enable-metrics.patch rename to modules/services/media/jellyfin/enable-metrics.patch diff --git a/modules/services/jellyseerr/default.nix b/modules/services/media/jellyseerr/default.nix similarity index 100% rename from modules/services/jellyseerr/default.nix rename to modules/services/media/jellyseerr/default.nix diff --git a/modules/services/navidrome/default.nix b/modules/services/media/navidrome/default.nix similarity index 100% rename from modules/services/navidrome/default.nix rename to modules/services/media/navidrome/default.nix diff --git a/modules/services/photos/default.nix b/modules/services/media/photos/default.nix similarity index 100% rename from modules/services/photos/default.nix rename to modules/services/media/photos/default.nix diff --git a/modules/services/prowlarr/default.nix b/modules/services/media/prowlarr/default.nix similarity index 100% rename from modules/services/prowlarr/default.nix rename to modules/services/media/prowlarr/default.nix diff --git a/modules/services/radarr/default.nix b/modules/services/media/radarr/default.nix similarity index 100% rename from modules/services/radarr/default.nix rename to modules/services/media/radarr/default.nix diff --git a/modules/services/sonarr/default.nix b/modules/services/media/sonarr/default.nix similarity index 100% rename from modules/services/sonarr/default.nix rename to modules/services/media/sonarr/default.nix diff --git a/profiles/core/core.nix b/profiles/core/core.nix new file mode 100644 index 0000000..6ce291f --- /dev/null +++ b/profiles/core/core.nix @@ -0,0 +1,45 @@ +{ pkgs, ... }: +{ + # Packages + environment.systemPackages = with pkgs; [ + bandwhich # bandwidth monitor + bind # dns tools (dig, etc) + borgbackup # backup tool + cryptsetup # luks volume management + delta # git diff viewer + fd # find replacement in rust + file # show file type + fzf # fuzzy finder + gettext # localization tools + git # version control + gptfdisk # disk partitioning tools + htop # process monitor + jq # json processor + killall # kill processes by name + lsof # list open files + mosh # mobile shell + mtr # network diagnostic tool + multipath-tools # disk multipathing tools (kpartx) + nmap # network scanner + nmon # performance monitor + ouch # de-/compression tool + pciutils # lspci + progress # show progress of coreutils commands + pv # pipe viewer + reptyr # reparent process to new terminal + rsync # remote file sync + screen # terminal multiplexer + sd # sed replacement + stress-ng # stress testing + tmux # terminal multiplexer + unzip # unzip tools + usbutils # lsusb + vim # text editor + wget # file downloader + whois # domain lookup + xcp # rust cp replacement + zip # zip tools + ]; + + time.timeZone = "Europe/Berlin"; +} diff --git a/profiles/core/default.nix b/profiles/core/default.nix new file mode 100644 index 0000000..da72c2b --- /dev/null +++ b/profiles/core/default.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}@args: +let + cfg = config.my.profiles.core; +in +{ + options.my.profiles.core.enable = lib.mkEnableOption "core profile"; + + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + (import ./core.nix args) + (import ./modules.nix args) + (import ./network.nix args) + (import ./nix.nix args) + (import ./users.nix args) + ] + ); +} diff --git a/machines/core/modules.nix b/profiles/core/modules.nix similarity index 77% rename from machines/core/modules.nix rename to profiles/core/modules.nix index b608601..9d0faec 100644 --- a/machines/core/modules.nix +++ b/profiles/core/modules.nix @@ -11,10 +11,5 @@ _: { "usb_storage" "xhci_pci" ]; - - kernelModules = [ - "e1000e" - "nvme" - ]; }; } diff --git a/profiles/core/network.nix b/profiles/core/network.nix new file mode 100644 index 0000000..b620223 --- /dev/null +++ b/profiles/core/network.nix @@ -0,0 +1,12 @@ +_: { + networking.networkmanager = { + enable = true; + + unmanaged = [ + "interface-name:br-*" # docker compose bridges + "interface-name:docker?" # docker default bridge + "interface-name:veth*" # docker veth devices + "interface-name:virbr?" # libvirt default bridge + ]; + }; +} diff --git a/machines/core/nix.nix b/profiles/core/nix.nix similarity index 100% rename from machines/core/nix.nix rename to profiles/core/nix.nix diff --git a/machines/core/users.nix b/profiles/core/users.nix similarity index 100% rename from machines/core/users.nix rename to profiles/core/users.nix diff --git a/profiles/default.nix b/profiles/default.nix index 3e54acd..4f95122 100644 --- a/profiles/default.nix +++ b/profiles/default.nix @@ -4,6 +4,7 @@ ./3d-design ./android ./clean + ./core ./desktop-apps ./desktop-dev ./development