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
19
modules/virtualization/incus.nix
Normal file
19
modules/virtualization/incus.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
virtualisation.incus = {
|
||||
enable = true;
|
||||
ui.enable = true;
|
||||
package = pkgs.incus;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
incus
|
||||
lxc
|
||||
];
|
||||
users.users.geir = {
|
||||
extraGroups = [
|
||||
"incus-admin"
|
||||
];
|
||||
};
|
||||
networking.firewall.allowedTCPPorts = [ 8443 ];
|
||||
}
|
21
modules/virtualization/libvirt.nix
Normal file
21
modules/virtualization/libvirt.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ config, pkgs, ... }: {
|
||||
virtualisation.libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
package = pkgs.qemu_kvm;
|
||||
runAsRoot = true;
|
||||
swtpm.enable = true;
|
||||
ovmf = {
|
||||
enable = true;
|
||||
packages = [ pkgs.OVMFFull.fd ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
qemu_kvm
|
||||
libvirt
|
||||
virt-manager
|
||||
virt-viewer
|
||||
];
|
||||
}
|
18
modules/virtualization/podman.nix
Normal file
18
modules/virtualization/podman.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{ pkgs, ... }: {
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
dockerSocket.enable = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
podman-tui
|
||||
podman-compose
|
||||
buildah
|
||||
skopeo
|
||||
];
|
||||
|
||||
# Enable container runtime for desktop integration
|
||||
virtualisation.containers.enable = true;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue