107 lines
4.5 KiB
Markdown
107 lines
4.5 KiB
Markdown
# Homelab
|
|
|
|
If you are viewing on GitHub, you can view this repo on my self-hosted instance of Gitea <a href="https://gitea.dontddos.me/dontddos/homelab">here</a>.
|
|
|
|
## 📋 Table of Contents
|
|
|
|
- [Hardware](#-hardware)
|
|
- [Services, Applications & Deployments](#-services-applications--deployments)
|
|
- [Network Architecture](#-network-architecture)
|
|
- [Links](#-links)
|
|
|
|
## 🖥️ Hardware
|
|
|
|
| Component | Model / Specs | Role |
|
|
| ------------- | ----------------------------------------------------------------- | ------------------------ |
|
|
| Firewall | pfsense on pve-01 | Edge firewall, DHCP |
|
|
| Switch | Arista DCS-7010T | Core / L3 switch |
|
|
| PVE-01 | HPE ProLiant DL360 Gen 9<br>2x Intel Xeon E5-2673 v3<br>128GB RAM | Virtualisation server |
|
|
| K3s-CP-01 | Raspberry Pi 5<br>ARM Cortex-A76<br>8GB RAM | Kubernetes control plane |
|
|
| K3s-CP-02 | Raspberry Pi 5<br>ARM Cortex-A76<br>8GB RAM | Kubernetes control plane |
|
|
| K3s-CP-03 | Raspberry Pi 5<br>ARM Cortex-A76<br>8GB RAM | Kubernetes control plane |
|
|
| K3s-Worker-01 | HP EliteDesk G4 705<br>AMD Ryzen 5 PRO 2400GE<br>48GB RAM | Kubernetes worker |
|
|
| K3s-Worker-02 | HP EliteDesk G4 800<br>Intel i5 8600<br>16GB RAM | Kubernetes worker |
|
|
| K3s-Worker-03 | HP EliteDesk G4 800<br>Intel i5 8600<br>16GB RAM | Kubernetes worker |
|
|
| TrueNAS | AMD FX-6100<br>24GB RAM<br>8TB Storage | Storage |
|
|
|
|
## 🚀 Services, Applications & Deployments
|
|
### Infrastructure
|
|
- [**Proxmox VE**](docs/infrastructure/proxmox-ve.md) - Type 1 hypervisor
|
|
- [**Portainer**](kubernetes/portainer/portainer) - Kubernetes & Docker management GUI
|
|
- [**Kubernetes**](docs/infrastructure/kubernetes.md) - Container orchestration
|
|
- **Docker** - Containerisation
|
|
|
|
### Networking
|
|
- **pfSense** - Edge firewall, DHCP
|
|
- [**AdGuard Home**](docker/docker-01/adguard-home/) - DNS
|
|
- **Pangolin** - Proxy for external HTTP traffic
|
|
- [**Traefik**](kubernetes/traefik/traefik) - Proxy for internal HTTP trafic to kubernetes
|
|
- [**Nginx**](docker/multi-host/proxy/) - Proxy for internal HTTP traffic
|
|
- **Tailscale** - Remote access via VPN
|
|
### Monitoring
|
|
- [**Grafana**](kubernetes/monitoring/grafana/)
|
|
- [**Prometheus**](kubernetes/monitoring/prometheus/)
|
|
### Security
|
|
- **Vaultwarden** - Password manager
|
|
- Authentik - SSO and OIDC
|
|
- **CrowdSec** - Intrusion prevention
|
|
- **Wazuh** - Security monitoring and SIEM
|
|
- [**Cert Manager**](kubernetes/cert-manager/cert-manager/) - Automated SSL/TLS certificate management
|
|
|
|
### Git & CI/CD
|
|
- **Gitea** - Self-hosted Git service
|
|
- **ArgoCD** - Continuous delivery tool for Kubernetes deployments
|
|
|
|
### Storage
|
|
- [**Longhorn**](/kubernetes/longhorn-system/longhorn/) - Distributed block storage system for Kubernetes persistent volumes
|
|
- **TrueNAS** - NAS solution
|
|
|
|
### Media Stack
|
|
- **Jellyfin** - Streaming
|
|
- **Jellyseer** - Requests
|
|
- **Radarr** - Movie index manager
|
|
- **Sonarr** - Show index manager
|
|
- **Prowlarr** - Torrent manager
|
|
- **qBittorrent** - 😉
|
|
|
|
### Communication
|
|
- **Mailcow** - mail
|
|
- **Synapse** - Self-hosted, decentralised communication
|
|
|
|
### Games
|
|
- **Pelican** - Game panel
|
|
- **Wings** - Game servers
|
|
|
|
## 🌐 Network Architecture
|
|
**Network Topology:**
|
|
```
|
|
Internet
|
|
↓
|
|
pfSense (10.77.0.1) - Edge Firewall/Router
|
|
↓
|
|
Arista DCS-7010T - Core L3 Switch
|
|
↓
|
|
├─ VLAN 1 (10.77.0.0/16) - Default/LAN
|
|
├─ VLAN 10 (10.20.10.0/24) - Management
|
|
├─ VLAN 20 (10.20.20.0/24) - DMZ (Public Services)
|
|
├─ VLAN 30 (10.20.30.0/24) - Games/Wings
|
|
└─ VLAN 40 (10.20.40.0/24) - Kubernetes Cluster
|
|
```
|
|
**Key Features:**
|
|
- Segmented VLANs for security and organisation
|
|
- Arista DCS-7010T providing L3 switching
|
|
- pfSense handling firewall rules and DHCP
|
|
- AdGuard Home for DNS filtering across all VLANs
|
|
**Security Measures:**
|
|
- DMZ isolation for internet-facing services
|
|
- Kubernetes workloads on isolated VLAN
|
|
- Firewall rules controlling inter-VLAN traffic
|
|
- CrowdSec IPS monitoring all traffic incoming traffic
|
|
- Wazuh SIEM for security event analysis
|
|
|
|
**Detailed network documentation:** [docs/networking.md](docs/networking.md)
|
|
|
|
## 🔗 Links
|
|
- **Personal Website:** https://dontddos.me
|
|
- **GitHub:** https://github.com/ddosian
|
|
- **Self-hosted Gitea:** https://gitea.dontddos.me |