Compare commits
3 Commits
1a67a01928
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80debaf968 | ||
|
|
dc8cbf127c | ||
|
|
0f51041a04 |
@@ -7,7 +7,7 @@
|
||||
## HOSTS & HARDWARE
|
||||
|
||||
### VPS
|
||||
- **Primary:** 66.63.182.168 (vps.nianticbooks.com) | 2vCPU/4GB | Caddy, WireGuard, RustDesk relay
|
||||
- **Primary:** 51.222.12.162 (vps.nianticbooks.com) | 2vCPU/4GB | Caddy, WireGuard, RustDesk (ID+Relay)
|
||||
- **Gaming:** 51.222.12.162 (deadeyeg4ming.vip) | WireGuard VPN (10.0.9.1)
|
||||
|
||||
### Proxmox
|
||||
@@ -30,7 +30,7 @@
|
||||
| 10.0.10.20 | PostgreSQL | 102 | 5432 | Shared DB (n8n, rustdesk, grafana, authentik) |
|
||||
| 10.0.10.21 | Authentik | 121 | 9000 | SSO (admin: akadmin), OAuth2/OIDC |
|
||||
| 10.0.10.22 | n8n | 106 | 5678 | Workflow automation |
|
||||
| 10.0.10.23 | RustDesk | 123 | 21115-18 | ID server, pubkey: sfYuCTMHxrA22kukomb/RAKYyUgr8iaMfm/U4CFLfL0= |
|
||||
| 51.222.12.162 | RustDesk | VPS | 21116-17 | ID+Relay, pubkey: EPO75IeD+yJo5S5wtKePpyokHGXv9FN1w5Fx+Db5UCk= |
|
||||
| 10.0.10.25 | Prometheus/Grafana | 125 | 9090/3000 | Monitoring |
|
||||
| 10.0.10.26 | Uptime Kuma | 128 | 3001 | Status monitoring |
|
||||
|
||||
@@ -91,9 +91,10 @@ ssh root@10.0.10.4 # pve-storage
|
||||
- ACME: `https://10.0.10.15:8443/acme/acme/directory`
|
||||
- Provisioners: JWK (admin@nianticbooks.home), ACME
|
||||
|
||||
### RustDesk (10.0.10.23)
|
||||
- Public endpoint: 66.63.182.168:21117 (relay)
|
||||
- Pubkey: `sfYuCTMHxrA22kukomb/RAKYyUgr8iaMfm/U4CFLfL0=`
|
||||
### RustDesk (51.222.12.162 / vps.nianticbooks.com)
|
||||
- ID Server: 51.222.12.162:21116
|
||||
- Relay Server: 51.222.12.162:21117
|
||||
- Pubkey: `EPO75IeD+yJo5S5wtKePpyokHGXv9FN1w5Fx+Db5UCk=`
|
||||
|
||||
### Home Assistant (10.0.10.24:8123)
|
||||
- Never commit secrets.yaml | Use secrets.yaml.example template
|
||||
|
||||
85
infrastructure/FOR-CLAUDE-CODE.md
Normal file
85
infrastructure/FOR-CLAUDE-CODE.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# For Claude Code - Infrastructure Documentation
|
||||
|
||||
👋 **Hey Claude Code!**
|
||||
|
||||
This repo is the **single source of truth** for Fred's homelab infrastructure. Both you and Funky (OpenClaw agent) share this documentation to stay in sync.
|
||||
|
||||
## 📍 You Are Here
|
||||
|
||||
**Repo:** http://10.0.10.2:3000/fred/homelab-docs
|
||||
**Local:** `/root/.openclaw/workspace/fred-infrastructure/`
|
||||
**Branch:** `main`
|
||||
|
||||
## 🎯 How to Use This
|
||||
|
||||
### When You Need Infrastructure Info
|
||||
|
||||
Check these files first:
|
||||
- **SERVICES.md** - All services, IPs, ports, access details
|
||||
- **IP-ALLOCATION.md** - Network map and IP assignments
|
||||
- **AGENT-REFERENCE.md** - Quick reference formatted for AI agents
|
||||
- **RUNBOOK.md** - Common procedures and troubleshooting
|
||||
|
||||
### When You Discover New Info
|
||||
|
||||
**DO:** Update the relevant `.md` files with new discoveries
|
||||
**DO:** Commit and push changes to Gitea
|
||||
**DO:** Keep Fred's `/root/.openclaw/workspace/TOOLS.md` in sync with critical info
|
||||
**DON'T:** Create duplicate documentation elsewhere
|
||||
|
||||
### Conflict Resolution
|
||||
|
||||
If you and Funky have conflicting information:
|
||||
1. **Document both versions** in the file with a note
|
||||
2. **Tag Fred** to investigate and decide the truth
|
||||
3. **Update once resolved** with a commit noting what was clarified
|
||||
|
||||
## 🔄 Git Workflow
|
||||
|
||||
```bash
|
||||
# Pull latest before making changes
|
||||
cd /root/.openclaw/workspace/fred-infrastructure
|
||||
git pull origin main
|
||||
|
||||
# Make your changes, then:
|
||||
git add .
|
||||
git commit -m "Your descriptive commit message"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
**Git credentials are already configured** - just commit and push!
|
||||
|
||||
## 📝 Documentation Standards
|
||||
|
||||
- **Be specific:** Include IPs, ports, container IDs, versions
|
||||
- **Be current:** Update when you discover changes
|
||||
- **Be helpful:** Think "what would another AI agent need to know?"
|
||||
- **Use markdown:** Keep formatting clean and readable
|
||||
|
||||
## 🤝 Working With Funky
|
||||
|
||||
Funky monitors this repo and reads the same files you do. When you update infrastructure docs, Funky will see the changes on their next heartbeat or session start.
|
||||
|
||||
**Funky's main session context includes:**
|
||||
- `TOOLS.md` (quick reference, points here)
|
||||
- Memory files in `/root/.openclaw/workspace/memory/`
|
||||
- This infrastructure repo
|
||||
|
||||
## 🚨 Critical Services (Handle With Care)
|
||||
|
||||
These services are production-critical for Fred:
|
||||
- **OpenClaw Gateway** (10.0.10.28) - That's Funky's home!
|
||||
- **Home Assistant** (10.0.10.24) - Smart home automation
|
||||
- **n8n** (10.0.10.22) - Workflow automation & alerts
|
||||
- **Uptime Kuma** (10.0.10.26) - Service monitoring
|
||||
- **Proxmox Hosts** (10.0.10.3, 10.0.10.2) - Hypervisors
|
||||
|
||||
**Before making changes to these:** Confirm with Fred first.
|
||||
|
||||
## 📞 Need Help?
|
||||
|
||||
Ask Fred! He'll clarify conflicts, provide missing details, or guide architectural decisions.
|
||||
|
||||
---
|
||||
|
||||
**Remember:** We're a team. You, Funky, and Fred. Good documentation helps all of us work together smoothly. ✨
|
||||
@@ -66,7 +66,7 @@
|
||||
| 10.0.10.20 | postgresql | PostgreSQL (Shared DB) | main-pve | CT 102 | Active |
|
||||
| 10.0.10.21 | authentik | Authentik SSO | main-pve | CT 121 | Active |
|
||||
| 10.0.10.22 | n8n | n8n Workflow Automation | main-pve | CT 106 | Active |
|
||||
| 10.0.10.23 | rustdesk | RustDesk ID Server (hbbs) | main-pve | CT 123 | Active |
|
||||
| 10.0.10.23 | rustdesk | RustDesk ID Server (DEPRECATED - moved to VPS) | main-pve | CT 123 | Inactive |
|
||||
| 10.0.10.24 | homeassistant | Home Assistant OS | pve-router | VM 104 | Active |
|
||||
| 10.0.10.25 | prometheus | Prometheus + Grafana | main-pve | CT 125 | Active |
|
||||
| 10.0.10.26 | uptime-kuma | Uptime Kuma Monitoring | main-pve | CT 128 | Active |
|
||||
@@ -221,7 +221,7 @@ These devices receive dynamic IPs from UCG Ultra DHCP. Some have DHCP reservatio
|
||||
| 107 | pterodactyl-wings | 10.0.10.46 |
|
||||
| 115 | ca-server | 10.0.10.15 |
|
||||
| 121 | authentik | 10.0.10.21 |
|
||||
| 123 | rustdesk | 10.0.10.23 |
|
||||
| 123 | rustdesk | 10.0.10.23 | DEPRECATED - RustDesk now on VPS (51.222.12.162) |
|
||||
| 125 | prometheus | 10.0.10.25 |
|
||||
| 127 | dockge | 10.0.10.27 |
|
||||
| 128 | uptime-kuma | 10.0.10.26 |
|
||||
|
||||
@@ -39,8 +39,8 @@ This document provides detailed information about all services running in the in
|
||||
| Calibre-Web | Home Lab | 10.0.10.27 | Media | ✅ Running | No |
|
||||
| Caddy Internal Proxy | Home Lab | 10.0.10.27 | Proxy | ✅ Running | No |
|
||||
| Vehicle Tracker | Home Lab | 10.0.10.35 | Web App | 🔄 In Development | No |
|
||||
| RustDesk ID Server | Home Lab | 10.0.10.23 | Remote Desktop | ✅ Running | No |
|
||||
| RustDesk Relay | VPS | 66.63.182.168 | Remote Desktop | ✅ Running | No |
|
||||
| RustDesk ID Server | VPS | 51.222.12.162 | Remote Desktop | ✅ Running | No |
|
||||
| RustDesk Relay | VPS | 51.222.12.162 | Remote Desktop | ✅ Running | No |
|
||||
| OpenClaw Gateway | Home Lab | 10.0.10.28 | AI Agent | ✅ Running | No |
|
||||
| AD5M 3D Printer | Home Lab | 10.0.10.30 | IoT | ✅ Running | No |
|
||||
| WireGuard VPN | Gaming VPS | 51.222.12.162 | Tunnel | ✅ Running | Yes |
|
||||
@@ -737,30 +737,25 @@ See `CA-DEPLOYMENT-SUMMARY.md` for client certificate installation instructions.
|
||||
**Purpose**: Secure remote desktop access with self-hosted infrastructure
|
||||
|
||||
**Service Details**:
|
||||
- **ID Server (hbbs)**: LXC 123 on main-pve
|
||||
- **IP**: 10.0.10.23
|
||||
- **Version**: 1.1.14
|
||||
- **Ports**: 21115 (NAT test), 21116 (ID/Rendezvous), 21118 (TCP punch)
|
||||
- **Relay Server (hbbr)**: VPS (66.63.182.168)
|
||||
- **Version**: 1.1.14
|
||||
- **ID Server (hbbs)**: VPS (51.222.12.162 / vps.nianticbooks.com)
|
||||
- **Port**: 21116 (ID/Rendezvous)
|
||||
- **Relay Server (hbbr)**: VPS (51.222.12.162 / vps.nianticbooks.com)
|
||||
- **Port**: 21117 (Relay service)
|
||||
- **Public Key**: `sfYuCTMHxrA22kukomb/RAKYyUgr8iaMfm/U4CFLfL0=`
|
||||
- **Public Key**: `EPO75IeD+yJo5S5wtKePpyokHGXv9FN1w5Fx+Db5UCk=`
|
||||
|
||||
**Architecture**:
|
||||
```
|
||||
Internet → VPS Relay (hbbr)
|
||||
Internet → VPS (51.222.12.162)
|
||||
↓
|
||||
WireGuard Tunnel
|
||||
↓
|
||||
Home Lab ID Server (hbbs)
|
||||
RustDesk ID Server (hbbs) + Relay (hbbr)
|
||||
↓
|
||||
RustDesk Clients (P2P when possible)
|
||||
```
|
||||
|
||||
**Client Configuration**:
|
||||
- **ID Server**: `66.63.182.168`
|
||||
- **Relay Server**: `66.63.182.168` (auto-configured)
|
||||
- **Key**: `sfYuCTMHxrA22kukomb/RAKYyUgr8iaMfm/U4CFLfL0=`
|
||||
- **ID Server**: `51.222.12.162`
|
||||
- **Relay Server**: `51.222.12.162`
|
||||
- **Key**: `EPO75IeD+yJo5S5wtKePpyokHGXv9FN1w5Fx+Db5UCk=`
|
||||
|
||||
**Startup**:
|
||||
```bash
|
||||
|
||||
188
infrastructure/home-assistant/3d-printer-dashboard.yaml
Normal file
188
infrastructure/home-assistant/3d-printer-dashboard.yaml
Normal file
@@ -0,0 +1,188 @@
|
||||
title: 3D Printers
|
||||
icon: mdi:printer-3d
|
||||
path: 3d-printers
|
||||
type: panel
|
||||
cards:
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
|
||||
# ─────────────────────────────────────────
|
||||
# AD5M / ForgeX (Moonraker / Klipper)
|
||||
# ⚠️ Connect Moonraker integration first:
|
||||
# Settings → Devices → Add Integration → Moonraker
|
||||
# Host: 10.0.10.30 Port: 7125
|
||||
# Then verify entity IDs below match what HA reports
|
||||
# ─────────────────────────────────────────
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-title-card
|
||||
title: "🔧 AD5M (ForgeX)"
|
||||
subtitle: Klipper / Moonraker
|
||||
|
||||
- type: picture-glance
|
||||
title: ForgeX Webcam
|
||||
camera_image: camera.ad5m_camera
|
||||
entities: []
|
||||
|
||||
- type: custom:mushroom-entity-card
|
||||
entity: sensor.ad5m_print_status
|
||||
name: Status
|
||||
icon: mdi:printer-3d-nozzle
|
||||
fill_container: false
|
||||
|
||||
- type: custom:mushroom-template-card
|
||||
primary: "{{ states('sensor.ad5m_filename') | default('Idle') }}"
|
||||
secondary: >
|
||||
Layer {{ states('sensor.ad5m_current_layer') }} /
|
||||
{{ states('sensor.ad5m_total_layer') }}
|
||||
icon: mdi:file-cog
|
||||
entity: sensor.ad5m_filename
|
||||
|
||||
- type: gauge
|
||||
entity: sensor.ad5m_progress
|
||||
name: Progress
|
||||
min: 0
|
||||
max: 100
|
||||
severity:
|
||||
green: 75
|
||||
yellow: 40
|
||||
red: 0
|
||||
|
||||
- type: glance
|
||||
title: Temperatures
|
||||
entities:
|
||||
- entity: sensor.ad5m_nozzle_temperature
|
||||
name: Nozzle
|
||||
- entity: sensor.ad5m_nozzle_target_temperature
|
||||
name: Nozzle Target
|
||||
- entity: sensor.ad5m_bed_temperature
|
||||
name: Bed
|
||||
- entity: sensor.ad5m_bed_target_temperature
|
||||
name: Bed Target
|
||||
|
||||
- type: history-graph
|
||||
title: Temp History (4hr)
|
||||
hours_to_show: 4
|
||||
entities:
|
||||
- entity: sensor.ad5m_nozzle_temperature
|
||||
name: Nozzle
|
||||
- entity: sensor.ad5m_bed_temperature
|
||||
name: Bed
|
||||
|
||||
- type: glance
|
||||
title: Job Info
|
||||
entities:
|
||||
- entity: sensor.ad5m_print_duration
|
||||
name: Duration
|
||||
- entity: sensor.ad5m_eta
|
||||
name: ETA
|
||||
|
||||
# ─────────────────────────────────────────
|
||||
# Bambu Lab A1 (fully integrated ✅)
|
||||
# ─────────────────────────────────────────
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-title-card
|
||||
title: "🐼 Bambu A1"
|
||||
subtitle: Bambu Lab Integration
|
||||
|
||||
- type: picture-glance
|
||||
title: A1 Webcam
|
||||
camera_image: camera.a1_03919d522604085_camera
|
||||
entities: []
|
||||
|
||||
- type: custom:mushroom-entity-card
|
||||
entity: sensor.a1_03919d522604085_print_status
|
||||
name: Status
|
||||
icon: mdi:printer-3d-nozzle
|
||||
|
||||
- type: custom:mushroom-template-card
|
||||
primary: "{{ states('sensor.a1_03919d522604085_task_name') | default('Idle') }}"
|
||||
secondary: >
|
||||
Layer {{ states('sensor.a1_03919d522604085_current_layer') }} /
|
||||
{{ states('sensor.a1_03919d522604085_total_layer_count') }}
|
||||
• {{ states('sensor.a1_03919d522604085_current_stage') }}
|
||||
icon: mdi:file-cog
|
||||
entity: sensor.a1_03919d522604085_task_name
|
||||
|
||||
- type: gauge
|
||||
entity: sensor.a1_03919d522604085_print_progress
|
||||
name: Progress
|
||||
min: 0
|
||||
max: 100
|
||||
severity:
|
||||
green: 75
|
||||
yellow: 40
|
||||
red: 0
|
||||
|
||||
- type: glance
|
||||
title: Temperatures
|
||||
entities:
|
||||
- entity: sensor.a1_03919d522604085_nozzle_temperature
|
||||
name: Nozzle
|
||||
- entity: sensor.a1_03919d522604085_nozzle_target_temperature
|
||||
name: Nozzle Target
|
||||
- entity: sensor.a1_03919d522604085_bed_temperature
|
||||
name: Bed
|
||||
- entity: sensor.a1_03919d522604085_bed_target_temperature
|
||||
name: Bed Target
|
||||
|
||||
- type: history-graph
|
||||
title: Temp History (4hr)
|
||||
hours_to_show: 4
|
||||
entities:
|
||||
- entity: sensor.a1_03919d522604085_nozzle_temperature
|
||||
name: Nozzle
|
||||
- entity: sensor.a1_03919d522604085_bed_temperature
|
||||
name: Bed
|
||||
|
||||
- type: glance
|
||||
title: Job Info
|
||||
entities:
|
||||
- entity: sensor.a1_03919d522604085_remaining_time
|
||||
name: Remaining
|
||||
- entity: sensor.a1_03919d522604085_speed_profile
|
||||
name: Speed
|
||||
|
||||
- type: entities
|
||||
title: Controls
|
||||
entities:
|
||||
- entity: light.a1_03919d522604085_chamber_light
|
||||
name: Chamber Light
|
||||
- type: button
|
||||
entity: button.a1_03919d522604085_pause_printing
|
||||
name: Pause
|
||||
icon: mdi:pause
|
||||
action_name: Pause
|
||||
- type: button
|
||||
entity: button.a1_03919d522604085_resume_printing
|
||||
name: Resume
|
||||
icon: mdi:play
|
||||
action_name: Resume
|
||||
- type: button
|
||||
entity: button.a1_03919d522604085_stop_printing
|
||||
name: Stop
|
||||
icon: mdi:stop
|
||||
action_name: Stop
|
||||
|
||||
- type: entities
|
||||
title: AMS Filament Trays
|
||||
entities:
|
||||
- entity: sensor.a1_03919d522604085_active_tray
|
||||
name: Active Tray
|
||||
- entity: sensor.a1_03919d522604085_ams_1_tray_1
|
||||
name: Tray 1
|
||||
- entity: sensor.a1_03919d522604085_ams_1_tray_2
|
||||
name: Tray 2
|
||||
- entity: sensor.a1_03919d522604085_ams_1_tray_3
|
||||
name: Tray 3
|
||||
- entity: sensor.a1_03919d522604085_ams_1_tray_4
|
||||
name: Tray 4
|
||||
|
||||
- type: glance
|
||||
title: AMS Environment
|
||||
entities:
|
||||
- entity: sensor.a1_03919d522604085_ams_1_temperature
|
||||
name: AMS Temp
|
||||
- entity: sensor.a1_03919d522604085_ams_1_humidity
|
||||
name: Humidity
|
||||
Reference in New Issue
Block a user