# tbracquart/nixos-config architecture

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

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

## Overview

This repository is a personal NixOS configuration managed with Nix Flakes and Home Manager. The principal workflow is selecting a host configuration, composing shared system settings and reusable modules with host-specific choices, then rebuilding that host; Home Manager adds user environments. Other documented capabilities include laptop profiles, encrypted secrets, and an installation ISO. Relationships are based on the README only; no source excerpts were available, so implementation-level calls and the ISO-generation link are not asserted.

Main entry points: [`hosts/V145-15AST`](https://github.com/tbracquart/nixos-config/tree/main/hosts/V145-15AST) (V145-15AST), [`hosts/ZenBook-13`](https://github.com/tbracquart/nixos-config/tree/main/hosts/ZenBook-13) (ZenBook-13), [`flake.nix`](https://github.com/tbracquart/nixos-config/blob/main/flake.nix) (Flake entry), [`modules`](https://github.com/tbracquart/nixos-config/tree/main/modules) (Reusable features)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_composition["Configuration composition"]
  node_flake["Flake entry<br/>[flake.nix]"]
  node_personal["Personal values<br/>[config.nix]"]
  node_profile["Laptop profile<br/>[laptop.nix]"]
end

subgraph group_system["System configuration"]
  node_shared["Shared system"]
  node_commonusers["Common accounts"]
  node_modules["Reusable features"]
end

subgraph group_hosts["Machine configurations"]
  node_zenbook["ZenBook-13"]
  node_v145["V145-15AST"]
end

subgraph group_users["User and install"]
  node_thibaut["Thibaut environment"]
  node_quentin["Quentin environment"]
  node_secrets["Encrypted secrets<br/>[secrets.yaml]"]
  node_installer["Installer ISO"]
end

node_operator(("NixOS operator"))

node_operator -->|"selects host"| node_flake
node_flake -->|"builds host"| node_zenbook
node_flake -->|"builds host"| node_v145
node_zenbook -->|"composes imports"| node_shared
node_zenbook -->|"composes imports"| node_modules
node_zenbook -->|"activates profile"| node_profile
node_v145 -->|"composes imports"| node_shared
node_v145 -->|"composes imports"| node_modules
node_v145 -->|"activates profile"| node_profile
node_profile -->|"groups features"| node_modules
node_zenbook -->|"includes Home Manager"| node_thibaut
node_v145 -->|"includes Home Manager"| node_thibaut
node_v145 -->|"includes Home Manager"| node_quentin
node_flake -.->|"passes configuration"| node_personal
node_shared -->|"configures accounts"| node_commonusers
node_modules -.->|"manages secrets"| node_secrets

click node_flake "https://github.com/tbracquart/nixos-config/blob/main/flake.nix"
click node_personal "https://github.com/tbracquart/nixos-config/blob/main/config.nix"
click node_profile "https://github.com/tbracquart/nixos-config/blob/main/profiles/laptop.nix"
click node_shared "https://github.com/tbracquart/nixos-config/tree/main/common/system"
click node_commonusers "https://github.com/tbracquart/nixos-config/tree/main/common/users"
click node_modules "https://github.com/tbracquart/nixos-config/tree/main/modules"
click node_zenbook "https://github.com/tbracquart/nixos-config/tree/main/hosts/ZenBook-13"
click node_v145 "https://github.com/tbracquart/nixos-config/tree/main/hosts/V145-15AST"
click node_thibaut "https://github.com/tbracquart/nixos-config/tree/main/users/thibaut"
click node_quentin "https://github.com/tbracquart/nixos-config/tree/main/users/quentin"
click node_secrets "https://github.com/tbracquart/nixos-config/blob/main/secrets/secrets.yaml"
click node_installer "https://github.com/tbracquart/nixos-config/tree/main/installer"

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_flake,node_personal,node_profile toneBlue
class node_shared,node_commonusers,node_modules toneAmber
class node_zenbook,node_v145 toneMint
class node_thibaut,node_quentin,node_secrets,node_installer toneRose
class node_operator toneIndigo
```

## Components

### Configuration composition

- [Flake entry](https://github.com/tbracquart/nixos-config/blob/main/flake.nix): `flake.nix`
- [Personal values](https://github.com/tbracquart/nixos-config/blob/main/config.nix): `config.nix`
- [Laptop profile](https://github.com/tbracquart/nixos-config/blob/main/profiles/laptop.nix): `profiles/laptop.nix`

### System configuration

- [Shared system](https://github.com/tbracquart/nixos-config/tree/main/common/system): `common/system`
- [Common accounts](https://github.com/tbracquart/nixos-config/tree/main/common/users): `common/users`
- [Reusable features](https://github.com/tbracquart/nixos-config/tree/main/modules): `modules`

### Machine configurations

- [ZenBook-13](https://github.com/tbracquart/nixos-config/tree/main/hosts/ZenBook-13): `hosts/ZenBook-13`
- [V145-15AST](https://github.com/tbracquart/nixos-config/tree/main/hosts/V145-15AST): `hosts/V145-15AST`

### User and install

- [Thibaut environment](https://github.com/tbracquart/nixos-config/tree/main/users/thibaut): `users/thibaut`
- [Quentin environment](https://github.com/tbracquart/nixos-config/tree/main/users/quentin): `users/quentin`
- [Encrypted secrets](https://github.com/tbracquart/nixos-config/blob/main/secrets/secrets.yaml): `secrets/secrets.yaml`
- [Installer ISO](https://github.com/tbracquart/nixos-config/tree/main/installer): `installer`

### Other components

- **NixOS operator**

## Connections

- NixOS operator → Flake entry: selects host (evidence: `README.md`)
- Flake entry → ZenBook-13: builds host (evidence: `README.md`)
- Flake entry → V145-15AST: builds host (evidence: `README.md`)
- ZenBook-13 → Shared system: composes imports (evidence: `README.md`)
- ZenBook-13 → Reusable features: composes imports (evidence: `README.md`)
- ZenBook-13 → Laptop profile: activates profile (evidence: `README.md`)
- V145-15AST → Shared system: composes imports (evidence: `README.md`)
- V145-15AST → Reusable features: composes imports (evidence: `README.md`)
- V145-15AST → Laptop profile: activates profile (evidence: `README.md`)
- Laptop profile → Reusable features: groups features (evidence: `README.md`)
- ZenBook-13 → Thibaut environment: includes Home Manager (evidence: `README.md`)
- V145-15AST → Thibaut environment: includes Home Manager (evidence: `README.md`)
- V145-15AST → Quentin environment: includes Home Manager (evidence: `README.md`)
- Flake entry → Personal values: passes configuration
- Shared system → Common accounts: configures accounts (evidence: `README.md`)
- Reusable features → Encrypted secrets: manages secrets
