Add cross-platform setup guide and context recovery for Mac/Windows/Linux
This commit is contained in:
486
NEW_MACHINE_SETUP.md
Normal file
486
NEW_MACHINE_SETUP.md
Normal file
@@ -0,0 +1,486 @@
|
|||||||
|
# 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
|
||||||
Reference in New Issue
Block a user