feat: initial NixOS home lab infrastructure setup
- Add modular flake-based NixOS configuration - Implement GitOps foundation with CI/CD pipeline - Create comprehensive documentation and branching strategy - Add modular desktop environments (GNOME, Cosmic, Sway) - Configure virtualization stack (Incus, Libvirt, Podman) - Set up development tools and hardware-specific modules - Establish user configuration with literate programming support This commit represents the completion of Phase 1: Flakes Migration with modular configuration, virtualization, and GitOps foundation.
This commit is contained in:
commit
f30013723e
43 changed files with 4220 additions and 0 deletions
30
modules/system/applications.nix
Normal file
30
modules/system/applications.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# System applications and utilities
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Terminal applications
|
||||
kitty
|
||||
terminator
|
||||
rio
|
||||
greetd.tuigreet
|
||||
|
||||
# System monitoring
|
||||
glances
|
||||
inxi
|
||||
htop
|
||||
bottom
|
||||
systemctl-tui
|
||||
|
||||
# File and data tools
|
||||
wget
|
||||
curl
|
||||
mc
|
||||
|
||||
# Desktop integration
|
||||
dbus
|
||||
wayland
|
||||
xdg-utils
|
||||
];
|
||||
|
||||
# Flatpak support
|
||||
services.flatpak.enable = true;
|
||||
}
|
36
modules/system/fonts.nix
Normal file
36
modules/system/fonts.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# Font configuration
|
||||
fonts.packages = with pkgs; [
|
||||
# Base fonts
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
liberation_ttf
|
||||
dina-font
|
||||
proggyfonts
|
||||
|
||||
# GitHub fonts
|
||||
mona-sans
|
||||
hubot-sans
|
||||
inter-nerdfont
|
||||
|
||||
# Nerd Fonts (updated syntax for NixOS 25.05)
|
||||
nerd-fonts.meslo-lg
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.droid-sans-mono
|
||||
nerd-fonts.hack
|
||||
nerd-fonts.iosevka
|
||||
nerd-fonts.iosevka-term
|
||||
];
|
||||
|
||||
# Console configuration
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "no";
|
||||
};
|
||||
|
||||
# Internationalization
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
time.timeZone = "Europe/Oslo";
|
||||
}
|
26
modules/system/network.nix
Normal file
26
modules/system/network.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# Network configuration
|
||||
networking = {
|
||||
hostName = "congenital-optimist";
|
||||
hostId = "8425e349";
|
||||
networkmanager.enable = true;
|
||||
nftables.enable = true;
|
||||
|
||||
# Firewall configuration
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 22 ];
|
||||
allowedUDPPorts = [ 22 ];
|
||||
};
|
||||
};
|
||||
|
||||
# VPN and remote access
|
||||
services.tailscale.enable = true;
|
||||
services.openssh.enable = true;
|
||||
|
||||
# ZFS services
|
||||
services.zfs = {
|
||||
autoScrub.enable = true;
|
||||
trim.enable = true;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue