modularized deployments

This commit is contained in:
2026-08-14 10:07:01 -05:00
parent efad2c82e8
commit a058a8cddc
6 changed files with 99 additions and 26 deletions

View File

@@ -12,9 +12,9 @@
{
imports = [
./hardware-configuration.nix
../services.nix
../packages.nix
../security.nix
./services.nix
./packages.nix
./security.nix
];
# Enable flakes and nix-command
@@ -30,7 +30,6 @@
"electron-39.8.10"
];
# Use the systemd-boot EFI boot loader.
boot = {
loader = {
limine = {
@@ -47,7 +46,20 @@
networking = {
hostName = "demilich";
networkmanager.enable = true;
networkmanager = {
enable = true;
};
nftables = {
enable = true;
};
firewall = {
enable = true;
trustedInterfaces = [ config.services.tailscale.interfaceName ];
allowedUDPPorts = [ config.services.tailscale.port ];
};
};
# Set your time zone.
@@ -56,7 +68,7 @@
# Select internationalisation properties.
i18n.defaultLocale = "en_CA.UTF-8";
console = {
# keyMap = "us";
keyMap = "us";
useXkbConfig = true;
};

View File

@@ -1,32 +1,63 @@
# 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, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" "iwlwifi" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" "iwlwifi" ];
boot = {
initrd = {
availableKernelModules = [
"xhci_pci"
"nvme"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
"iwlwifi"
];
kernelModules = [ ];
systemd = {
network = {
wait-online = {
enable = false;
};
};
};
};
};
boot.kernelModules = [
"kvm-intel"
"iwlwifi"
];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/e3f1509a-7556-4eb9-ab4d-20dc2d5ff47d";
fsType = "xfs";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/e3f1509a-7556-4eb9-ab4d-20dc2d5ff47d";
fsType = "xfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/6E60-FBDB";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/eaab6975-f924-485a-a84e-9d37973127ca"; }
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/6E60-FBDB";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
swapDevices = [
{ device = "/dev/disk/by-uuid/eaab6975-f924-485a-a84e-9d37973127ca"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

125
demilich/packages.nix Normal file
View File

@@ -0,0 +1,125 @@
{ pkgs, ... }:
{
nixpkgs.overlays = [
(final: prev: {
bitwarden-desktop = prev.bitwarden-desktop // {
electron_39 = final.electron_39-bin;
};
})
];
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
environment.systemPackages = with pkgs; [
# language servers useful on a system level
bash-language-server
dockerfile-language-server
lua-language-server
nginx-language-server
nixd
systemd-language-server
yaml-language-server
# system wide applications
bitwarden-cli
bitwarden-desktop
btop
curl
direnv
eza
fd
firefox
fuzzel
fzf
ghostscript_headless
ghostty
git
imagemagick
lazygit
mako
mermaid-cli
neovide
neohtop
nixfmt
restic
ripgrep
rsync
seafile-client
sqlite
starship
stow
swayidle
swaylock
tectonic
trash-cli
tree-sitter
wl-clipboard
xwayland-satellite
yazi
zoxide
];
fonts.packages = with pkgs; [
nerd-fonts.caskaydia-cove
nerd-fonts.caskaydia-mono
nerd-fonts.fira-code
nerd-fonts.fantasque-sans-mono
nerd-fonts.fira-mono
nerd-fonts.geist-mono
nerd-fonts.go-mono
nerd-fonts.hack
nerd-fonts.hasklug
nerd-fonts.jetbrains-mono
nerd-fonts.liberation
nerd-fonts.monoid
nerd-fonts.mononoki
nerd-fonts.noto
nerd-fonts.open-dyslexic
nerd-fonts.overpass
nerd-fonts.profont
nerd-fonts.proggy-clean-tt
nerd-fonts.recursive-mono
nerd-fonts.roboto-mono
nerd-fonts.sauce-code-pro
nerd-fonts.shure-tech-mono
nerd-fonts.space-mono
nerd-fonts.symbols-only
nerd-fonts.terminess-ttf
nerd-fonts.ubuntu
nerd-fonts.ubuntu-mono
nerd-fonts.ubuntu-sans
nerd-fonts.victor-mono
nerd-fonts.zed-mono
];
programs = {
waybar = {
enable = true;
};
niri = {
enable = true;
};
neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
configure = {
treesitter = {
enable = true;
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
bash
lua
nix
regex
];
};
customLuaRC = builtins.readFile ./config/nvim.lua;
};
};
zsh = {
enable = true;
};
};
}

8
demilich/security.nix Normal file
View File

@@ -0,0 +1,8 @@
{ ... }:
{
security = {
polkit.enable = true;
pam.services.swaylock = {};
};
}

73
demilich/services.nix Normal file
View File

@@ -0,0 +1,73 @@
{ config, ... }:
{
systemd = {
user = {
services = {
niri = {
enableDefaultPath = false;
};
};
};
services = {
tailscaled = {
serviceConfig = {
Environment = [
"TS_DEBUG_FIREWALL_MODE=nftables"
];
};
};
NetworkManager-wait-online = {
enable = false;
};
};
network = {
wait-online = {
enable = false;
};
};
};
xdg.portal.config.niri = {
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
};
services = {
tailscale = {
enable = true;
};
displayManager = {
enable = true;
lemurs = {
enable = true;
};
};
xserver = {
enable = true;
xkb.options = "ctrl:nocaps";
};
pipewire = {
enable = true;
pulse.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
libinput.enable = true;
printing.enable = true;
greetd = {
enable = true;
settings = {
default_session = {
command = "${config.programs.niri.package}/bin/niri-session";
user = "stobbsm";
};
};
};
gnome = {
gnome-keyring = {
enable = true;
};
};
};
}