# b4h4w/homelabs architecture

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

- Interactive diagram: https://gitdiagram.com/b4h4w/homelabs
- Repository: https://github.com/b4h4w/homelabs

## Overview

This repository documents a Virt-Manager homelab, not software runtime. Its central design separates a stable Windows domain network from disposable testing and cybersecurity environments. The README supports the main network, identity, DNS, firewall, and monitoring relationships; the other Markdown files indicate focused guides, but their contents were not provided, so no additional behavior is inferred from them.

Main entry points: [`Virt-Manager_Virtual_Networks.md`](https://github.com/b4h4w/homelabs/blob/main/Virt-Manager_Virtual_Networks.md) (Isolated domain network), [`README.md`](https://github.com/b4h4w/homelabs/blob/main/README.md) (Windows Server domain controller), [`OpenWRT_QEMU_virt-manager.md`](https://github.com/b4h4w/homelabs/blob/main/OpenWRT_QEMU_virt-manager.md) (OpenWRT experiments)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_virtualization["Virtualization and Networks"]
  node_virtmanager["Virt-Manager / QEMU-KVM<br/>[README.md]"]
  node_domainnet[("Isolated domain network")]
  node_natnet[("Libvirt NAT network")]
end

subgraph group_domain["Windows Domain"]
  node_firewall["OPNsense firewall<br/>[README.md]"]
  node_dc["Windows Server domain controller<br/>[README.md]"]
  node_domainclient["Windows 10 domain client<br/>[README.md]"]
  node_unbound["Unbound resolver<br/>[README.md]"]
  node_upstreamdns(("Cloudflare / Google DNS"))
end

subgraph group_security["Cybersecurity Lab"]
  node_cyberguests["Cybersecurity test guests<br/>[README.md]"]
  node_wazuhagents["Wazuh agents<br/>[README.md]"]
  node_wazuhserver["Wazuh SIEM/XDR<br/>[README.md]"]
  node_suricata["Suricata IDS/IPS<br/>[README.md]"]
  node_openwrt["OpenWRT experiments"]
end

subgraph group_testing["Other Test Systems"]
  node_generalguests["General test guests<br/>[README.md]"]
end

node_operator(("Homelab operator"))

node_operator -->|"uses"| node_virtmanager
node_virtmanager -->|"hosts"| node_domainnet
node_virtmanager -->|"hosts"| node_natnet
node_firewall -->|"mediates traffic"| node_domainnet
node_dc -->|"serves"| node_domainnet
node_domainclient -->|"joins"| node_domainnet
node_dc -->|"provides DHCP"| node_domainclient
node_dc -->|"forwards DNS"| node_firewall
node_firewall -->|"runs resolver"| node_unbound
node_unbound -->|"queries upstream"| node_upstreamdns
node_cyberguests -->|"uses"| node_natnet
node_wazuhagents -.->|"sends monitoring"| node_wazuhserver
node_wazuhserver -->|"monitors"| node_cyberguests
node_suricata -.->|"provides IDS/IPS"| node_cyberguests
node_openwrt -.->|"experiments on"| node_natnet
node_generalguests -->|"uses"| node_natnet

click node_virtmanager "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_domainnet "https://github.com/b4h4w/homelabs/blob/main/Virt-Manager_Virtual_Networks.md"
click node_natnet "https://github.com/b4h4w/homelabs/blob/main/Virt-Manager_Virtual_Networks.md"
click node_firewall "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_dc "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_domainclient "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_unbound "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_cyberguests "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_wazuhagents "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_wazuhserver "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_suricata "https://github.com/b4h4w/homelabs/blob/main/README.md"
click node_openwrt "https://github.com/b4h4w/homelabs/blob/main/OpenWRT_QEMU_virt-manager.md"
click node_generalguests "https://github.com/b4h4w/homelabs/blob/main/README.md"

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_virtmanager,node_domainnet,node_natnet toneBlue
class node_firewall,node_dc,node_domainclient,node_unbound,node_upstreamdns toneAmber
class node_cyberguests,node_wazuhagents,node_wazuhserver,node_suricata,node_openwrt toneMint
class node_generalguests toneRose
class node_operator toneIndigo
```

## Components

### Virtualization and Networks

- [Virt-Manager / QEMU-KVM](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- [Isolated domain network](https://github.com/b4h4w/homelabs/blob/main/Virt-Manager_Virtual_Networks.md): `Virt-Manager_Virtual_Networks.md`
- [Libvirt NAT network](https://github.com/b4h4w/homelabs/blob/main/Virt-Manager_Virtual_Networks.md): `Virt-Manager_Virtual_Networks.md`

### Windows Domain

- [OPNsense firewall](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- [Windows Server domain controller](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- [Windows 10 domain client](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- [Unbound resolver](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- **Cloudflare / Google DNS**

### Cybersecurity Lab

- [Cybersecurity test guests](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- [Wazuh agents](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- [Wazuh SIEM/XDR](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- [Suricata IDS/IPS](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`
- [OpenWRT experiments](https://github.com/b4h4w/homelabs/blob/main/OpenWRT_QEMU_virt-manager.md): `OpenWRT_QEMU_virt-manager.md`

### Other Test Systems

- [General test guests](https://github.com/b4h4w/homelabs/blob/main/README.md): `README.md`

### Other components

- **Homelab operator**

## Connections

- Homelab operator → Virt-Manager / QEMU-KVM: uses (evidence: `README.md`)
- Virt-Manager / QEMU-KVM → Isolated domain network: hosts (evidence: `README.md`)
- Virt-Manager / QEMU-KVM → Libvirt NAT network: hosts (evidence: `README.md`)
- OPNsense firewall → Isolated domain network: mediates traffic (evidence: `README.md`)
- Windows Server domain controller → Isolated domain network: serves (evidence: `README.md`)
- Windows 10 domain client → Isolated domain network: joins (evidence: `README.md`)
- Windows Server domain controller → Windows 10 domain client: provides DHCP (evidence: `README.md`)
- Windows Server domain controller → OPNsense firewall: forwards DNS (evidence: `README.md`)
- OPNsense firewall → Unbound resolver: runs resolver (evidence: `README.md`)
- Unbound resolver → Cloudflare / Google DNS: queries upstream (evidence: `README.md`)
- Cybersecurity test guests → Libvirt NAT network: uses (evidence: `README.md`)
- Wazuh agents → Wazuh SIEM/XDR: sends monitoring
- Wazuh SIEM/XDR → Cybersecurity test guests: monitors (evidence: `README.md`)
- Suricata IDS/IPS → Cybersecurity test guests: provides IDS/IPS
- OpenWRT experiments → Libvirt NAT network: experiments on
- General test guests → Libvirt NAT network: uses (evidence: `README.md`)
