# 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