- Enhanced moebius ring logo design in Blender - Updated Docker Compose for website-only deployment with improved config - Enhanced teaser layout with updated branding integration - Added installation and setup documentation - Consolidated planning and reports documentation - Updated gitignore to exclude Next.js build artifacts and archives 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
418 lines
12 KiB
Markdown
418 lines
12 KiB
Markdown
# CHORUS Enhanced Installer Documentation
|
|
|
|
## Overview
|
|
|
|
The CHORUS Enhanced Installer (`install-chorus-enhanced.sh`) provides a complete one-command installation solution for the CHORUS distributed AI orchestration platform, addressing the critical gap between binary installation and functional repository configuration.
|
|
|
|
## Key Features
|
|
|
|
### 🎯 Complete End-to-End Setup
|
|
- **Binary Installation**: Downloads and installs BZZZ P2P coordination agent
|
|
- **Repository Integration**: Full GITEA/GitHub configuration with credential management
|
|
- **Service Management**: SystemD service installation and configuration
|
|
- **Infrastructure Setup**: Ollama AI models and coordinator components
|
|
|
|
### 🔧 Repository Provider Support
|
|
- **GITEA Integration**: Auto-detection of local GITEA instances
|
|
- **GitHub Support**: Full GitHub API integration
|
|
- **Unified Configuration**: Single YAML config for both providers
|
|
- **Credential Management**: Secure token storage and validation
|
|
|
|
### 🚀 Installation Modes
|
|
- **Worker Node**: Standard agent installation
|
|
- **Coordinator Node**: Additional components (Docker, Age encryption, WHOOSH)
|
|
- **Custom Configuration**: Interactive setup with sensible defaults
|
|
|
|
## Installation Methods
|
|
|
|
### Quick Install (Recommended)
|
|
```bash
|
|
curl -fsSL https://chorus.services/install-enhanced.sh | sh
|
|
```
|
|
|
|
### With Options
|
|
```bash
|
|
curl -fsSL https://chorus.services/install-enhanced.sh | sh -s -- --coordinator --models "llama3.2,qwen2.5:7b"
|
|
```
|
|
|
|
### Advanced Configuration
|
|
```bash
|
|
curl -fsSL https://chorus.services/install-enhanced.sh | sh -s -- --gitea-url "https://git.mycompany.com" --github
|
|
```
|
|
|
|
## Command Line Options
|
|
|
|
| Option | Description | Default |
|
|
|--------|-------------|---------|
|
|
| `--coordinator` | Install as cluster coordinator | false |
|
|
| `--models MODEL` | Comma-separated AI models to install | none |
|
|
| `--skip-deps` | Skip dependency installation | false |
|
|
| `--quiet` | Minimal output mode | false |
|
|
| `--github` | Use GitHub instead of GITEA | gitea |
|
|
| `--gitea-url URL` | Custom GITEA instance URL | http://ironwood:3000 |
|
|
| `--help` | Show help information | - |
|
|
|
|
## Repository Configuration
|
|
|
|
### GITEA Setup (Default)
|
|
```yaml
|
|
repository:
|
|
provider: "gitea"
|
|
config:
|
|
base_url: "http://ironwood:3000"
|
|
owner: "tony"
|
|
repository: "bzzz"
|
|
task_label: "bzzz-task"
|
|
in_progress_label: "bzzz-working"
|
|
completed_label: "bzzz-completed"
|
|
priority_label: "bzzz-priority"
|
|
assignee: "tony"
|
|
base_branch: "main"
|
|
branch_prefix: "bzzz/task-"
|
|
token_file: "/home/user/chorus/business/secrets/gitea-token"
|
|
```
|
|
|
|
### GitHub Setup
|
|
```yaml
|
|
repository:
|
|
provider: "github"
|
|
config:
|
|
base_url: "https://api.github.com"
|
|
owner: "username"
|
|
repository: "project"
|
|
task_label: "bzzz-task"
|
|
token_file: "/home/user/chorus/business/secrets/gh-token"
|
|
```
|
|
|
|
## Installation Process
|
|
|
|
### Phase 1: System Detection
|
|
1. **OS Detection**: Linux (apt/yum/pacman) or macOS (brew)
|
|
2. **Architecture Detection**: amd64, arm64, armv7
|
|
3. **Dependency Check**: curl, git, jq installation
|
|
4. **GITEA Discovery**: Auto-detect local instances
|
|
|
|
### Phase 2: Credential Setup
|
|
1. **Token Management**: Secure storage in `~/chorus/business/secrets/`
|
|
2. **Repository Access**: Interactive token configuration
|
|
3. **Access Validation**: Test API connectivity
|
|
4. **Permission Verification**: Ensure required scopes
|
|
|
|
### Phase 3: Infrastructure Installation
|
|
1. **Ollama Setup**: AI model runtime installation
|
|
2. **Directory Structure**: CHORUS workspace creation
|
|
3. **Binary Download**: Architecture-specific BZZZ binary
|
|
4. **Service Files**: SystemD configuration generation
|
|
|
|
### Phase 4: BZZZ Configuration
|
|
1. **Node Configuration**: Interactive hostname, role, ports
|
|
2. **Repository Integration**: Complete YAML generation
|
|
3. **Agent Settings**: Capabilities and expertise configuration
|
|
4. **Security Setup**: Encryption and audit logging
|
|
|
|
### Phase 5: Service Installation
|
|
1. **SystemD Integration**: Service file installation
|
|
2. **Service Activation**: Enable and start BZZZ
|
|
3. **Health Verification**: Service status validation
|
|
4. **Coordinator Setup**: Additional components if needed
|
|
|
|
## Generated Configuration
|
|
|
|
### Complete BZZZ YAML Configuration
|
|
```yaml
|
|
# Node Identity
|
|
node:
|
|
id: "hostname"
|
|
role: "worker|coordinator"
|
|
|
|
# API Configuration
|
|
api:
|
|
host: "0.0.0.0"
|
|
port: 8080
|
|
|
|
# Health Monitoring
|
|
health:
|
|
port: 8081
|
|
enabled: true
|
|
|
|
# P2P Networking
|
|
p2p:
|
|
port: 4001
|
|
discovery:
|
|
enabled: true
|
|
bootstrap_nodes: []
|
|
service_tag: "bzzz-peer-discovery"
|
|
topics:
|
|
bzzz: "bzzz/coordination/v1"
|
|
hmmm: "hmmm/meta-discussion/v1"
|
|
|
|
# Agent Configuration
|
|
agent:
|
|
id: "hostname-agent"
|
|
capabilities: ["general", "reasoning", "task-coordination"]
|
|
poll_interval: "30s"
|
|
max_tasks: 3
|
|
specialization: "general_developer"
|
|
role: "Full Stack Engineer"
|
|
expertise: ["golang", "typescript", "docker", "kubernetes"]
|
|
|
|
# Repository Integration (CORE FEATURE)
|
|
repository:
|
|
provider: "gitea|github"
|
|
config:
|
|
base_url: "provider-url"
|
|
owner: "repository-owner"
|
|
repository: "repository-name"
|
|
task_label: "bzzz-task"
|
|
token_file: "path-to-token"
|
|
|
|
# Security Configuration
|
|
security:
|
|
admin_key_shares:
|
|
threshold: 3
|
|
total_shares: 5
|
|
election_config:
|
|
heartbeat_timeout: "5s"
|
|
discovery_timeout: "30s"
|
|
election_timeout: "15s"
|
|
minimum_quorum: 3
|
|
key_rotation_days: 90
|
|
audit_logging: true
|
|
|
|
# Storage and Logging
|
|
storage:
|
|
path: "$HOME/.chorus/data"
|
|
type: "filesystem"
|
|
|
|
logging:
|
|
level: "info"
|
|
format: "text"
|
|
output: "stdout"
|
|
file: "$HOME/.chorus/logs/bzzz.log"
|
|
```
|
|
|
|
## Service Management
|
|
|
|
### SystemD Service Configuration
|
|
```ini
|
|
[Unit]
|
|
Description=BZZZ P2P Task Coordination System
|
|
Documentation=https://chorus.services/docs/bzzz
|
|
After=network.target
|
|
Wants=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=username
|
|
Group=username
|
|
WorkingDirectory=/path/to/bzzz
|
|
ExecStart=/path/to/bzzz --config /path/to/config/bzzz.yaml
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
# Security Settings
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=strict
|
|
ProtectHome=false
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
### Service Commands
|
|
```bash
|
|
# Service Management
|
|
sudo systemctl status bzzz # Check status
|
|
sudo systemctl restart bzzz # Restart service
|
|
sudo journalctl -u bzzz -f # Follow logs
|
|
|
|
# Health Monitoring
|
|
curl http://localhost:8081/health # Health check
|
|
curl http://localhost:8081/metrics # Metrics
|
|
curl http://localhost:8080 # API endpoint
|
|
```
|
|
|
|
## API Endpoints
|
|
|
|
### Health and Monitoring
|
|
- `GET /health` - Service health status
|
|
- `GET /metrics` - Prometheus metrics
|
|
- `GET /status` - Agent status and active tasks
|
|
|
|
### Task Coordination
|
|
- Task discovery handled automatically via repository polling
|
|
- Task claiming through repository provider APIs
|
|
- Progress updates via repository comments/labels
|
|
|
|
## Security Features
|
|
|
|
### Credential Management
|
|
- **Token Storage**: Secure file permissions (600)
|
|
- **API Validation**: Repository access verification
|
|
- **Encryption**: Age keys for coordinator nodes
|
|
- **Audit Logging**: Security event tracking
|
|
|
|
### Network Security
|
|
- **P2P Encryption**: libp2p secure channels
|
|
- **API Authentication**: Repository token validation
|
|
- **Local Binding**: Services bound to localhost by default
|
|
|
|
## Installation Verification
|
|
|
|
### Automatic Checks
|
|
1. **Service Status**: BZZZ systemd service active
|
|
2. **Configuration**: Valid YAML configuration file
|
|
3. **Repository Access**: API connectivity test
|
|
4. **Ollama Status**: AI runtime availability
|
|
|
|
### Manual Verification
|
|
```bash
|
|
# Check all services
|
|
systemctl status bzzz ollama
|
|
|
|
# Test API endpoints
|
|
curl http://localhost:8081/health
|
|
curl http://localhost:8080/status
|
|
|
|
# View configuration
|
|
cat ~/chorus/project-queues/active/BZZZ/config/bzzz.yaml
|
|
|
|
# Check logs
|
|
sudo journalctl -u bzzz --since "1 hour ago"
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
#### Service Not Starting
|
|
```bash
|
|
# Check logs
|
|
sudo journalctl -u bzzz -f
|
|
|
|
# Verify binary
|
|
~/chorus/project-queues/active/BZZZ/bzzz --version
|
|
|
|
# Check configuration
|
|
cat ~/chorus/project-queues/active/BZZZ/config/bzzz.yaml
|
|
```
|
|
|
|
#### Repository Access Issues
|
|
```bash
|
|
# Verify token file
|
|
ls -la ~/chorus/business/secrets/
|
|
|
|
# Test API access manually
|
|
curl -H "Authorization: token $(cat ~/chorus/business/secrets/gitea-token)" \
|
|
http://ironwood:3000/api/v1/user
|
|
```
|
|
|
|
#### Network Connectivity
|
|
```bash
|
|
# Check port availability
|
|
netstat -tlnp | grep :8080
|
|
netstat -tlnp | grep :8081
|
|
|
|
# Test P2P connectivity
|
|
netstat -tlnp | grep :4001
|
|
```
|
|
|
|
## Coordinator Features
|
|
|
|
### Additional Components
|
|
- **Docker**: Container runtime for WHOOSH dashboard
|
|
- **Age Encryption**: Cryptographic key management
|
|
- **WHOOSH Integration**: Web-based cluster management
|
|
- **Bootstrap Node**: P2P network discovery
|
|
|
|
### Setup Process
|
|
```bash
|
|
# Install as coordinator
|
|
curl -fsSL https://chorus.services/install-enhanced.sh | sh -s -- --coordinator
|
|
|
|
# Additional coordinator tasks
|
|
docker-compose up -d whoosh # Start dashboard
|
|
age-keygen -o secrets/key # Generate encryption keys
|
|
```
|
|
|
|
## Architecture Integration
|
|
|
|
### CHORUS Ecosystem
|
|
- **BZZZ**: P2P task coordination agent
|
|
- **WHOOSH**: Web-based cluster dashboard
|
|
- **Ollama**: Local AI model runtime
|
|
- **Repository Provider**: Task source (GITEA/GitHub)
|
|
|
|
### Data Flow
|
|
1. **Task Discovery**: Repository polling for labeled issues
|
|
2. **Task Claiming**: Atomic assignment via API
|
|
3. **Work Execution**: Local processing with progress updates
|
|
4. **Task Completion**: Results submission and issue closure
|
|
|
|
## Migration and Updates
|
|
|
|
### From Previous Versions
|
|
- Configuration migration handled automatically
|
|
- Service restart required for updates
|
|
- Backward compatibility with existing repositories
|
|
|
|
### Update Process
|
|
```bash
|
|
# Download new installer
|
|
curl -fsSL https://chorus.services/install-enhanced.sh > install.sh
|
|
|
|
# Run update (preserves configuration)
|
|
chmod +x install.sh && ./install.sh
|
|
```
|
|
|
|
## Performance and Scaling
|
|
|
|
### Resource Requirements
|
|
- **CPU**: 1-2 cores minimum
|
|
- **Memory**: 2GB RAM minimum
|
|
- **Storage**: 10GB for binaries, models, and logs
|
|
- **Network**: Stable internet for repository access
|
|
|
|
### Scaling Considerations
|
|
- **Worker Nodes**: Add with same installer
|
|
- **Load Balancing**: Automatic via P2P discovery
|
|
- **High Availability**: Multi-coordinator setup supported
|
|
|
|
## Integration Points
|
|
|
|
### Repository Providers
|
|
- **GITEA**: Self-hosted Git service
|
|
- **GitHub**: Cloud-based Git service
|
|
- **Custom**: Extensible provider architecture
|
|
|
|
### AI Models
|
|
- **Ollama Integration**: Local model runtime
|
|
- **Model Management**: Automatic pulling and updates
|
|
- **Custom Models**: Support for specialized models
|
|
|
|
### Monitoring
|
|
- **SystemD**: Native service monitoring
|
|
- **Health Endpoints**: HTTP health checks
|
|
- **Metrics**: Prometheus-compatible metrics
|
|
- **Logs**: Structured logging to journald
|
|
|
|
## Comparison with Basic Installer
|
|
|
|
### Enhanced Features (install-chorus-enhanced.sh)
|
|
✅ **Repository Configuration**: Complete GITEA/GitHub setup
|
|
✅ **Credential Management**: Secure token storage
|
|
✅ **API Validation**: Repository access verification
|
|
✅ **YAML Configuration**: Complete config generation
|
|
✅ **Interactive Setup**: User-friendly configuration
|
|
✅ **Auto-detection**: GITEA instance discovery
|
|
✅ **Provider Switching**: GitHub/GITEA selection
|
|
|
|
### Basic Installer Limitations (install-chorus.sh)
|
|
❌ **No Repository Setup**: Manual configuration required
|
|
❌ **No Credentials**: Token management missing
|
|
❌ **JSON Config**: Basic configuration only
|
|
❌ **No Validation**: No API connectivity testing
|
|
❌ **Manual Setup**: Requires post-install configuration
|
|
|
|
This enhanced installer completely addresses the critical gap identified during deployment, providing a truly seamless installation experience from download to functional task coordination. |