claude-os/docs/SHARING.md
2025-10-27 17:41:44 -05:00

304 lines
7.1 KiB
Markdown

# 🚀 Sharing Claude OS with Your Team
This guide explains how to share Claude OS with coworkers so they can run it on their own machines.
## 📦 What Your Coworker Needs
### Prerequisites
1. **Docker Desktop** (includes Docker Compose)
- Mac: https://docs.docker.com/desktop/install/mac-install/
- Windows: https://docs.docker.com/desktop/install/windows-install/
- Linux: https://docs.docker.com/desktop/install/linux-install/
2. **Git** (to clone the repository)
- Mac: Pre-installed or via Homebrew: `brew install git`
- Windows: https://git-scm.com/download/win
- Linux: `sudo apt install git` or `sudo yum install git`
That's it! No Python, Node.js, or other dependencies needed - Docker handles everything.
---
## 🎯 Quick Start for Your Coworker
### Option 1: Share via Git Repository (Recommended)
**If you have a private Git repo:**
1. **Push your code to the repo:**
```bash
git add .
git commit -m "Add Claude OS RAG system"
git push origin main
```
2. **Share the repo URL with your coworker**
3. **Your coworker clones and runs:**
```bash
# Clone the repository
git clone <your-repo-url>
cd claude-os
# Start the system
docker compose up -d
# Pull Ollama models (one-time setup)
docker compose exec ollama ollama pull nomic-embed-text
docker compose exec ollama ollama pull llama3.1
```
4. **Access the UI:**
- Open browser: http://localhost:5173
- Done! 🎉
---
### Option 2: Share as ZIP File
**If you don't have a Git repo:**
1. **Create a ZIP of your project:**
```bash
cd /Users/iamanmp/Projects
zip -r claude-os.zip claude-os \
-x "claude-os/data/*" \
-x "claude-os/.git/*" \
-x "claude-os/__pycache__/*" \
-x "claude-os/**/__pycache__/*"
```
2. **Share `claude-os.zip` via:**
- Email (if < 25MB)
- Google Drive / Dropbox / OneDrive
- Slack / Teams file sharing
3. **Your coworker extracts and runs:**
```bash
# Extract the ZIP
unzip claude-os.zip
cd claude-os
# Start the system
docker compose up -d
# Pull Ollama models (one-time setup)
docker compose exec ollama ollama pull nomic-embed-text
docker compose exec ollama ollama pull llama3.1
```
---
## 🔧 What Gets Shared vs. What Doesn't
### ✅ Shared (in the repository/ZIP)
- **All source code** (`app/`, `mcp_server/`, `frontend/`, etc.)
- **Configuration files** (`docker-compose.yml`, `Dockerfile`, etc.)
- **Requirements** (`requirements.txt`, `package.json`)
### ❌ NOT Shared (stays local)
- **Ollama models** (~5GB) - Each person downloads their own
- **ChromaDB data** (knowledge bases) - Each person creates their own
- **Uploaded files** - Each person uploads their own documents
- **Docker volumes** - Created fresh on each machine
---
## 📊 Data Sharing Options
### If You Want to Share Knowledge Bases Too:
**Option A: Export/Import Knowledge Bases**
Currently, knowledge bases are stored in Docker volumes. To share them:
1. **Export ChromaDB data:**
```bash
# Create a backup directory
mkdir -p backups
# Copy ChromaDB data from Docker volume
docker compose cp chromadb:/chroma/chroma ./backups/chroma_data
```
2. **Share the backup:**
- Add `backups/` to your ZIP or Git repo
- Your coworker copies it to their ChromaDB volume:
```bash
docker compose up -d chromadb
docker compose cp ./backups/chroma_data chromadb:/chroma/chroma
docker compose restart chromadb app
```
**Option B: Share Original Documents**
Simpler approach:
1. Create a `shared_docs/` folder in the repo
2. Add your markdown/PDF files there
3. Your coworker uploads them via the UI or directory import
---
## 🌐 Network Sharing (Same Office/VPN)
If you want your coworker to access **your running instance** instead of running their own:
### 1. Find Your Local IP Address
**Mac/Linux:**
```bash
ifconfig | grep "inet " | grep -v 127.0.0.1
```
**Windows:**
```cmd
ipconfig
```
Look for something like `192.168.1.100`
### 2. Update docker-compose.yml
Change the ports to bind to all interfaces:
```yaml
services:
app:
ports:
- "0.0.0.0:8051:8051" # MCP Server
frontend:
ports:
- "0.0.0.0:5173:5173" # React UI
```
### 3. Restart the containers
```bash
docker compose down
docker compose up -d
```
### 4. Share the URL
Your coworker can access:
- **UI**: `http://<your-ip>:5173`
- **MCP**: `http://<your-ip>:8051/mcp`
**⚠️ Security Note:** This exposes your instance to your local network. Only do this on trusted networks (office LAN, VPN). For internet sharing, use a reverse proxy with authentication.
---
## 🔐 Security Considerations
### For Local Sharing (Same Machine)
- ✅ Safe - Everything runs locally
- ✅ No authentication needed
- ✅ Data stays on the machine
### For Network Sharing (Same Office/VPN)
- ⚠️ Use only on trusted networks
- ⚠️ No built-in authentication
- ⚠️ Anyone on the network can access
### For Internet Sharing
- ❌ **NOT RECOMMENDED** without additional security
- If needed, use:
- Reverse proxy (nginx, Caddy)
- Authentication (OAuth, basic auth)
- HTTPS/SSL certificates
- Firewall rules
---
## 🐛 Troubleshooting for Your Coworker
### "Docker command not found"
- Install Docker Desktop: https://www.docker.com/products/docker-desktop/
### "Port 5173 already in use"
- Another app is using that port
- Change ports in `docker-compose.yml`:
```yaml
frontend:
ports:
- "5174:5173" # Use 5174 instead
```
### "Ollama models not found"
- They forgot to pull the models:
```bash
docker compose exec ollama ollama pull nomic-embed-text
docker compose exec ollama ollama pull llama3.1
```
### "ChromaDB connection error"
- Wait 10 seconds for services to start
- Check status: `docker compose ps`
- Restart: `docker compose restart`
### "Out of disk space"
- Ollama models are ~5GB
- Docker images are ~2GB
- Free up space or use external drive
---
## 📝 Quick Reference Commands
```bash
# Start everything
docker compose up -d
# Stop everything
docker compose down
# View logs
docker compose logs -f app
# Restart a service
docker compose restart app
# Check status
docker compose ps
# Pull Ollama models
docker compose exec ollama ollama pull nomic-embed-text
docker compose exec ollama ollama pull llama3.1
# Access Ollama shell
docker compose exec ollama bash
```
---
## 🎓 What Your Coworker Should Know
1. **First startup takes 5-10 minutes** (downloading models)
2. **Subsequent startups take ~10 seconds**
3. **Each person has their own knowledge bases** (unless you share ChromaDB data)
4. **Models run locally** - no API keys or internet needed after setup
5. **Everything is containerized** - won't mess up their system
---
## 📞 Support
If your coworker has issues:
1. Check the troubleshooting section above
2. Run `docker compose logs -f` to see errors
3. Verify Docker Desktop is running
4. Try `docker compose down && docker compose up -d` (restart)
---
## 🚀 Next Steps
After your coworker gets it running:
1. Create a knowledge base
2. Upload some documents
3. Try the chat interface
4. Experiment with RAG strategies (Hybrid, Reranking, Agentic)
5. Connect Claude Desktop via MCP (optional)
Enjoy! 🎉