# Stack 2.9 - Detailed Setup Guide This guide provides comprehensive instructions for setting up Stack 2.9 in various environments. ## Table of Contents - [Prerequisites](#prerequisites) - [Hardware Requirements](#hardware-requirements) - [Software Prerequisites](#software-prerequisites) - [Installation Methods](#installation-methods) - [Configuration](#configuration) - [Docker Setup](#docker-setup) - [Development Setup](#development-setup) - [Troubleshooting](#troubleshooting) --- ## Prerequisites ### Minimum Requirements | Component | Minimum | Recommended | |-----------|---------|-------------| | **Python** | 3.8+ | 3.11+ | | **Node.js** | 18+ | 20 LTS | | **RAM** | 8 GB | 16 GB | | **GPU VRAM** | 8 GB | 24 GB | | **Disk Space** | 10 GB | 50 GB | ### Operating Systems - ✅ **Linux** (Ubuntu 20.04+, CentOS 8+, Debian 11+) - ✅ **macOS** (12 Monterey or later) - ⚠️ **Windows** (via WSL2 or Docker) --- ## Hardware Requirements ### CPU-Only Inference (Testing/Development) For local development and testing without GPU: | Component | Specification | |-----------|---------------| | **CPU** | 4+ cores | | **RAM** | 8 GB minimum | | **Storage** | 10 GB free space | ### GPU Inference (Production) For production deployment with optimal performance: | Component | Specification | Notes | |-----------|---------------|-------| | **GPU** | NVIDIA GPU with 24GB+ VRAM | A100, H100, RTX 3090, RTX 4090 | | **CPU** | 8+ cores | AMD Ryzen 9, Intel i9 | | **RAM** | 32 GB | 64 GB recommended | | **NVMe Storage** | 50 GB+ | For model caching | ### Multi-GPU Setup For high-throughput production workloads: ```bash # Example: 2x A100 80GB setup export CUDA_VISIBLE_DEVICES=0,1 # Stack 2.9 will automatically use tensor parallelism python stack.py --num-gpus 2 ``` --- ## Software Prerequisites ### 1. Python Installation **Linux/macOS:** ```bash # Using pyenv (recommended) curl https://pyenv.run | bash pyenv install 3.11.4 pyenv global 3.11.4 # Verify installation python --version ``` **Windows (WSL2):** ```bash # Install WSL2 first wsl --install -d Ubuntu-22.04 # Then install Python sudo apt update sudo apt install python3.11 python3.11-venv python3-pip ``` ### 2. Node.js Installation **Linux/macOS:** ```bash # Using nvm (recommended) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash nvm install 20 nvm use 20 # Verify installation node --version ``` **Windows:** Download from [nodejs.org](https://nodejs.org/) or use winget: ```powershell winget install OpenJS.NodeJS.LTS ``` ### 3. CUDA Setup (GPU Support) ```bash # Check CUDA version nvidia-smi # Install CUDA Toolkit (if needed) # Download from: https://developer.nvidia.com/cuda-downloads # Install cuDNN sudo apt install libcudnn8 libcudnn8-dev # Verify CUDA python -c "import torch; print(torch.cuda.is_available())" ``` ### 4. Docker Installation (Optional) ```bash # Linux curl -fsSL https://get.docker.com | bash sudo usermod -aG docker $USER # macOS brew install --cask docker # Windows # Download Docker Desktop from https://docker.com ``` --- ## Installation Methods ### Method 1: Standard Installation ```bash # Clone repository git clone https://github.com/openclaw/stack-2.9.git cd stack-2.9 # Create virtual environment python -m venv .venv source .venv/bin/activate # Linux/macOS # or: .venv\Scripts\activate # Windows # Install Python dependencies pip install -r requirements.txt # Install Node.js dependencies (for voice features) npm install # Verify installation python stack.py --version ``` ### Method 2: Development Installation ```bash # Clone and setup git clone https://github.com/openclaw/stack-2.9.git cd stack-2.9 # Install in editable mode with dev dependencies pip install -e ".[dev]" # Install pre-commit hooks pre-commit install # Run tests to verify pytest ``` ### Method 3: Docker Installation ```bash # Build the image docker build -t stack-2.9 . # Run with GPU support (Linux) docker run --gpus all -p 3000:3000 \ -v $(pwd)/data:/app/data \ stack-2.9 # Run on macOS (uses Metal acceleration) docker run -p 3000:3000 \ -v $(pwd)/data:/app/data \ stack-2.9 ``` ### Method 4: Kubernetes Deployment ```yaml # stack-2.9-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: stack-2-9 spec: replicas: 2 selector: matchLabels: app: stack-2-9 template: metadata: labels: app: stack-2-9 spec: containers: - name: stack-2-9 image: stack-2.9:latest resources: limits: nvidia.com/gpu: 1 memory: 32Gi ports: - containerPort: 3000 env: - name: API_KEY valueFrom: secretKeyRef: name: stack-2-9-secrets key: api-key ``` --- ## Configuration ### Environment Variables Create a `.env` file in the project root: ```bash # API Configuration API_HOST=0.0.0.0 API_PORT=3000 API_KEY=your-secret-api-key-here # Model Configuration MODEL_NAME=qwen/qwen2.5-coder-32b CONTEXT_WINDOW=131072 QUANTIZATION=awq # GPU Configuration CUDA_VISIBLE_DEVICES=0 NUM_GPUS=1 # Self-Evolution ENABLE_SELF_EVOLUTION=true EVOLUTION_INTERVAL_HOURS=24 # Logging LOG_LEVEL=INFO LOG_FILE=stack-2.9.log # Database MEMORY_DB_PATH=./self_evolution/data/memory.db ``` ### Configuration File Create `config.yaml` for advanced configuration: ```yaml # Stack 2.9 Configuration server: host: 0.0.0.0 port: 3000 workers: 4 timeout: 300 model: name: qwen/qwen2.5-coder-32b device: cuda quantization: awq context_window: 131072 temperature: 0.7 max_tokens: 4096 tools: enabled: - file_operations - git_operations - shell_commands - api_calls - search - voice sandbox: enabled: true timeout: 30 self_evolution: enabled: true interval_hours: 24 min_success_for_pattern: 3 min_failure_for_pattern: 2 max_memories: 10000 memory: db_path: ./self_evolution/data/memory.db embedding_dim: 128 similarity_threshold: 0.3 rate_limiting: enabled: true requests_per_minute: 100 tokens_per_day: 100000 concurrent_requests: 5 logging: level: INFO file: stack-2.9.log format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ``` ### API Configuration #### Authentication ```bash # Generate API key openssl rand -hex 32 # Set in environment export API_KEY=your-generated-key ``` #### Rate Limiting | Tier | Requests/min | Tokens/day | Concurrent | |------|-------------|------------|------------| | Free | 100 | 100,000 | 5 | | Pro | 1,000 | 10,000,000 | 20 | | Enterprise | Custom | Custom | Custom | --- ## Docker Setup ### Building the Image ```bash # Build with GPU support docker build -t stack-2.9:gpu -f Dockerfile.gpu . # Build for CPU only docker build -t stack-2.9:cpu -f Dockerfile.cpu . ``` ### Running with Docker Compose ```yaml # docker-compose.yml version: '3.8' services: stack-2-9: build: . ports: - "3000:3000" environment: - API_KEY=${API_KEY} - MODEL_NAME=qwen/qwen2.5-coder-32b volumes: - ./data:/app/data - ./config.yaml:/app/config.yaml deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] redis: image: redis:7-alpine ports: - "6379:6379" volumes: - redis_data:/data volumes: redis_data: ``` ```bash # Start services docker-compose up -d # View logs docker-compose logs -f stack-2-9 ``` --- ## Development Setup ### Setting Up Development Environment ```bash # Clone repository git clone https://github.com/openclaw/stack-2.9.git cd stack-2.9 # Create virtual environment python -m venv .venv source .venv/bin/activate # Install with dev dependencies pip install -e ".[dev]" # Install pre-commit pre-commit install # Run pre-commit checks pre-commit run --all-files # Run tests pytest -v ``` ### IDE Setup **VS Code:** ```json // .vscode/settings.json { "python.defaultInterpreterPath": ".venv/bin/python", "python.linting.enabled": true, "python.linting.pylintEnabled": true, "python.formatting.provider": "black", "editor.formatOnSave": true, "files.exclude": { "**/__pycache__": true, "**/*.pyc": true } } ``` **PyCharm:** 1. Open Settings → Project → Python Interpreter 2. Add Interpreter → Existing Environment 3. Select `.venv/bin/python` 4. Enable Black for formatting ### Running Development Server ```bash # Start with auto-reload python -m stack_cli.dev # Or with debug mode DEBUG=1 python stack.py ``` --- ## Troubleshooting ### Common Issues #### 1. Import Errors **Problem:** `ModuleNotFoundError: No module named 'stack_cli'` **Solution:** ```bash # Reinstall in editable mode pip install -e . # Or add to PYTHONPATH export PYTHONPATH="${PYTHONPATH}:$(pwd)" ``` #### 2. CUDA/GPU Issues **Problem:** `CUDA out of memory` or `RuntimeError: CUDA not available` **Solutions:** ```bash # Check GPU availability python -c "import torch; print(torch.cuda.is_available())" # Clear GPU cache nvidia-smi --gpu-reset # Use smaller batch size python stack.py --batch-size 1 # Use quantization python stack.py --quantization awq ``` #### 3. Memory Issues **Problem:** `OutOfMemoryError` during inference **Solutions:** ```bash # Increase swap space (Linux) sudo fallocate -l 16G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # Use model quantization python stack.py --quantization 4bit # Reduce context window python stack.py --context-window 32768 ``` #### 4. Permission Issues (Linux) **Problem:** `Permission denied` errors **Solutions:** ```bash # Fix script permissions chmod +x stack.py install.sh setup.sh # Fix directory permissions chmod 755 self_evolution/data # Add user to docker group sudo usermod -aG docker $USER newgrp docker ``` #### 5. Node.js Issues **Problem:** `npm ERR!` during installation **Solutions:** ```bash # Clear npm cache npm cache clean --force # Install with legacy peer deps npm install --legacy-peer-deps # Use specific Node version nvm use 20 ``` #### 6. Port Already in Use **Problem:** `OSError: [Errno 98] Address already in use` **Solutions:** ```bash # Find process using port 3000 lsof -i :3000 # Kill the process kill -9 # Or use a different port python stack.py --port 3001 ``` ### Diagnostic Commands ```bash # Check system resources nvidia-smi free -h df -h # Check Python environment python --version pip list | grep -E "(torch|transformers|openai)" # Verify installation python -c "from stack_cli import cli; print('OK')" # Run diagnostics python scripts/diagnostics.py ``` ### Getting Help If you encounter issues not covered here: 1. **Check existing issues:** [GitHub Issues](https://github.com/openclaw/stack-2.9/issues) 2. **Ask in discussions:** [GitHub Discussions](https://github.com/openclaw/stack-2.9/discussions) 3. **Email support:** support@stack2.9.openclaw.org --- ## Next Steps - [API Documentation](API.md) - Integrate Stack 2.9 into your applications - [Architecture Guide](ARCHITECTURE.md) - Understand the technical internals - [Contributing Guide](CONTRIBUTING.md) - Help improve Stack 2.9