Compare commits

...

7 commits

Author SHA1 Message Date
Felix Buehler
04bc5181ff hardware/keychron: fix keyboard detection
Some checks are pending
/ Build Nix targets (push) Waiting to run
2025-12-27 17:14:00 +01:00
Felix Buehler
72c96ce9bb profile/core: remove e1000e and nvme from kernelModules. 2025-12-27 17:12:21 +01:00
Felix Buehler
b6424bd12a profile/core: add comments 2025-12-27 16:43:41 +01:00
Felix Buehler
fc2feddfbb profile/core: convert to nixosModule 2025-12-27 16:27:21 +01:00
Felix Buehler
346f4d6592 treewide: Move machines/core to profiles/core 2025-12-27 15:57:47 +01:00
Felix Buehler
b494b01a9c treewide: Group media services in modules/services/media 2025-12-27 15:57:42 +01:00
Felix Buehler
e9951968c7 flake: update 2025-12-27 11:51:40 +01:00
25 changed files with 118 additions and 97 deletions

24
flake.lock generated
View file

@ -222,11 +222,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1764440730, "lastModified": 1766568855,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=", "narHash": "sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3", "rev": "c5db9569ac9cc70929c268ac461f4003e3e5ca80",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -237,11 +237,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1765838191, "lastModified": 1766736597,
"narHash": "sha256-m5KWt1nOm76ILk/JSCxBM4MfK3rYY7Wq9/TZIIeGnT8=", "narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c6f52ebd45e5925c188d1a20119978aa4ffd5ef6", "rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -297,11 +297,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1765779637, "lastModified": 1766651565,
"narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -354,11 +354,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765836173, "lastModified": 1766289575,
"narHash": "sha256-hWRYfdH2ONI7HXbqZqW8Q1y9IRbnXWvtvt/ONZovSNY=", "narHash": "sha256-BOKCwOQQIP4p9z8DasT5r+qjri3x7sPCOq+FTjY8Z+o=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "443a7f2e7e118c4fc63b7fae05ab3080dd0e5c63", "rev": "9836912e37aef546029e48c8749834735a6b9dad",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -51,8 +51,8 @@
}; };
imports = [ imports = [
../machines/core/core.nix ../profiles/core/core.nix
../machines/core/nix.nix ../profiles/core/nix.nix
]; ];
documentation = { documentation = {

View file

@ -17,8 +17,7 @@ let
}; };
}; };
customModules = import ./core/default.nix; defaultModules = [
baseModules = [
# make flake inputs accessible in NixOS # make flake inputs accessible in NixOS
{ {
_module.args.self = self; _module.args.self = self;
@ -45,10 +44,12 @@ let
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
]; ];
} }
{
my.profiles.core.enable = true;
}
../modules ../modules
../profiles ../profiles
]; ];
defaultModules = baseModules ++ customModules;
in in
{ {
flake.nixosConfigurations = { flake.nixosConfigurations = {

View file

@ -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";
}

View file

@ -1,7 +0,0 @@
[
./core.nix
./modules.nix
./network.nix
./nix.nix
./users.nix
]

View file

@ -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
];
};
}

View file

@ -13,7 +13,10 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
hardware.keyboard.qmk.enable = true; hardware.keyboard.qmk = {
enable = true;
keychronSupport = true;
};
services.udev.packages = with pkgs; [ services.udev.packages = with pkgs; [
via via

View file

@ -5,7 +5,6 @@
./alertmanager ./alertmanager
./aria2 ./aria2
./backup ./backup
./bazarr
./blackbox ./blackbox
./blocky ./blocky
./dyndns ./dyndns
@ -20,26 +19,20 @@
./homepage ./homepage
./homer ./homer
./initrd-ssh ./initrd-ssh
./jellyfin
./jellyseerr
./loki ./loki
./minecraft-server
./matrix-bot ./matrix-bot
./media
./minecraft-server
./mumble-server ./mumble-server
./navidrome
./nextcloud ./nextcloud
./node-exporter ./node-exporter
./octoprint ./octoprint
./paperless ./paperless
./passworts ./passworts
./photos
./prometheus ./prometheus
./promtail ./promtail
./prowlarr
./radarr
./remote-build ./remote-build
./rss-bridge ./rss-bridge
./sonarr
./ssh-server ./ssh-server
./tandoor-recipes ./tandoor-recipes
./vpn ./vpn

View file

@ -0,0 +1,13 @@
{ ... }:
{
imports = [
./bazarr
./jellyfin
./jellyseerr
./navidrome
./photos
./prowlarr
./radarr
./sonarr
];
}

45
profiles/core/core.nix Normal file
View file

@ -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";
}

23
profiles/core/default.nix Normal file
View file

@ -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)
]
);
}

View file

@ -11,10 +11,5 @@ _: {
"usb_storage" "usb_storage"
"xhci_pci" "xhci_pci"
]; ];
kernelModules = [
"e1000e"
"nvme"
];
}; };
} }

12
profiles/core/network.nix Normal file
View file

@ -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
];
};
}

View file

@ -4,6 +4,7 @@
./3d-design ./3d-design
./android ./android
./clean ./clean
./core
./desktop-apps ./desktop-apps
./desktop-dev ./desktop-dev
./development ./development