# Homelab Documentation Plan
## Overview
This document outlines the recommended approach for documenting homelab nodes and creating network diagrams for infrastructure management.
## Recommended Tools
### 1. Scanopy
- **Purpose**: Network documentation that automatically scans and updates infrastructure
- **Features**:
* Automatic network discovery without per-device agents
* Four views: L2 (Physical), L3 (Logical), Workloads, Application dependencies
* 230+ service definitions
* Docker & SNMP integration
* Scheduled rescans
* Multi-user + RBAC support
* Export as SVG, Mermaid, or Confluence
* Self-hosted (AGPL-3.0) or Commercial license available
- **URL**: https://github.com/scanopy/scanopy
### 2. Dashy
- **Purpose**: Personal dashboard for organizing self-hosted services
- **Features**:
* Real-time status monitoring for services
* Multiple pages support
* Widgets for dynamic content
* Theming with custom CSS
* Authentication support
* Icon packs (Font-Awesome, favicon auto-fetching, emoji, etc.)
* Search functionality
* Supports Docker and bare-metal deployment
- **URL**: https://github.com/Lissy93/dashy
## Implementation Scripts
### Scanopy Setup Script
- **File**: `setup-scanopy.sh`
- **Purpose**: Automate setting up Scanopy with default configuration for homelab network discovery
- **Usage**: `./setup-scanopy.sh`
### Dashy Setup Script
- **File**: `setup-dashy.sh`
- **Purpose**: Automate setting up Dashy dashboard for homelab services
- **Usage**: `./setup-dashy.sh`
### Node Documentation Template
- **File**: `node-template.md`
- **Purpose**: Template for documenting individual nodes in the homelab with consistent structure
### Mermaid Diagram Generator
- **File**: `generate-mermaid.py`
- **Purpose**: Generate mermaid diagrams from node data
- **Usage**: `python3 generate-mermaid.py nodes-data.json output.mmd`
## Network Diagram
### Sample Homelab Topology
The following diagram shows typical homelab node interactions:
```mermaid
graph TD
%% Network Infrastructure
subgraph "Homelab Network"
Router[Router
192.168.1.1]
Firewall[Firewall
192.168.1.254]
NAS[NAS
192.168.1.10]
MediaServer[Media Server
192.168.1.20]
HomeHub[Home Automation Hub
192.168.1.30]
%% Client Devices
Laptop[Laptop
192.168.1.100]
Phone[Phone
192.168.1.101]
Tablet[Tablet
192.168.1.102]
Desktop[Desktop
192.168.1.103]
SmartTV[Smart TV
192.168.1.104]
IoTDevice[IoT Device
192.168.1.150]
%% Connections
Router -->|Internal| Firewall
Firewall -->|Internal| NAS
Firewall -->|Internal| MediaServer
Firewall -->|Internal| HomeHub
Firewall -->|External| Internet[Internet]
NAS -->|Storage| MediaServer
NAS -->|Storage| HomeHub
MediaServer -->|Streaming| SmartTV
MediaServer -->|Network| Laptop
MediaServer -->|Network| Desktop
HomeHub -->|Control| IoTDevice
HomeHub -->|Control| Laptop
HomeHub -->|Control| Phone
HomeHub -->|Control| Tablet
Laptop -->|Network| Firewall
Phone -->|Network| Firewall
Tablet -->|Network| Firewall
Desktop -->|Network| Firewall
SmartTV -->|Network| Firewall
IoTDevice -->|Network| Firewall
end
```
## Implementation Strategy
1. **Use Scanopy** to automatically document network infrastructure and update it regularly
2. **Use Dashy** as the main dashboard to organize and access all services
3. **Create node summary documents** for each component with details including:
- IP addresses
- Services running
- Roles in the network
- Maintenance requirements
This approach will provide both automated infrastructure documentation and a user-friendly dashboard for accessing your homelab services.