Add comprehensive client registry for tracking all deployed infrastructure: Registry System: - Single source of truth in clients/registry.yml - Tracks status, server specs, versions, maintenance history - Supports canary deployment workflow - Automatic updates via deployment scripts New Scripts: - scripts/list-clients.sh: List/filter clients (table/json/csv/summary) - scripts/client-status.sh: Detailed client info with health checks - scripts/update-registry.sh: Manual registry updates Updated Scripts: - scripts/deploy-client.sh: Auto-updates registry on deploy - scripts/rebuild-client.sh: Auto-updates registry on rebuild - scripts/destroy-client.sh: Marks clients as destroyed Documentation: - docs/client-registry.md: Complete registry reference - clients/README.md: Quick start guide Status tracking: pending → deployed → maintenance → destroyed Role support: canary (dev) and production clients 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| README.md | ||
| registry.yml | ||
Client Registry
This directory contains the client registry system for tracking all deployed infrastructure.
Files
- registry.yml - Single source of truth for all clients
- Deployment status and lifecycle
- Server specifications
- Application versions
- Maintenance history
- Access URLs
Management Scripts
All scripts are located in ../scripts/:
View Clients
# List all clients
../scripts/list-clients.sh
# Filter by status
../scripts/list-clients.sh --status=deployed
# Filter by role
../scripts/list-clients.sh --role=canary
# Different formats
../scripts/list-clients.sh --format=table # Default
../scripts/list-clients.sh --format=json # JSON
../scripts/list-clients.sh --format=csv # CSV export
../scripts/list-clients.sh --format=summary # Statistics
View Client Details
# Show detailed status with live health checks
../scripts/client-status.sh <client_name>
Update Registry
The registry is automatically updated by deployment scripts:
deploy-client.sh- Creates/updates entry on deploymentrebuild-client.sh- Updates entry on rebuilddestroy-client.sh- Marks as destroyed
For manual updates:
../scripts/update-registry.sh <client_name> <action> [options]
Registry Structure
Each client entry tracks:
- Status:
pending→deployed→maintenance→offboarding→destroyed - Role:
canary(testing) orproduction(live) - Server: Type, location, IP, Hetzner ID
- Apps: Installed applications
- Versions: Application and OS versions
- Maintenance: Update and backup history
- URLs: Access endpoints
- Notes: Operational documentation
Canary Deployment
The dev client has role canary and is used for testing:
# 1. Test on canary first
../scripts/deploy-client.sh dev
# 2. Verify it works
../scripts/client-status.sh dev
# 3. Roll out to production
for client in $(../scripts/list-clients.sh --role=production --format=csv | tail -n +2 | cut -d, -f1); do
../scripts/rebuild-client.sh "$client"
done
Documentation
See docs/client-registry.md for:
- Complete registry structure reference
- Management script usage
- Best practices
- Integration examples
- Troubleshooting guide
Requirements
- yq: YAML processor (
brew install yq) - jq: JSON processor (
brew install jq)