mirror of
https://github.com/ced4568/ceds-homelab.git
synced 2026-08-13 04:04:01 +00:00
154 lines
3.7 KiB
Markdown
154 lines
3.7 KiB
Markdown
# Ced's HomeLab
|
||
|
||
Ced's HomeLab is my personal mini–datacenter: a segmented, cloud-connected environment built for learning, experimentation, and portfolio work. It includes:
|
||
|
||
- Proxmox virtualization
|
||
- TrueNAS ZFS storage
|
||
- A 12-node Raspberry Pi K3s cluster
|
||
- Nginx Proxy Manager + Cloudflare Tunnel
|
||
- Home Assistant + IoT integration
|
||
- Media stack (Arr suite + Jellyfin)
|
||
- Observability (Grafana, Prometheus, Uptime Kuma)
|
||
|
||
This repo is the **documentation and configuration hub** for the entire environment.
|
||
|
||
---
|
||
|
||
## 🌐 Network & VLANs
|
||
|
||
The lab runs behind a UniFi Dream Router (UDR) with VLAN segmentation:
|
||
|
||
| Network | Subnet | Purpose |
|
||
|--------------|----------------|---------------------------------|
|
||
| Main | 10.10.10.0/24 | Daily-use devices |
|
||
| MyHomeIOT | 10.10.20.0/24 | IoT devices, TVs, consoles |
|
||
| HomeLab | 10.10.30.0/24 | Servers, services, K3s, storage |
|
||
| Guest | 10.10.99.0/24 | Guest Wi-Fi |
|
||
|
||
The HomeLab VLAN (10.10.30.0/24) hosts all core infrastructure.
|
||
|
||
---
|
||
|
||
## 🧱 Core Components
|
||
|
||
### Proxmox VE
|
||
|
||
- Main hypervisor for VMs and LXCs
|
||
- Future expansion to a Proxmox cluster (+5 nodes)
|
||
- Uses TrueNAS for shared storage (NFS / iSCSI)
|
||
|
||
See: [`proxmox/`](proxmox/)
|
||
|
||
---
|
||
|
||
### TrueNAS (ZFS Storage)
|
||
|
||
- Manages ZFS pools and datasets
|
||
- NFS exports for Proxmox VM storage
|
||
- SMB / media dataset for Jellyfin & Arr stack
|
||
|
||
See: [`truenas/`](truenas/)
|
||
|
||
---
|
||
|
||
### K3s Raspberry Pi Cluster
|
||
|
||
A 12-node K3s cluster (Raspberry Pis) for running:
|
||
|
||
- Containerized apps
|
||
- Ingress-based routing
|
||
- GitOps and helm-based workloads (future)
|
||
|
||
K3s is part of the HomeLab but documented in detail in its own repo:
|
||
- https://github.com/ced4568/ced-k3s-homelab
|
||
|
||
This repo may reference that cluster and contain high-level config patterns.
|
||
|
||
---
|
||
|
||
### Reverse Proxy & Cloudflare Tunnel
|
||
|
||
- Nginx Proxy Manager (NPM) on the HomeLab VLAN
|
||
- Cloudflare Tunnel (no port forwarding)
|
||
- Wildcard DNS: `*.cedshomelab.com`
|
||
|
||
External access flow:
|
||
|
||
```text
|
||
Internet → Cloudflare Edge → Tunnel → NPM → Internal Services
|
||
```
|
||
|
||
Docs: [`docs/Add_New_Service_Guide.md`](docs/Add_New_Service_Guide.md)
|
||
|
||
---
|
||
|
||
### Home Automation
|
||
|
||
- Home Assistant (HA) in Proxmox
|
||
- IoT devices isolated on MyHomeIOT VLAN
|
||
- HA exposed via Cloudflare + NPM
|
||
- `trusted_proxies` configured for NPM
|
||
|
||
Config snippets: [`home-assistant/configuration-snippets/`](home-assistant/configuration-snippets/)
|
||
|
||
---
|
||
|
||
### Observability
|
||
|
||
- Prometheus scrapes metrics from:
|
||
- Proxmox
|
||
- K3s
|
||
- TrueNAS (future)
|
||
- Home Assistant / MQTT (future)
|
||
- Grafana dashboards, including a **Ced's NOC** view
|
||
- Uptime Kuma for service-level monitoring
|
||
|
||
Notes and dashboards: [`monitoring/`](monitoring/)
|
||
|
||
---
|
||
|
||
## 🧭 Documentation
|
||
|
||
- **How to add a new service via NPM + Cloudflare**
|
||
[`docs/Add_New_Service_Guide.md`](docs/Add_New_Service_Guide.md)
|
||
|
||
- **Architecture diagrams (Mermaid)**
|
||
[`docs/Ced_Homelab_Diagrams.md`](docs/Ced_Homelab_Diagrams.md)
|
||
|
||
- **Roadmap / future ideas**
|
||
[`docs/roadmap.md`](docs/roadmap.md)
|
||
|
||
---
|
||
|
||
## 🚀 Future Plans
|
||
|
||
- Full Proxmox cluster
|
||
- Cloudflare Zero Trust on critical services
|
||
- GitOps for K3s deployments (in ced-k3s-homelab)
|
||
- Internal container registry
|
||
- K3s-specific wildcard routing (`*.apps.cedshomelab.com`)
|
||
- More detailed monitoring + alerting
|
||
- Visual portfolio site on:
|
||
- `chasedumphord.com` or
|
||
- `cedshome.com`
|
||
|
||
---
|
||
|
||
## ⚠️ Secrets & Security
|
||
|
||
This repo **never** stores:
|
||
|
||
- API tokens
|
||
- Private keys
|
||
- Passwords
|
||
- Secret YAML files
|
||
|
||
Any real config with secrets should be kept locally only, or represented here as `*.example` files.
|
||
|
||
---
|
||
|
||
## ✨ Author
|
||
|
||
**Ced (Chase Dumphord)**
|
||
Cybersecurity / GRC / SOC • Full-Stack Dev • Homelab builder
|