- Added Forgejo git server info - Quick access table - All credentials and URLs - Docker compose examples - Network overview 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
228 lines
9 KiB
Markdown
228 lines
9 KiB
Markdown
# RP5 Homelab Infrastructure
|
|
|
|
A comprehensive home automation and network management setup running on Raspberry Pi 5.
|
|
|
|
## Architecture Overview
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ INTERNET │
|
|
└─────────────────────────┬───────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────▼───────────────────────────────────────┐
|
|
│ hofmanns.ai (185.143.102.153) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Caddy │ │ WireGuard │ │ Forgejo │ │
|
|
│ │ (HTTPS) │ │ Easy │ │ (Git UI) │ │
|
|
│ │ :80/:443 │ │ :51820/udp │ │ :3030 │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
└─────────────────────────┬───────────────────────────────────────┘
|
|
│
|
|
┌─────────────────┼─────────────────┐
|
|
│ WireGuard VPN │ Tailscale │
|
|
│ │ │
|
|
┌───────▼─────────────────▼─────────────────▼─────────────────────┐
|
|
│ Router (192.168.1.1) │
|
|
└─────────────────────────┬───────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────▼───────────────────────────────────────┐
|
|
│ Raspberry Pi 5 (192.168.1.50) │
|
|
│ rp5.hofmanns.net │
|
|
│ │
|
|
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
│ │ Docker Services ││
|
|
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ││
|
|
│ │ │Home Assistant│ │ Portainer │ │ AdGuard Home│ ││
|
|
│ │ │ :8123 │ │ :9000/:9443 │ │ :3000/:53 │ ││
|
|
│ │ └──────────────┘ └──────────────┘ └──────────────┘ ││
|
|
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ││
|
|
│ │ │ Caddy │ │ Media Hub │ │ ttyd │ ││
|
|
│ │ │ :80/:443 │ │ :3001 │ │ :7681 │ ││
|
|
│ │ └──────────────┘ └──────────────┘ └──────────────┘ ││
|
|
│ └─────────────────────────────────────────────────────────────┘│
|
|
│ │
|
|
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
│ │ Tailscale Client ││
|
|
│ │ 100.64.0.1 (pike-crocodile.ts.net) ││
|
|
│ └─────────────────────────────────────────────────────────────┘│
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Quick Access
|
|
|
|
| Service | URL | Description |
|
|
|---------|-----|-------------|
|
|
| **Git** | https://git.hofmanns.tech | Source code & configs |
|
|
| **VPN Admin** | https://vpn.hofmanns.tech | WireGuard management |
|
|
| **Home Assistant** | http://192.168.1.50:8123 | Home automation |
|
|
| **Portainer** | http://192.168.1.50:9000 | Docker management |
|
|
| **AdGuard Home** | http://192.168.1.50:3000 | DNS & ad blocking |
|
|
| **Terminal** | http://192.168.1.50:7681 | Web SSH (ttyd) |
|
|
| **Router** | http://192.168.1.1 | Network config |
|
|
|
|
## Services
|
|
|
|
### Remote (hofmanns.ai - 185.143.102.153)
|
|
|
|
| Service | Port | URL |
|
|
|---------|------|-----|
|
|
| Caddy (HTTPS) | 80/443 | https://hofmanns.tech |
|
|
| WireGuard Easy | 51820/udp | VPN tunnel |
|
|
| WireGuard UI | 51821 | https://vpn.hofmanns.tech |
|
|
| Forgejo (Git) | 3030 | https://git.hofmanns.tech |
|
|
| Forgejo SSH | 2222 | git@git.hofmanns.tech:2222 |
|
|
|
|
### Local (RP5 - 192.168.1.50)
|
|
|
|
| Service | Port | Description |
|
|
|---------|------|-------------|
|
|
| Home Assistant | 8123 | Home automation platform |
|
|
| Portainer | 9000/9443 | Docker management UI |
|
|
| AdGuard Home | 3000/53 | DNS-based ad blocking |
|
|
| ttyd | 7681 | Web-based terminal |
|
|
| Caddy | 80/443 | Reverse proxy |
|
|
| Media Hub | 3001 | Media aggregator |
|
|
|
|
## VPN Access
|
|
|
|
### WireGuard (Primary)
|
|
|
|
```
|
|
Server: 185.143.102.153:51820/udp
|
|
Admin UI: https://vpn.hofmanns.tech
|
|
Password: HofmannVPN2024\!
|
|
DNS: 1.1.1.1, 8.8.8.8
|
|
```
|
|
|
|
**Add new client:**
|
|
1. Go to https://vpn.hofmanns.tech
|
|
2. Click "New Client"
|
|
3. Scan QR with WireGuard app
|
|
|
|
### Tailscale (Mesh)
|
|
|
|
```
|
|
Network: hofmanns.net (Headscale)
|
|
RP5: rp5.hofmanns.net (100.64.0.1)
|
|
```
|
|
|
|
## Home Assistant Dashboards
|
|
|
|
- **Home** (`/home`) - Main dashboard
|
|
- **Media Hub** (`/media`) - Streaming services
|
|
- **Bluetooth** (`/bluetooth`) - BT device control
|
|
- **System Admin** (`/admin`) - Terminal, Router, Portainer, AdGuard iframes
|
|
|
|
## Git Repository
|
|
|
|
```bash
|
|
# Clone via HTTPS
|
|
git clone https://git.hofmanns.tech/hofmann/rp5-homelab.git
|
|
|
|
# Clone via SSH
|
|
git clone ssh://git@git.hofmanns.tech:2222/hofmann/rp5-homelab.git
|
|
|
|
# Git credentials
|
|
Username: hofmann
|
|
Password: HofmannGit2024\!
|
|
```
|
|
|
|
## Docker Compose Files
|
|
|
|
### WireGuard Easy
|
|
|
|
```yaml
|
|
services:
|
|
wg-easy:
|
|
image: ghcr.io/wg-easy/wg-easy
|
|
container_name: wg-easy
|
|
environment:
|
|
- LANG=de
|
|
- WG_HOST=185.143.102.153
|
|
- PASSWORD_HASH=$2a$12$...
|
|
- WG_DEFAULT_DNS=1.1.1.1,8.8.8.8
|
|
- WG_PERSISTENT_KEEPALIVE=25
|
|
- UI_TRAFFIC_STATS=true
|
|
volumes:
|
|
- ./config:/etc/wireguard
|
|
ports:
|
|
- "51820:51820/udp"
|
|
- "51821:51821/tcp"
|
|
cap_add:
|
|
- NET_ADMIN
|
|
- SYS_MODULE
|
|
sysctls:
|
|
- net.ipv4.ip_forward=1
|
|
restart: unless-stopped
|
|
```
|
|
|
|
### Forgejo (Git)
|
|
|
|
```yaml
|
|
services:
|
|
gitea:
|
|
image: codeberg.org/forgejo/forgejo:7
|
|
container_name: gitea
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
- FORGEJO__server__ROOT_URL=https://git.hofmanns.tech/
|
|
- FORGEJO__server__HTTP_PORT=3030
|
|
volumes:
|
|
- ./data:/data
|
|
- /home/ubuntu/git:/data/git/repositories
|
|
ports:
|
|
- "3030:3030"
|
|
- "2222:22"
|
|
restart: unless-stopped
|
|
```
|
|
|
|
### Caddy (hofmanns.ai)
|
|
|
|
```caddyfile
|
|
hofmanns.tech {
|
|
reverse_proxy localhost:8080
|
|
}
|
|
|
|
vpn.hofmanns.tech {
|
|
reverse_proxy localhost:51821
|
|
}
|
|
|
|
git.hofmanns.tech {
|
|
reverse_proxy localhost:3030
|
|
}
|
|
```
|
|
|
|
## Quick Commands
|
|
|
|
```bash
|
|
# Docker
|
|
docker ps -a
|
|
docker restart homeassistant
|
|
docker logs -f homeassistant
|
|
|
|
# Tailscale
|
|
tailscale status
|
|
tailscale ping rp5
|
|
|
|
# SSH to hofmanns.ai
|
|
ssh -i ~/.ssh/hofmanns_ai_key ubuntu@hofmanns.ai
|
|
|
|
# WireGuard status
|
|
ssh ubuntu@hofmanns.ai "docker logs wg-easy"
|
|
```
|
|
|
|
## Network
|
|
|
|
| Device | LAN IP | Tailscale IP |
|
|
|--------|--------|--------------|
|
|
| Router | 192.168.1.1 | - |
|
|
| RP5 | 192.168.1.50 | 100.64.0.1 |
|
|
| hofmanns.ai | 185.143.102.153 | - |
|
|
|
|
**DNS**: AdGuard Home (192.168.1.50:53) / Tailscale MagicDNS (100.100.100.100)
|
|
|
|
---
|
|
|
|
**Created**: 2025-12-02 | **Author**: Claude Code
|