openclaw/docs/moltmates/setup.md
Robby 7f24653e0a docs: add comprehensive Moltmates documentation section
- Landing page with overview and comparison
- Extensive FAQ (60+ questions)
- Step-by-step setup guide
- Security documentation
- Personas customization guide
2026-01-28 12:59:38 +00:00

398 lines
6.5 KiB
Markdown

---
summary: "Moltmates Setup Guide - Step by step installation"
read_when:
- Installing Moltmates for the first time
- Setting up multi-user deployment
---
# 🛠️ Moltmates Setup Guide
> Complete step-by-step installation for Moltmates multi-user deployment.
---
## Prerequisites
### System Requirements
| Component | Minimum | Recommended |
|-----------|---------|-------------|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8+ GB |
| Disk | 20 GB | 50+ GB SSD |
| OS | Linux (Debian/Ubuntu) | Ubuntu 22.04+ |
### Software Requirements
```bash
# Node.js ≥22
node --version # Should be 22.x+
# Docker
docker --version # Should be 20.x+
# pnpm (recommended)
pnpm --version # Or npm/bun
```
### Install Prerequisites (Ubuntu/Debian)
```bash
# Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
# Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Log out and back in
# pnpm
npm install -g pnpm
```
---
## Step 1: Clone Repository
```bash
cd ~
git clone https://github.com/YOUR_FORK/moltmates
cd moltmates
```
Or if forking from upstream:
```bash
git clone https://github.com/moltbot/moltbot moltmates
cd moltmates
```
---
## Step 2: Install Dependencies
```bash
pnpm install
```
This installs all Node.js dependencies.
---
## Step 3: Build Moltmates
```bash
pnpm build
```
Creates the `dist/` directory with compiled code.
---
## Step 4: Build Sandbox Image
The Docker sandbox isolates user agents:
```bash
docker build -f Dockerfile.sandbox -t moltmate-sandbox:bookworm-slim .
```
### Verify image:
```bash
docker images | grep moltmate-sandbox
# Should show: moltmate-sandbox bookworm-slim ...
```
### Customize sandbox (optional):
Edit `Dockerfile.sandbox` to add tools:
```dockerfile
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y \
poppler-utils \
imagemagick \
ffmpeg \
# Add more packages here
&& rm -rf /var/lib/apt/lists/*
```
Rebuild after changes:
```bash
docker build -f Dockerfile.sandbox -t moltmate-sandbox:bookworm-slim .
```
---
## Step 5: Create Configuration
```bash
# Create config directory
mkdir -p ~/.moltmate
# Copy example config
cp moltmate.example.json ~/.moltmate/moltmate.json
# Edit config
nano ~/.moltmate/moltmate.json
```
### Minimal Configuration
```json
{
"gateway": {
"port": 18790,
"bind": "127.0.0.1"
},
"agents": {
"main": {
"model": "anthropic/claude-sonnet-4-5",
"provider": "anthropic"
}
},
"providers": {
"anthropic": {
"apiKey": "${ANTHROPIC_API_KEY}"
}
},
"channels": {
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "allowlist",
"allowFrom": ["YOUR_TELEGRAM_ID"]
}
},
"sandbox": {
"mode": "all",
"scope": "session",
"workspaceAccess": "rw"
},
"tools": {
"allow": ["read", "write", "edit", "exec", "web_search", "web_fetch"],
"exec": {
"security": "allowlist",
"safeBins": ["cat", "head", "tail", "grep", "wc", "ls"]
}
}
}
```
### Environment Variables
Create `.env` file or export:
```bash
export ANTHROPIC_API_KEY="sk-ant-..."
export TELEGRAM_BOT_TOKEN="123456:ABC..."
```
---
## Step 6: Create Telegram Bot
1. Message [@BotFather](https://t.me/BotFather) on Telegram
2. Send `/newbot`
3. Choose name and username
4. Copy the token (looks like `123456789:ABCdefGHI...`)
5. Add to config as `TELEGRAM_BOT_TOKEN`
### Get Your Telegram ID
1. Message [@userinfobot](https://t.me/userinfobot)
2. Copy your numeric ID
3. Add to `allowFrom` array
---
## Step 7: Test Run
```bash
# Development mode (foreground)
pnpm dev
```
You should see:
```
Gateway starting on 127.0.0.1:18790
Telegram connected
Ready for messages
```
Test by messaging your bot on Telegram!
---
## Step 8: Production Setup (systemd)
### Create Service File
```bash
sudo nano /etc/systemd/system/moltmate.service
```
```ini
[Unit]
Description=Moltmates Gateway
After=network.target docker.service
Requires=docker.service
[Service]
Type=simple
User=root
WorkingDirectory=/root/moltmates
Environment=NODE_ENV=production
Environment=ANTHROPIC_API_KEY=sk-ant-...
Environment=TELEGRAM_BOT_TOKEN=123456:ABC...
ExecStart=/usr/bin/node dist/cli.js gateway
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
```
### Enable & Start
```bash
sudo systemctl daemon-reload
sudo systemctl enable moltmate
sudo systemctl start moltmate
# Check status
sudo systemctl status moltmate
# View logs
sudo journalctl -u moltmate -f
```
---
## Step 9: Add Users
### Add to Allowlist
Edit config to add user IDs:
```json
"channels": {
"telegram": {
"allowFrom": [
"YOUR_ID",
"FRIEND_ID",
"FAMILY_ID"
]
}
}
```
### Restart to Apply
```bash
sudo systemctl restart moltmate
```
### Verify User Workspaces
After users message the bot:
```bash
ls ~/.moltmate/users/
# Should show: telegram_123456 telegram_789012 etc.
```
---
## Step 10: Customize Personas (Optional)
### Edit Persona Templates
```bash
# Cami persona
nano /root/moltmates/templates/souls/cami.md
# Molty persona
nano /root/moltmates/templates/souls/molty.md
# Custom template
nano /root/moltmates/templates/souls/custom.md
```
### Rebuild After Changes
```bash
cd /root/moltmates
pnpm build
sudo systemctl restart moltmate
```
---
## Verification Checklist
- [ ] Node.js ≥22 installed
- [ ] Docker running
- [ ] Sandbox image built
- [ ] Config file created
- [ ] API keys set
- [ ] Telegram bot created
- [ ] Your ID in allowFrom
- [ ] Gateway starts without errors
- [ ] Bot responds to messages
- [ ] User workspace created in `~/.moltmate/users/`
---
## Next Steps
- [Add more users](/moltmates/faq#how-do-i-add-a-new-user)
- [Customize personas](/moltmates/personas)
- [Configure security](/moltmates/security)
- [Set up skills](/moltmates/skills)
---
## Troubleshooting
### Gateway won't start
```bash
# Check logs
journalctl -u moltmate -n 50
# Common issues:
# - Port already in use: change gateway.port
# - Invalid config: validate JSON
# - Missing env vars: check ANTHROPIC_API_KEY, etc.
```
### Docker sandbox fails
```bash
# Check Docker is running
docker ps
# Rebuild image
docker build -f Dockerfile.sandbox -t moltmate-sandbox:bookworm-slim .
# Check for orphan containers
docker ps -a | grep moltmate
```
### Bot doesn't respond
1. Verify bot token is correct
2. Check user ID is in allowFrom
3. Verify gateway is running
4. Check logs for errors
---
**Setup complete! 🎉**
Your Moltmates server is now ready to serve multiple users with isolated AI assistants.