# New Machine Setup - Complete ClaudeTools Clone (Cross-Platform) This guide will help you set up a complete, identical ClaudeTools environment on a new machine (Windows or Mac). **Platform-Specific Notes:** - Windows commands shown as: `Windows> command` - Mac/Linux commands shown as: `Mac> command` - When only one command shown, it works on both platforms --- ## Prerequisites **Required Software (All Platforms):** - Git (for cloning repository) - Python 3.9+ (for ClaudeTools API) - Node.js/npm (for MCP servers) - Claude Code CLI installed - SSH client (built-in on Mac/Linux, use Git Bash or OpenSSH on Windows) **Installation:** ```bash # Mac (using Homebrew) Mac> brew install git python node # Windows (using winget or Chocolatey) Windows> winget install Git.Git Python.Python.3.11 OpenJS.NodeJS # OR Windows> choco install git python nodejs ``` --- ## Step 1: Clone Repository from Gitea **Choose Your Project Location:** ```bash # Windows Windows> cd D:\ Windows> git clone ssh://azcomputerguru@172.16.3.20:2222/azcomputerguru/claudetools.git ClaudeTools Windows> cd ClaudeTools # Mac Mac> cd ~/Projects # or wherever you want it Mac> git clone ssh://azcomputerguru@172.16.3.20:2222/azcomputerguru/claudetools.git ClaudeTools Mac> cd ClaudeTools ``` **Note:** You'll need SSH access to the Gitea server (172.16.3.20:2222) **For This Guide:** - Windows path: `D:\ClaudeTools` - Mac path: `~/Projects/ClaudeTools` (adjust as needed) --- ## Step 2: Set Up Python Virtual Environment ```bash # Create virtual environment (both platforms) python -m venv api/venv # Activate virtual environment Windows> api\venv\Scripts\activate Mac> source api/venv/bin/activate # Install Python dependencies (both platforms, once activated) pip install -r requirements.txt # Install development dependencies (if needed) pip install -r requirements-dev.txt ``` **Verify Activation:** ```bash # You should see (venv) in your prompt # Check Python location: Windows> where python Mac> which python # Should show path inside api/venv/ ``` --- ## Step 3: Configure Environment Variables **Copy Environment Template:** ```bash Windows> copy .env.example .env Mac> cp .env.example .env ``` **Edit .env:** ```bash Windows> notepad .env Mac> nano .env # or vim .env, or use VS Code: code .env ``` **Required Variables in .env:** ```ini # Database Configuration DATABASE_URL=mysql+pymysql://claudetools:CT_e8fcd5a3952030a79ed6debae6c954ed@172.16.3.30:3306/claudetools?charset=utf8mb4 # JWT Configuration JWT_SECRET_KEY=your-jwt-secret-key-here JWT_ALGORITHM=HS256 JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30 # Encryption Configuration ENCRYPTION_KEY=your-fernet-encryption-key-here # API Configuration API_HOST=0.0.0.0 API_PORT=8000 ``` **Get actual values from credentials.md in the repository!** --- ## Step 4: Set Up MCP Servers The `.mcp.json` file needs platform-specific paths. **Windows - Edit `.mcp.json`:** ```json { "mcpServers": { "github": { "command": "cmd", "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "" } }, "filesystem": { "command": "cmd", "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-filesystem", "D:\\ClaudeTools"] }, "sequential-thinking": { "command": "cmd", "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-sequential-thinking"] } } } ``` **Mac - Edit `.mcp.json`:** ```json { "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "" } }, "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourusername/Projects/ClaudeTools"] }, "sequential-thinking": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"] } } } ``` **Important for Mac:** Update the filesystem path to match your actual ClaudeTools location! **Verify npm is installed:** ```bash npm --version # Should show version number (18.0.0 or higher) ``` **MCP servers will auto-install on first use via npx** --- ## Step 5: Test Database Connection ```bash # Activate venv if not already active Windows> api\venv\Scripts\activate Mac> source api/venv/bin/activate # Test database connection (both platforms) python test_db_connection.py ``` **Expected output:** Connection successful to 172.16.3.30:3306/claudetools **Note:** Ensure you have network access to 172.16.3.30:3306 (MariaDB server) --- ## Step 6: Run Database Migrations (if needed) ```bash # Check current migration status (both platforms) alembic current # Upgrade to latest (if needed) alembic upgrade head ``` --- ## Step 7: Test API Server ```bash # Activate venv first Windows> api\venv\Scripts\activate Mac> source api/venv/bin/activate # Start the API server (both platforms) python -m api.main # Or use uvicorn directly uvicorn api.main:app --reload --host 0.0.0.0 --port 8000 ``` **Test endpoints:** - Local: http://localhost:8000/api/docs - Network: http://172.16.3.30:8001/api/docs (if running on RMM server) **Stop Server:** Press Ctrl+C --- ## Step 8: Configure SSH Keys for Infrastructure **Generate SSH Key (if you don't have one):** ```bash # Both platforms ssh-keygen -t ed25519 -C "your_email@example.com" # Press Enter to accept default location # Enter passphrase (optional but recommended) ``` **For AD2 (Windows Server):** - Host: 192.168.0.6 - User: INTRANET\sysadmin - Password: See credentials.md - Note: Password authentication (SSH keys not typically used with Windows domain accounts) **For D2TESTNAS (Linux NAS):** ```bash # Copy your SSH key to the NAS ssh-copy-id root@192.168.0.9 # Test connection (both platforms) ssh root@192.168.0.9 "ls /data/test/COMMON/ProdSW/" ``` **For Gitea Server:** ```bash # Test Gitea SSH access (both platforms) ssh -p 2222 azcomputerguru@172.16.3.20 # Should show Gitea greeting, then disconnect ``` **Mac-Specific SSH Notes:** - Keys stored in: `~/.ssh/` - Config file: `~/.ssh/config` - Permissions must be correct: `chmod 600 ~/.ssh/id_ed25519` **Windows-Specific SSH Notes:** - Keys stored in: `C:\Users\YourName\.ssh\` - Use Git Bash or PowerShell for SSH commands - OpenSSH should be installed (Windows 10+) --- ## Step 9: Update File Paths in Context Recovery Prompt The context recovery prompt has Windows paths. Update them for your platform: **For Mac, change:** - `D:\ClaudeTools` → `/Users/yourusername/Projects/ClaudeTools` - Or use relative paths (just `PROJECT_ORGANIZATION.md` instead of full path) **Context Recovery Prompt (Platform-Agnostic Version):** See `CONTEXT_RECOVERY_PROMPT.md` in the repository. When pasting to Claude Code, use paths appropriate for your platform: ``` Working directory: D:\ClaudeTools (Windows) Working directory: ~/Projects/ClaudeTools (Mac) ``` --- ## Step 10: Restore Full Context in Claude Code Open Claude Code in your ClaudeTools directory: ```bash Windows> cd D:\ClaudeTools Mac> cd ~/Projects/ClaudeTools ``` **Then paste the context recovery prompt from `CONTEXT_RECOVERY_PROMPT.md`** The prompt will tell Claude to read all necessary files and restore full context including: - Project states (DOS, API, clients) - Credentials and infrastructure access - Organization system - MCP servers, commands, and skills --- ## Step 11: Verify Everything Works **Test Checklist:** - [ ] Python venv activates - [ ] Database connection successful (172.16.3.30:3306) - [ ] API server starts and responds (http://localhost:8000/api/docs) - [ ] SSH to D2TESTNAS works (ssh root@192.168.0.9) - [ ] SSH to Gitea works (ssh -p 2222 azcomputerguru@172.16.3.20) - [ ] Claude Code loads in ClaudeTools directory - [ ] MCP servers load (check Claude Code startup messages) - [ ] Context recovery prompt works - [ ] Available commands show: /save, /context, /checkpoint, etc. - [ ] Git push to Gitea works --- ## Platform-Specific Quick Reference ### Windows **Start API:** ```bash cd D:\ClaudeTools api\venv\Scripts\activate python -m api.main ``` **File Paths:** - Project root: `D:\ClaudeTools` - Venv: `D:\ClaudeTools\api\venv` - Credentials: `D:\ClaudeTools\credentials.md` **Deploy to DOS:** ```bash scp file.BAT root@192.168.0.9:/data/test/COMMON/ProdSW/ ``` ### Mac **Start API:** ```bash cd ~/Projects/ClaudeTools source api/venv/bin/activate python -m api.main ``` **File Paths:** - Project root: `~/Projects/ClaudeTools` - Venv: `~/Projects/ClaudeTools/api/venv` - Credentials: `~/Projects/ClaudeTools/credentials.md` **Deploy to DOS:** ```bash scp file.BAT root@192.168.0.9:/data/test/COMMON/ProdSW/ ``` --- ## Cross-Platform Notes **What's the Same:** - Git commands (clone, commit, push, pull) - Python/pip commands (once venv activated) - SSH commands (ssh, scp) - Database access (same connection string) - API endpoints (same URLs) - File organization structure **What's Different:** - Path separators: `\` (Windows) vs `/` (Mac/Linux) - Venv activation: `Scripts\activate` vs `bin/activate` - File copy: `copy` vs `cp` - Text editors: `notepad` vs `nano/vim` - MCP .mcp.json: `cmd /c npx` vs just `npx` - Absolute paths: `D:\` vs `/Users/` or `~` --- ## Troubleshooting **MCP servers not loading:** - Restart Claude Code completely - Check npm is installed: `npm --version` - Check .mcp.json is valid JSON - **Mac:** Verify paths use forward slashes: `/Users/...` - **Windows:** Verify paths use double backslashes: `D:\\...` **Database connection fails:** - Verify network access to 172.16.3.30:3306 - **Mac:** Check firewall settings (System Preferences → Security) - **Windows:** Check Windows Firewall - Test with: `python test_db_connection.py` **SSH keys not working:** ```bash # Mac: Fix permissions chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519 chmod 644 ~/.ssh/id_ed25519.pub # Windows: Use Git Bash for SSH operations # Or ensure OpenSSH is installed and running ``` **API won't start:** ```bash # Check port 8000 not in use Windows> netstat -ano | findstr :8000 Mac> lsof -i :8000 # Verify venv is activated (should see (venv) in prompt) # Check all dependencies: pip list ``` **Git push fails:** ```bash # Ensure SSH key is added to Gitea # Test connection: ssh -p 2222 azcomputerguru@172.16.3.20 # Check remote URL: git remote -v ``` --- ## What You Now Have (All Platforms) **Complete Environment:** - ✅ All project files organized by project/client - ✅ Full git history from Gitea - ✅ Python API environment configured - ✅ MCP servers ready to use - ✅ SSH access to infrastructure (D2TESTNAS, Gitea) - ✅ Database connection to MariaDB (172.16.3.30) - ✅ All credentials and context - ✅ All commands and skills available **Full Context:** - ✅ Dataforth DOS project status and history - ✅ ClaudeTools API development history - ✅ Client history (Horseshoe Management) - ✅ Infrastructure access details - ✅ Recent work and decisions **Works On:** - ✅ Windows 10/11 - ✅ macOS (Intel and Apple Silicon) - ✅ Linux (Ubuntu, Debian, etc.) --- ## Next Steps After Setup 1. **Test DOS deployment on TS-4R** (pending from last session) 2. **Continue API development** (Phase 5 complete, optional Phase 7 available) 3. **Handle client support requests** (Horseshoe Management, etc.) All work will automatically be organized into correct project/client folders and synced back to Gitea. --- **Setup Complete!** You now have an identical ClaudeTools environment on your new machine, whether it's Windows, Mac, or Linux. --- **Last Updated:** 2026-01-20 **File Location:** NEW_MACHINE_SETUP.md (in Gitea repository) **Platforms:** Windows, macOS, Linux