- 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>
171 lines
4.3 KiB
Markdown
171 lines
4.3 KiB
Markdown
# CHORUS Installer & Release System
|
|
|
|
This directory contains the complete installer and release build system for CHORUS.
|
|
|
|
## Files Overview
|
|
|
|
### Installer System
|
|
- **`install-chorus.sh`** - Main CLI installer script (like Ollama)
|
|
- **`chorus-services-landing.html`** - Landing page for chorus.services website
|
|
|
|
### Build System
|
|
- **`build-release.sh`** - Comprehensive cross-platform build system
|
|
- **`build-bzzz-minimal.sh`** - Minimal BZZZ builder (avoids import cycles)
|
|
- **`deploy-releases.sh`** - Deploy built binaries to release servers
|
|
|
|
## Quick Start
|
|
|
|
### 1. Build Binaries
|
|
|
|
For a quick minimal build (recommended):
|
|
```bash
|
|
./build-bzzz-minimal.sh
|
|
```
|
|
|
|
For full cross-platform build:
|
|
```bash
|
|
./build-release.sh
|
|
```
|
|
|
|
### 2. Deploy Locally for Testing
|
|
|
|
```bash
|
|
./deploy-releases.sh --target local
|
|
```
|
|
|
|
This creates a local HTTP server at `http://localhost:8000` and generates `install-chorus-local.sh` for testing.
|
|
|
|
### 3. Test the Installer
|
|
|
|
Start the local release server:
|
|
```bash
|
|
cd ~/chorus/local-releases && ./serve.sh
|
|
```
|
|
|
|
In another terminal, test the installer:
|
|
```bash
|
|
./install-chorus-local.sh --coordinator --skip-deps
|
|
```
|
|
|
|
### 4. Deploy to Production
|
|
|
|
```bash
|
|
./deploy-releases.sh --target production
|
|
```
|
|
|
|
## Architecture
|
|
|
|
### Binary Distribution URLs
|
|
|
|
The installer expects these URLs to be available:
|
|
|
|
- `https://releases.chorus.services/bzzz/latest/bzzz-linux-amd64`
|
|
- `https://releases.chorus.services/bzzz/latest/bzzz-darwin-amd64`
|
|
- `https://releases.chorus.services/bzzz/latest/bzzz-linux-arm64`
|
|
- `https://releases.chorus.services/bzzz/latest/bzzz.service`
|
|
- `https://releases.chorus.services/bzzz/latest/install-service.sh`
|
|
- `https://releases.chorus.services/whoosh/latest/whoosh-docker-compose.tar.gz`
|
|
|
|
### Supported Platforms
|
|
|
|
- Linux AMD64 (x86_64)
|
|
- Linux ARM64 (aarch64)
|
|
- Linux ARM (armv7)
|
|
- macOS AMD64 (Intel)
|
|
- macOS ARM64 (Apple Silicon)
|
|
|
|
## Features
|
|
|
|
### CLI Installer Features
|
|
- ✅ One-command installation like Ollama
|
|
- ✅ Cross-platform support (Linux, macOS)
|
|
- ✅ Pre-built binary distribution
|
|
- ✅ Automatic dependency detection
|
|
- ✅ Coordinator vs worker node setup
|
|
- ✅ AI model installation
|
|
- ✅ Systemd service setup
|
|
- ✅ Age encryption key generation
|
|
- ✅ Graceful error handling
|
|
|
|
### Build System Features
|
|
- ✅ Cross-platform binary builds
|
|
- ✅ Minimal BZZZ builder (avoids import cycles)
|
|
- ✅ Automatic checksums
|
|
- ✅ Release versioning
|
|
- ✅ Service file generation
|
|
- ✅ Install script creation
|
|
|
|
### Deployment Features
|
|
- ✅ Local development server
|
|
- ✅ Production deployment
|
|
- ✅ Docker Swarm deployment
|
|
- ✅ Automatic URL updates for testing
|
|
|
|
## Usage Examples
|
|
|
|
### Build and deploy for local testing:
|
|
```bash
|
|
./build-bzzz-minimal.sh
|
|
./deploy-releases.sh --target local
|
|
cd ~/chorus/local-releases && ./serve.sh &
|
|
./install-chorus-local.sh --coordinator
|
|
```
|
|
|
|
### Build specific version:
|
|
```bash
|
|
VERSION=v1.0.0 ./build-bzzz-minimal.sh
|
|
./deploy-releases.sh --target production --channel v1.0.0
|
|
```
|
|
|
|
### Deploy to Docker Swarm:
|
|
```bash
|
|
./deploy-releases.sh --target swarm
|
|
```
|
|
|
|
## Benefits
|
|
|
|
### For Users
|
|
- Simple one-command installation
|
|
- No need to install development tools
|
|
- Fast download and setup
|
|
- Cross-platform compatibility
|
|
|
|
### For Developers
|
|
- Protected source code
|
|
- Controlled licensing
|
|
- Version management
|
|
- Easy testing and deployment
|
|
|
|
### For Business
|
|
- Professional distribution
|
|
- Licensing control
|
|
- Usage analytics potential
|
|
- Brand consistency
|
|
|
|
## Troubleshooting
|
|
|
|
### If BZZZ build fails with import cycles:
|
|
Use the minimal builder:
|
|
```bash
|
|
./build-bzzz-minimal.sh
|
|
```
|
|
|
|
This creates a basic HTTP server that provides the API endpoints needed by WHOOSH and other components.
|
|
|
|
### If installer can't download binaries:
|
|
1. Check if local server is running: `curl http://localhost:8000/bzzz/latest/bzzz-linux-amd64`
|
|
2. Use the local installer: `./install-chorus-local.sh`
|
|
3. Check deployment logs
|
|
|
|
### If service won't start:
|
|
1. Check binary permissions: `ls -la ~/chorus/project-queues/active/BZZZ/bzzz`
|
|
2. Test binary manually: `~/chorus/project-queues/active/BZZZ/bzzz --version`
|
|
3. Check service logs: `sudo journalctl -u bzzz -f`
|
|
|
|
## Next Steps
|
|
|
|
1. **Set up releases.chorus.services** - Host the release files
|
|
2. **Automate builds** - CI/CD pipeline for automatic releases
|
|
3. **Add telemetry** - Track installer usage and success rates
|
|
4. **Expand platforms** - Windows support, additional architectures
|
|
5. **Package managers** - Homebrew, APT, etc. |