# 0rbitalturnip/d2labs-home-network architecture

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

- Interactive diagram: https://gitdiagram.com/0rbitalturnip/d2labs-home-network
- Repository: https://github.com/0rbitalturnip/d2labs-home-network

## Overview

d2lab is a homelab network architecture and operations repository, not a network-management application. Its central workflow is for an operator to consult the topology and plans, configure infrastructure using Ansible or device-specific examples, then operate and troubleshoot services with runbooks. The README documents the major network, DNS, Tailscale, VPN-torrent, and test-network capabilities. Implementation excerpts are limited, so the graph shows documented relationships and the evident Ansible playbook-to-role structure rather than inferring service-level wiring.

Main entry points: [`ansible/site.yml`](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/site.yml) (Ansible site), [`diagrams/d2lab-network.drawio`](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/diagrams/d2lab-network.drawio) (Master topology), [`docs/01-ip-plan.md`](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/01-ip-plan.md) (VLAN and IP plan), [`docs/02-cabling.md`](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/02-cabling.md) (Cabling and ports)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_design["Network design"]
  node_topology["Master topology"]
  node_ipplan["VLAN and IP plan<br/>[01-ip-plan.md]"]
  node_cabling["Cabling and ports<br/>[02-cabling.md]"]
  node_hosts["Hosts and roles<br/>[03-hosts.md]"]
end

subgraph group_automation["Configuration automation"]
  node_ansible["Ansible site<br/>[site.yml]"]
  node_inventory["Ansible inventory<br/>[inventory.yml]"]
  node_common["Common role<br/>[main.yml]"]
  node_opnsense["OPNsense role<br/>[main.yml]"]
  node_proxmox["Proxmox role<br/>[main.yml]"]
end

subgraph group_services["Network services"]
  node_tailscale["Tailscale tailnet<br/>[04-tailscale.md]"]
  node_vpn["VPN torrent path<br/>[05-vpn-torrent.md]"]
  node_dns["DNS and d2.lol<br/>[06-dns.md]"]
  node_testvlan["Test VLAN sandbox<br/>[07-test-vlan.md]"]
end

subgraph group_operations["Operations"]
  node_configs["Sample configurations"]
  node_runbooks["Operational runbooks"]
  node_quickstart["Quickstart<br/>[quickstart.md]"]
end

node_operator(("Homelab operator"))

node_operator -->|"consults"| node_topology
node_operator -->|"plans addressing"| node_ipplan
node_operator -->|"plans wiring"| node_cabling
node_operator -->|"reviews systems"| node_hosts
node_operator -->|"follows"| node_quickstart
node_operator -->|"runs"| node_ansible
node_ansible -->|"uses inventory"| node_inventory
node_ansible -->|"applies role"| node_common
node_ansible -->|"applies role"| node_opnsense
node_ansible -->|"applies role"| node_proxmox
node_operator -->|"consults examples"| node_configs
node_operator -->|"follows procedures"| node_runbooks
node_operator -->|"configures overlay"| node_tailscale
node_operator -->|"configures egress"| node_vpn
node_operator -->|"configures naming"| node_dns
node_operator -->|"uses sandbox"| node_testvlan

click node_topology "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/diagrams/d2lab-network.drawio"
click node_ipplan "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/01-ip-plan.md"
click node_cabling "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/02-cabling.md"
click node_hosts "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/03-hosts.md"
click node_ansible "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/site.yml"
click node_inventory "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/inventory.yml"
click node_common "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/roles/common/tasks/main.yml"
click node_opnsense "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/roles/opnsense/tasks/main.yml"
click node_proxmox "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/roles/proxmox/tasks/main.yml"
click node_tailscale "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/04-tailscale.md"
click node_vpn "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/05-vpn-torrent.md"
click node_dns "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/06-dns.md"
click node_testvlan "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/07-test-vlan.md"
click node_configs "https://github.com/0rbitalturnip/d2labs-home-network/tree/homenetwork/docs/configs"
click node_runbooks "https://github.com/0rbitalturnip/d2labs-home-network/tree/homenetwork/docs/runbooks"
click node_quickstart "https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/quickstart.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_topology,node_ipplan,node_cabling,node_hosts toneBlue
class node_ansible,node_inventory,node_common,node_opnsense,node_proxmox toneAmber
class node_tailscale,node_vpn,node_dns,node_testvlan toneMint
class node_configs,node_runbooks,node_quickstart toneRose
class node_operator toneIndigo
```

## Components

### Network design

- [Master topology](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/diagrams/d2lab-network.drawio): `diagrams/d2lab-network.drawio`
- [VLAN and IP plan](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/01-ip-plan.md): `docs/01-ip-plan.md`
- [Cabling and ports](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/02-cabling.md): `docs/02-cabling.md`
- [Hosts and roles](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/03-hosts.md): `docs/03-hosts.md`

### Configuration automation

- [Ansible site](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/site.yml): `ansible/site.yml`
- [Ansible inventory](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/inventory.yml): `ansible/inventory.yml`
- [Common role](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/roles/common/tasks/main.yml): `ansible/roles/common/tasks/main.yml`
- [OPNsense role](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/roles/opnsense/tasks/main.yml): `ansible/roles/opnsense/tasks/main.yml`
- [Proxmox role](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/ansible/roles/proxmox/tasks/main.yml): `ansible/roles/proxmox/tasks/main.yml`

### Network services

- [Tailscale tailnet](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/04-tailscale.md): `docs/04-tailscale.md`
- [VPN torrent path](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/05-vpn-torrent.md): `docs/05-vpn-torrent.md`
- [DNS and d2.lol](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/06-dns.md): `docs/06-dns.md`
- [Test VLAN sandbox](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/07-test-vlan.md): `docs/07-test-vlan.md`

### Operations

- [Sample configurations](https://github.com/0rbitalturnip/d2labs-home-network/tree/homenetwork/docs/configs): `docs/configs`
- [Operational runbooks](https://github.com/0rbitalturnip/d2labs-home-network/tree/homenetwork/docs/runbooks): `docs/runbooks`
- [Quickstart](https://github.com/0rbitalturnip/d2labs-home-network/blob/homenetwork/docs/quickstart.md): `docs/quickstart.md`

### Other components

- **Homelab operator**

## Connections

- Homelab operator → Master topology: consults
- Homelab operator → VLAN and IP plan: plans addressing
- Homelab operator → Cabling and ports: plans wiring
- Homelab operator → Hosts and roles: reviews systems
- Homelab operator → Quickstart: follows
- Homelab operator → Ansible site: runs
- Ansible site → Ansible inventory: uses inventory
- Ansible site → Common role: applies role
- Ansible site → OPNsense role: applies role
- Ansible site → Proxmox role: applies role
- Homelab operator → Sample configurations: consults examples
- Homelab operator → Operational runbooks: follows procedures
- Homelab operator → Tailscale tailnet: configures overlay
- Homelab operator → VPN torrent path: configures egress
- Homelab operator → DNS and d2.lol: configures naming
- Homelab operator → Test VLAN sandbox: uses sandbox
