# techhuttv/homelab architecture

> Architecture diagram of the GitHub repository techhuttv/homelab, 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/techhuttv/homelab
- Repository: https://github.com/techhuttv/homelab

## Overview

This repository documents a two-server homelab rather than implementing a single application. Its main user-facing domains are media, cloud, smart-home, and surveillance services, supported by networking, proxying, storage, and monitoring. The README identifies broad roles and capabilities, but no source excerpts were provided; links between individual services are therefore limited to relationships stated in the README.

Main entry points: [`monitoring/compose.yaml`](https://github.com/techhuttv/homelab/blob/main/monitoring/compose.yaml) (Monitoring stack), [`media/README.md`](https://github.com/techhuttv/homelab/blob/main/media/README.md) (Media services), [`cloud/README.md`](https://github.com/techhuttv/homelab/blob/main/cloud/README.md) (Cloud services), [`proxy/README.md`](https://github.com/techhuttv/homelab/blob/main/proxy/README.md) (NGINX Proxy Manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_compute["Compute and networking"]
  node_unraid["Unraid NAS"]
  node_proxmox["Proxmox node"]
  node_ubiquiti["Ubiquiti network"]
end

subgraph group_media_cloud["Media and cloud"]
  node_media["Media services<br/>[README.md]"]
  node_plex["Plex<br/>[README.md]"]
  node_jellyfin["Jellyfin<br/>[README.md]"]
  node_servarr["Servarr stack<br/>[compose.yaml]"]
  node_cloud["Cloud services<br/>[README.md]"]
  node_immich["Immich<br/>[README.md]"]
end

subgraph group_home["Home and surveillance"]
  node_ha["Home Assistant<br/>[README.md]"]
  node_localtuya["LocalTuya<br/>[README.md]"]
  node_zigbee["Zigbee<br/>[README.md]"]
  node_frigate["Frigate NVR<br/>[config.yml]"]
end

subgraph group_ops["Access and operations"]
  node_proxy["NGINX Proxy Manager<br/>[README.md]"]
  node_netbird["NetBird<br/>[README.md]"]
  node_monitoring["Monitoring stack<br/>[compose.yaml]"]
  node_grafana["Grafana<br/>[datasource.yml]"]
  node_storage[("Storage and backups<br/>[README.md]")]
  node_protect["UniFi Protect"]
end

node_user(("Homelab users"))
node_cameras(("Security cameras"))

node_unraid -->|"hosts media"| node_media
node_unraid -->|"hosts Nextcloud VM"| node_cloud
node_proxmox -->|"hosts services"| node_monitoring
node_proxmox -->|"hosts services"| node_proxy
node_user -->|"uses"| node_media
node_user -->|"uses"| node_cloud
node_user -->|"uses"| node_ha
node_user -->|"uses"| node_proxy
node_ubiquiti -->|"provides NVR"| node_protect
node_cameras -->|"connect to"| node_protect
node_cameras -->|"serve video"| node_frigate
node_monitoring -->|"visualizes"| node_grafana

click node_media "https://github.com/techhuttv/homelab/blob/main/media/README.md"
click node_plex "https://github.com/techhuttv/homelab/blob/main/media/plex/README.md"
click node_jellyfin "https://github.com/techhuttv/homelab/blob/main/media/jellyfin/README.md"
click node_servarr "https://github.com/techhuttv/homelab/blob/main/media/compose.yaml"
click node_cloud "https://github.com/techhuttv/homelab/blob/main/cloud/README.md"
click node_immich "https://github.com/techhuttv/homelab/blob/main/cloud/immich/README.md"
click node_ha "https://github.com/techhuttv/homelab/blob/main/homeassistant/README.md"
click node_localtuya "https://github.com/techhuttv/homelab/blob/main/homeassistant/localtuya/README.md"
click node_zigbee "https://github.com/techhuttv/homelab/blob/main/homeassistant/zigbee/README.md"
click node_frigate "https://github.com/techhuttv/homelab/blob/main/surveillance/frigate/config.yml"
click node_proxy "https://github.com/techhuttv/homelab/blob/main/proxy/README.md"
click node_netbird "https://github.com/techhuttv/homelab/blob/main/netbird/README.md"
click node_monitoring "https://github.com/techhuttv/homelab/blob/main/monitoring/compose.yaml"
click node_grafana "https://github.com/techhuttv/homelab/blob/main/monitoring/grafana/datasource.yml"
click node_storage "https://github.com/techhuttv/homelab/blob/main/storage/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_unraid,node_proxmox,node_ubiquiti,node_user toneBlue
class node_media,node_plex,node_jellyfin,node_servarr,node_cloud,node_immich toneAmber
class node_ha,node_localtuya,node_zigbee,node_frigate toneMint
class node_proxy,node_netbird,node_monitoring,node_grafana,node_storage,node_protect toneRose
class node_cameras toneIndigo
```

## Components

### Compute and networking

- **Unraid NAS**
- **Proxmox node**
- **Ubiquiti network**

### Media and cloud

- [Media services](https://github.com/techhuttv/homelab/blob/main/media/README.md): `media/README.md`
- [Plex](https://github.com/techhuttv/homelab/blob/main/media/plex/README.md): `media/plex/README.md`
- [Jellyfin](https://github.com/techhuttv/homelab/blob/main/media/jellyfin/README.md): `media/jellyfin/README.md`
- [Servarr stack](https://github.com/techhuttv/homelab/blob/main/media/compose.yaml): `media/compose.yaml`
- [Cloud services](https://github.com/techhuttv/homelab/blob/main/cloud/README.md): `cloud/README.md`
- [Immich](https://github.com/techhuttv/homelab/blob/main/cloud/immich/README.md): `cloud/immich/README.md`

### Home and surveillance

- [Home Assistant](https://github.com/techhuttv/homelab/blob/main/homeassistant/README.md): `homeassistant/README.md`
- [LocalTuya](https://github.com/techhuttv/homelab/blob/main/homeassistant/localtuya/README.md): `homeassistant/localtuya/README.md`
- [Zigbee](https://github.com/techhuttv/homelab/blob/main/homeassistant/zigbee/README.md): `homeassistant/zigbee/README.md`
- [Frigate NVR](https://github.com/techhuttv/homelab/blob/main/surveillance/frigate/config.yml): `surveillance/frigate/config.yml`

### Access and operations

- [NGINX Proxy Manager](https://github.com/techhuttv/homelab/blob/main/proxy/README.md): `proxy/README.md`
- [NetBird](https://github.com/techhuttv/homelab/blob/main/netbird/README.md): `netbird/README.md`
- [Monitoring stack](https://github.com/techhuttv/homelab/blob/main/monitoring/compose.yaml): `monitoring/compose.yaml`
- [Grafana](https://github.com/techhuttv/homelab/blob/main/monitoring/grafana/datasource.yml): `monitoring/grafana/datasource.yml`
- [Storage and backups](https://github.com/techhuttv/homelab/blob/main/storage/README.md): `storage/README.md`
- **UniFi Protect**

### Other components

- **Homelab users**
- **Security cameras**

## Connections

- Unraid NAS → Media services: hosts media
- Unraid NAS → Cloud services: hosts Nextcloud VM
- Proxmox node → Monitoring stack: hosts services
- Proxmox node → NGINX Proxy Manager: hosts services
- Homelab users → Media services: uses
- Homelab users → Cloud services: uses
- Homelab users → Home Assistant: uses
- Homelab users → NGINX Proxy Manager: uses
- Ubiquiti network → UniFi Protect: provides NVR
- Security cameras → UniFi Protect: connect to
- Security cameras → Frigate NVR: serve video
- Monitoring stack → Grafana: visualizes
