# frankoslaw/dotfiles-nix architecture

> Architecture diagram of the GitHub repository frankoslaw/dotfiles-nix, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/frankoslaw/dotfiles-nix
- Repository: https://github.com/frankoslaw/dotfiles-nix

## Overview

This repository is a Nix-based personal system configuration: it describes a NixOS machine and its Home Manager environment. The documented local workflow is to switch to the flake configuration; the README also documents remote deployment and copying a Kubernetes configuration. The tree identifies system, home, and host-specific areas, but source excerpts were unavailable, so their composition and most runtime wiring cannot be confirmed.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_deploy["Deployment"]
  node_switch["NixOS rebuild"]
end

subgraph group_machines["Machine Configurations"]
  node_local_host["Homelab host<br/>[default.nix]"]
  node_hardware["Hardware config"]
  node_recovery["Recovery ISO<br/>[default.nix]"]
  node_user_home["User home<br/>[default.nix]"]
end

subgraph group_nixos["NixOS Features"]
  node_desktop["Desktop and devices<br/>[default.nix]"]
  node_security_network["Security and network<br/>[default.nix]"]
  node_system_services["System services<br/>[default.nix]"]
  node_system_tools["System tools<br/>[default.nix]"]
end

subgraph group_home["Home Environment"]
  node_home_packages["User packages"]
  node_home_suites["User suites"]
end

node_operator(("System operator"))
node_remote_host(("Remote host"))
node_kube_config["Kubernetes config"]

node_operator -->|"runs"| node_switch
node_operator -.->|"deploys to"| node_remote_host
node_remote_host -.->|"provides"| node_kube_config

click node_local_host "https://github.com/frankoslaw/dotfiles-nix/blob/main/systems/x86_64-linux/homelab-ms7970/default.nix"
click node_hardware "https://github.com/frankoslaw/dotfiles-nix/blob/main/systems/x86_64-linux/homelab-ms7970/hardware-configuration.nix"
click node_recovery "https://github.com/frankoslaw/dotfiles-nix/blob/main/systems/x86_64-install-iso/homelab-recovery/default.nix"
click node_user_home "https://github.com/frankoslaw/dotfiles-nix/blob/main/homes/x86_64-linux/frankoslaw%40homelab-ms7970/default.nix"
click node_desktop "https://github.com/frankoslaw/dotfiles-nix/blob/main/modules/nixos/display/default.nix"
click node_security_network "https://github.com/frankoslaw/dotfiles-nix/blob/main/modules/nixos/security/default.nix"
click node_system_services "https://github.com/frankoslaw/dotfiles-nix/blob/main/modules/nixos/audio/default.nix"
click node_system_tools "https://github.com/frankoslaw/dotfiles-nix/blob/main/modules/nixos/nix/default.nix"
click node_home_packages "https://github.com/frankoslaw/dotfiles-nix/tree/main/modules/home/packages"
click node_home_suites "https://github.com/frankoslaw/dotfiles-nix/tree/main/modules/home/suites"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_switch toneBlue
class node_local_host,node_hardware,node_recovery,node_user_home toneAmber
class node_desktop,node_security_network,node_system_services,node_system_tools toneMint
class node_home_packages,node_home_suites toneRose
class node_operator,node_remote_host,node_kube_config toneIndigo
```

## Components

### Deployment

- **NixOS rebuild**

### Machine Configurations

- [Homelab host](https://github.com/frankoslaw/dotfiles-nix/blob/main/systems/x86_64-linux/homelab-ms7970/default.nix): `systems/x86_64-linux/homelab-ms7970/default.nix`
- [Hardware config](https://github.com/frankoslaw/dotfiles-nix/blob/main/systems/x86_64-linux/homelab-ms7970/hardware-configuration.nix): `systems/x86_64-linux/homelab-ms7970/hardware-configuration.nix`
- [Recovery ISO](https://github.com/frankoslaw/dotfiles-nix/blob/main/systems/x86_64-install-iso/homelab-recovery/default.nix): `systems/x86_64-install-iso/homelab-recovery/default.nix`
- [User home](https://github.com/frankoslaw/dotfiles-nix/blob/main/homes/x86_64-linux/frankoslaw%40homelab-ms7970/default.nix): `homes/x86_64-linux/frankoslaw@homelab-ms7970/default.nix`

### NixOS Features

- [Desktop and devices](https://github.com/frankoslaw/dotfiles-nix/blob/main/modules/nixos/display/default.nix): `modules/nixos/display/default.nix`
- [Security and network](https://github.com/frankoslaw/dotfiles-nix/blob/main/modules/nixos/security/default.nix): `modules/nixos/security/default.nix`
- [System services](https://github.com/frankoslaw/dotfiles-nix/blob/main/modules/nixos/audio/default.nix): `modules/nixos/audio/default.nix`
- [System tools](https://github.com/frankoslaw/dotfiles-nix/blob/main/modules/nixos/nix/default.nix): `modules/nixos/nix/default.nix`

### Home Environment

- [User packages](https://github.com/frankoslaw/dotfiles-nix/tree/main/modules/home/packages): `modules/home/packages`
- [User suites](https://github.com/frankoslaw/dotfiles-nix/tree/main/modules/home/suites): `modules/home/suites`

### Other components

- **System operator**
- **Remote host**
- **Kubernetes config**

## Connections

- System operator → NixOS rebuild: runs
- System operator → Remote host: deploys to
- Remote host → Kubernetes config: provides
