# mrovaiz/nixos-config architecture

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

- Interactive diagram: https://gitdiagram.com/mrovaiz/nixos-config
- Repository: https://github.com/mrovaiz/nixos-config

## Overview

This is a personal, flake-based NixOS configuration for multiple hosts, with Home Manager integration and desktop, application, service, and development customizations. The documented workflow is to select a host configuration and install or switch to it. The graph shows documented host and configuration areas; source excerpts were unavailable, so it does not assert how individual modules are imported or wired.

Main entry points: [`flake.nix`](https://github.com/mrovaiz/nixos-config/blob/main/flake.nix) (Flake configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_hosts["Host configurations"]
  node_nixair["nixair host<br/>[configuration.nix]"]
  node_nixbin["nixbin host<br/>[configuration.nix]"]
  node_nixserve["nixserve host<br/>[configuration.nix]"]
  node_nixwork["nixwork host<br/>[configuration.nix]"]
end

subgraph group_system["NixOS modules"]
  node_nixosmods["System modules"]
  node_desktop["Desktop environments"]
  node_systemapps["System apps"]
  node_services["System services"]
  node_networking["Networking"]
  node_hardware["Hardware support"]
  node_development["Development tools"]
end

subgraph group_home["Home Manager"]
  node_homeconfigs["User profiles"]
  node_homemods["Home modules"]
  node_homedesktop["Desktop setup"]
  node_homeapps["User apps"]
  node_homeservices["User services"]
end

subgraph group_extensions["Packages and secrets"]
  node_overlays["Package overlays"]
  node_packages["Custom packages<br/>[default.nix]"]
  node_secrets["Secrets"]
end

node_operator(("Operator"))
node_nix["Nix CLI"]
node_flake["Flake configuration<br/>[flake.nix]"]

node_operator -->|"runs install or switch"| node_nix
node_nix -->|"selects configuration"| node_flake

click node_flake "https://github.com/mrovaiz/nixos-config/blob/main/flake.nix"
click node_nixair "https://github.com/mrovaiz/nixos-config/blob/main/nixos/nixair/configuration.nix"
click node_nixbin "https://github.com/mrovaiz/nixos-config/blob/main/nixos/nixbin/configuration.nix"
click node_nixserve "https://github.com/mrovaiz/nixos-config/blob/main/nixos/nixserve/configuration.nix"
click node_nixwork "https://github.com/mrovaiz/nixos-config/blob/main/nixos/nixwork/configuration.nix"
click node_nixosmods "https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos"
click node_desktop "https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/desktop"
click node_systemapps "https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/apps"
click node_services "https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/service"
click node_networking "https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/networking"
click node_hardware "https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/hardware"
click node_homeconfigs "https://github.com/mrovaiz/nixos-config/tree/main/home-manager"
click node_homemods "https://github.com/mrovaiz/nixos-config/tree/main/modules/home-manager"
click node_homedesktop "https://github.com/mrovaiz/nixos-config/tree/main/modules/home-manager/desktop"
click node_homeapps "https://github.com/mrovaiz/nixos-config/tree/main/modules/home-manager/apps"
click node_homeservices "https://github.com/mrovaiz/nixos-config/tree/main/modules/home-manager/services"
click node_development "https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/development"
click node_overlays "https://github.com/mrovaiz/nixos-config/tree/main/overlays"
click node_packages "https://github.com/mrovaiz/nixos-config/blob/main/pkgs/default.nix"
click node_secrets "https://github.com/mrovaiz/nixos-config/tree/main/secrets"

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_nixair,node_nixbin,node_nixserve,node_nixwork toneBlue
class node_nixosmods,node_desktop,node_systemapps,node_services,node_networking,node_hardware,node_development toneAmber
class node_homeconfigs,node_homemods,node_homedesktop,node_homeapps,node_homeservices toneMint
class node_overlays,node_packages,node_secrets toneRose
class node_operator,node_nix toneIndigo
class node_flake toneTeal
```

## Components

### Host configurations

- [nixair host](https://github.com/mrovaiz/nixos-config/blob/main/nixos/nixair/configuration.nix): `nixos/nixair/configuration.nix`
- [nixbin host](https://github.com/mrovaiz/nixos-config/blob/main/nixos/nixbin/configuration.nix): `nixos/nixbin/configuration.nix`
- [nixserve host](https://github.com/mrovaiz/nixos-config/blob/main/nixos/nixserve/configuration.nix): `nixos/nixserve/configuration.nix`
- [nixwork host](https://github.com/mrovaiz/nixos-config/blob/main/nixos/nixwork/configuration.nix): `nixos/nixwork/configuration.nix`

### NixOS modules

- [System modules](https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos): `modules/nixos`
- [Desktop environments](https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/desktop): `modules/nixos/desktop`
- [System apps](https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/apps): `modules/nixos/apps`
- [System services](https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/service): `modules/nixos/service`
- [Networking](https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/networking): `modules/nixos/networking`
- [Hardware support](https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/hardware): `modules/nixos/hardware`
- [Development tools](https://github.com/mrovaiz/nixos-config/tree/main/modules/nixos/development): `modules/nixos/development`

### Home Manager

- [User profiles](https://github.com/mrovaiz/nixos-config/tree/main/home-manager): `home-manager`
- [Home modules](https://github.com/mrovaiz/nixos-config/tree/main/modules/home-manager): `modules/home-manager`
- [Desktop setup](https://github.com/mrovaiz/nixos-config/tree/main/modules/home-manager/desktop): `modules/home-manager/desktop`
- [User apps](https://github.com/mrovaiz/nixos-config/tree/main/modules/home-manager/apps): `modules/home-manager/apps`
- [User services](https://github.com/mrovaiz/nixos-config/tree/main/modules/home-manager/services): `modules/home-manager/services`

### Packages and secrets

- [Package overlays](https://github.com/mrovaiz/nixos-config/tree/main/overlays): `overlays`
- [Custom packages](https://github.com/mrovaiz/nixos-config/blob/main/pkgs/default.nix): `pkgs/default.nix`
- [Secrets](https://github.com/mrovaiz/nixos-config/tree/main/secrets): `secrets`

### Other components

- **Operator**
- **Nix CLI**
- [Flake configuration](https://github.com/mrovaiz/nixos-config/blob/main/flake.nix): `flake.nix`

## Connections

- Operator → Nix CLI: runs install or switch
- Nix CLI → Flake configuration: selects configuration
