feat(infrastructure): enhance TrueNAS collection with comprehensive Docker/apps support
- Added collect-truenas-apps.sh script for standalone app/container collection - Enhanced collect-truenas-config.sh with Docker container, image, network, and volume collection - Fixed JSON format issues (converted newline-delimited JSON to proper arrays using jq/sed) - Added dynamic SSH user detection (tries root, admin, truenas_admin) - Implemented file size validation to prevent false success messages - Added container logs collection (last 500 lines per container) - Added Docker Compose file extraction from running containers - Added individual app configs collection from /mnt/.ix-apps/app_configs/ - Updated CLAUDE.md to reflect TrueNAS repository scope and strict agent routing rules - Restored sub-agent definitions (backend-builder, lab-operator, librarian, scribe) - Added SCRIPT_UPDATES.md with detailed changelog and testing instructions - Updated .gitignore to exclude Windows Zone.Identifier files These changes enable complete disaster recovery exports including all Docker/app configurations, logs, and metadata that were previously missing from TrueNAS infrastructure snapshots. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
81
CLAUDE.md
81
CLAUDE.md
@@ -1,15 +1,15 @@
|
||||
---
|
||||
version: 2.2.0
|
||||
last_updated: 2025-12-07
|
||||
version: 1.0.0
|
||||
last_updated: 2025-12-16
|
||||
infrastructure_source: CLAUDE_STATUS.md
|
||||
repository_type: homelab
|
||||
primary_node: serviceslab
|
||||
proxmox_version: 8.3.3
|
||||
vm_count: 8
|
||||
template_count: 2
|
||||
lxc_count: 4
|
||||
repository_type: TrueNas
|
||||
|
||||
TrueNas_version:
|
||||
vm_count:
|
||||
template_count:
|
||||
lxc_count:
|
||||
working_directory: /home/jramos/homelab
|
||||
git_remote: http://192.168.2.102:3060/jramos/homelab.git
|
||||
git_remote: http://192.168.2.102:3060/jramos/truenas.git
|
||||
---
|
||||
|
||||
# CLAUDE.md
|
||||
@@ -25,33 +25,40 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
|
||||
When working with this repository, choose the appropriate agent based on task type:
|
||||
|
||||
## Agent Selection Guide
|
||||
|
||||
**CRITICAL RULE**: The Main Agent is a **ROUTER ONLY**. It must NEVER write code, documentation, or config files directly. It must ALWAYS delegate to a sub-agent.
|
||||
|
||||
| Task Type | Primary Agent | Tools Available | Notes |
|
||||
|-----------|---------------|-----------------|-------|
|
||||
| **Git Operations** | `librarian` | Bash, Read, Grep, Edit, Write | Commits, branches, merges, .gitignore |
|
||||
| **Documentation** | `scribe` | Read, Grep, Glob, Edit, Write | READMEs, architecture docs, diagrams |
|
||||
| **Infrastructure Ops** | `lab-operator` | Bash, Read, Grep, Glob, Edit, Write | Proxmox, Docker, networking, storage |
|
||||
| **Code/IaC Development** | `backend-builder` | Bash, Read, Grep, Glob, Edit, Write | Ansible, Terraform, Python, Shell |
|
||||
| **File Creation** | Main Agent | All tools | Use when sub-agents lack specific tools |
|
||||
| **Complex Multi-Agent Tasks** | Main Agent | All tools | Coordinates between specialized agents |
|
||||
| **Infrastructure Ops** | `lab-operator` | Bash, Read, Grep, Glob, Edit, Write | TrueNas, Docker, networking, storage |
|
||||
| **Code/IaC/Scripting** | `backend-builder` | Bash, Read, Grep, Glob, Edit, Write | Ansible, Terraform, Python, **Shell Scripts** |
|
||||
| **Orchestration** | Main Agent | All tools | **ONLY** for routing and high-level planning. |
|
||||
|
||||
### Task Routing Decision Tree
|
||||
|
||||
```
|
||||
Is this a git/version control task?
|
||||
├── Yes → Use librarian
|
||||
└── No ↓
|
||||
|
||||
Is this documentation (README, guides, diagrams)?
|
||||
├── Yes → Use scribe
|
||||
└── No ↓
|
||||
|
||||
Does this require system commands (docker, ssh, proxmox)?
|
||||
├── Yes → Use lab-operator
|
||||
└── No ↓
|
||||
|
||||
Is this code/config creation (Ansible, Python, Terraform)?
|
||||
├── Yes → Use backend-builder
|
||||
└── No → Use Main Agent
|
||||
START
|
||||
│
|
||||
├── Am I (Main Agent) about to write a file or run a command?
|
||||
│ └── YES → **STOP**. Identify the correct sub-agent below.
|
||||
│
|
||||
├── Is this a git/version control task?
|
||||
│ └── Yes → Use `librarian`
|
||||
│
|
||||
├── Is this documentation (README, guides, diagrams)?
|
||||
│ └── Yes → Use `scribe`
|
||||
│
|
||||
├── Does this require system commands (docker, ssh, proxmox) or execution?
|
||||
│ └── Yes → Use `lab-operator`
|
||||
│
|
||||
├── Is this code, script, or config creation (Ansible, Python, Bash, Terraform)?
|
||||
│ └── Yes → Use `backend-builder`
|
||||
│
|
||||
└── Is this a purely conversational/planning question?
|
||||
└── Yes → Main Agent answers directly.
|
||||
```
|
||||
|
||||
### Agent Collaboration Patterns
|
||||
@@ -71,18 +78,30 @@ Is this code/config creation (Ansible, Python, Terraform)?
|
||||
|
||||
**For detailed, current infrastructure inventory, see:**
|
||||
- **Live Status**: `CLAUDE_STATUS.md` (most current)
|
||||
- **Service Details**: `services/README.md`
|
||||
- **Complete Index**: `INDEX.md`
|
||||
- **Service Details**:
|
||||
- **Complete Index**:
|
||||
|
||||
**Quick Summary:**
|
||||
- **VMs**:
|
||||
- **Templates**:
|
||||
- **APPS**:
|
||||
- **Containers**:
|
||||
- **Storage Pools**:
|
||||
- **Monitoring**: VM 101 at 192.168.2.114 (Grafana/Prometheus/PVE Exporter)
|
||||
|
||||
**Note**: Infrastructure details change frequently. Always reference `CLAUDE_STATUS.md` for accurate counts, IPs, and status.
|
||||
|
||||
## Main Agent Operational Rules (STRICT)
|
||||
|
||||
1. **NO DIRECT WRITING**: The Main Agent must **NEVER** use the `Write` or `Edit` tools to create content in the repository.
|
||||
* If you need to write a script $\to$ Call `backend-builder`.
|
||||
* If you need to write docs $\to$ Call `scribe`.
|
||||
* If you need to commit $\to$ Call `librarian`.
|
||||
|
||||
2. **NO DIRECT EXECUTION**: The Main Agent must **NEVER** use `Bash` to execute system commands.
|
||||
* If you need to run a command $\to$ Call `lab-operator`.
|
||||
|
||||
3. **ROUTING FIRST**: Your primary goal is to identify the intent and immediately invoke the correct sub-agent. Do not "draft" the solution first.
|
||||
|
||||
## Working with This Environment
|
||||
|
||||
### Universal Workflow
|
||||
|
||||
Reference in New Issue
Block a user