Infrastructure: - Created LXC 224 (openclaw-lxc) at 10.10.0.224 - 2 CPU cores, 4GB RAM, 32GB disk - Docker-in-LXC with AppArmor unconfined - OpenClaw installed via npm with MiniMax M2.1 and Discord integration Documentation: - productivity/openclaw/CONTEXT.md - Comprehensive technology overview - productivity/openclaw/troubleshooting.md - Complete troubleshooting guide - productivity/openclaw/README.md - Quick reference - productivity/openclaw/DEPLOYMENT_STATUS.md - Deployment checklist and status Configuration: - Added OpenClaw keywords to CLAUDE.md auto-loading rules - Updated server-configs/hosts.yml with openclaw host entry - Backed up LXC config to server-configs/proxmox/lxc/224.conf - Created .env.example template in server-configs/openclaw/ Status: Fully operational - Gateway accessible at http://10.10.0.224:18789 (SSH tunnel required) - Discord bot connected and online - MiniMax M2.1 model configured (200K context window) - Daemon running as systemd service Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
255 lines
7.1 KiB
Markdown
255 lines
7.1 KiB
Markdown
# OpenClaw Deployment Status
|
|
|
|
## Infrastructure Setup - COMPLETE
|
|
|
|
### LXC Container (224)
|
|
- **Status:** ✅ Created and running
|
|
- **Hostname:** openclaw-lxc
|
|
- **IP Address:** 10.10.0.224
|
|
- **Resources:** 2 cores, 4GB RAM, 32GB disk
|
|
- **OS:** Ubuntu 20.04
|
|
- **Docker:** Installed (version 28.1.1)
|
|
- **Docker Compose:** Installed (version 2.35.1)
|
|
|
|
### Configuration Files
|
|
- **Status:** ✅ Deployed to /opt/openclaw/
|
|
- **docker-compose.yml:** ✅ Created
|
|
- **openclaw.json:** ✅ Created (MiniMax + Discord config)
|
|
- **.env.example:** ✅ Created (template for secrets)
|
|
- **Directory structure:** ✅ Created (workspace/, logs/)
|
|
|
|
### AppArmor & Features
|
|
- **Status:** ✅ Configured
|
|
- **AppArmor profile:** unconfined (required for Docker-in-Docker)
|
|
- **Features:** nesting=1, keyctl=1 (enabled)
|
|
- **Container devices:** Allowed for Docker functionality
|
|
|
|
## Documentation - COMPLETE
|
|
|
|
### Technology Documentation
|
|
- **Status:** ✅ Created in /mnt/NV2/Development/claude-home/productivity/openclaw/
|
|
- **CONTEXT.md:** ✅ Comprehensive technology overview (architecture, operations, integrations)
|
|
- **troubleshooting.md:** ✅ Complete troubleshooting guide (startup, Discord, API, performance)
|
|
- **README.md:** ✅ Quick reference guide
|
|
|
|
### Infrastructure Integration
|
|
- **Status:** ✅ Updated
|
|
- **hosts.yml:** ✅ Added openclaw host entry
|
|
- **LXC config backup:** ✅ Saved to server-configs/proxmox/lxc/224.conf
|
|
- **CLAUDE.md:** ✅ Added OpenClaw keyword triggers to auto-loading rules
|
|
- **.env.example:** ✅ Created template in server-configs/openclaw/
|
|
|
|
## Next Steps (REQUIRES USER INPUT)
|
|
|
|
### 1. Obtain API Keys
|
|
You need to provide the following secrets:
|
|
|
|
**MiniMax API Key:**
|
|
- Sign up at: https://platform.minimax.io/
|
|
- Create an API key
|
|
- Key format: `sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
|
|
|
**Discord Bot Token:**
|
|
- Go to: https://discord.com/developers/applications
|
|
- Create new application: "OpenClaw - Cal's Assistant" (or preferred name)
|
|
- Bot tab → Add Bot
|
|
- Copy bot token
|
|
|
|
### 2. Configure Environment Variables
|
|
Once you have the keys:
|
|
|
|
```bash
|
|
# SSH to LXC
|
|
ssh root@10.10.0.224
|
|
|
|
# Create .env file from template
|
|
cd /opt/openclaw
|
|
cp .env.example .env
|
|
|
|
# Edit .env file and add your actual keys
|
|
nano .env
|
|
```
|
|
|
|
Add your keys:
|
|
```
|
|
MINIMAX_API_KEY=sk-your_actual_key_here
|
|
DISCORD_BOT_TOKEN=your_actual_discord_token_here
|
|
```
|
|
|
|
### 3. Enable Discord Bot Intents
|
|
**CRITICAL:** Must be done before starting the bot
|
|
|
|
1. Go to Discord Developer Portal
|
|
2. Select your application
|
|
3. Bot tab → Privileged Gateway Intents
|
|
4. Enable these two intents:
|
|
- ✅ **Message Content Intent** (REQUIRED - bot can't read messages without this)
|
|
- ✅ **Server Members Intent** (recommended for @mentions)
|
|
5. Save changes
|
|
|
|
### 4. Generate Discord Bot Invite URL
|
|
1. In Discord Developer Portal
|
|
2. OAuth2 → URL Generator
|
|
3. Select scopes:
|
|
- ✅ `bot`
|
|
- ✅ `applications.commands`
|
|
4. Select bot permissions:
|
|
- ✅ View Channels
|
|
- ✅ Send Messages
|
|
- ✅ Read Message History
|
|
- ✅ Embed Links
|
|
- ✅ Attach Files
|
|
- ✅ Add Reactions
|
|
5. Copy generated URL
|
|
|
|
### 5. Invite Bot to Discord Server
|
|
1. Open the generated invite URL
|
|
2. Select your Discord server
|
|
3. Authorize the bot
|
|
|
|
### 6. Start OpenClaw
|
|
```bash
|
|
ssh root@10.10.0.224
|
|
cd /opt/openclaw
|
|
docker compose up -d
|
|
```
|
|
|
|
### 7. Verify Deployment
|
|
```bash
|
|
# Check container status
|
|
docker compose ps
|
|
|
|
# View logs
|
|
docker compose logs -f openclaw-gateway
|
|
|
|
# Check health
|
|
docker compose exec openclaw-gateway openclaw doctor
|
|
|
|
# Verify Discord connection
|
|
docker compose exec openclaw-gateway openclaw channels status --probe
|
|
```
|
|
|
|
Expected in logs:
|
|
- "Configuration loaded"
|
|
- "Discord channel connected"
|
|
- "MiniMax provider initialized"
|
|
- NO errors about missing environment variables or intents
|
|
|
|
### 8. Test DM Pairing
|
|
1. Send DM to OpenClaw bot on Discord: "Hello"
|
|
2. Bot should respond with a pairing code
|
|
3. Approve pairing:
|
|
```bash
|
|
ssh root@10.10.0.224 'cd /opt/openclaw && docker compose exec openclaw-gateway openclaw pairing approve discord <code>'
|
|
```
|
|
4. Pairing confirmed message
|
|
5. Send another DM: "What's 2+2?"
|
|
6. Bot should respond with answer (verifies MiniMax API working)
|
|
|
|
## Success Criteria Checklist
|
|
|
|
Infrastructure:
|
|
- [x] LXC 224 created and running
|
|
- [x] Docker installed and configured
|
|
- [x] AppArmor profile set to unconfined
|
|
- [x] Nesting and keyctl features enabled
|
|
- [x] Directory structure created
|
|
- [x] Configuration files deployed
|
|
|
|
Documentation:
|
|
- [x] CONTEXT.md created
|
|
- [x] troubleshooting.md created
|
|
- [x] README.md created
|
|
- [x] Infrastructure inventory updated
|
|
- [x] CLAUDE.md loading rules updated
|
|
- [x] LXC config backed up
|
|
|
|
User Actions Required:
|
|
- [ ] MiniMax API key obtained
|
|
- [ ] Discord bot created
|
|
- [ ] Discord intents enabled (Message Content + Server Members)
|
|
- [ ] Bot invited to Discord server
|
|
- [ ] .env file created with actual secrets
|
|
- [ ] OpenClaw started with `docker compose up -d`
|
|
- [ ] Discord bot online in server
|
|
- [ ] DM pairing completed
|
|
- [ ] Test message successful
|
|
|
|
## Deployment Files Location
|
|
|
|
**On LXC 224 (10.10.0.224):**
|
|
```
|
|
/opt/openclaw/
|
|
├── docker-compose.yml
|
|
├── openclaw.json
|
|
├── .env.example
|
|
├── .env (YOU MUST CREATE THIS)
|
|
├── workspace/
|
|
└── logs/
|
|
```
|
|
|
|
**In Version Control:**
|
|
```
|
|
/mnt/NV2/Development/claude-home/
|
|
├── productivity/openclaw/
|
|
│ ├── CONTEXT.md
|
|
│ ├── troubleshooting.md
|
|
│ ├── README.md
|
|
│ └── DEPLOYMENT_STATUS.md (this file)
|
|
├── server-configs/
|
|
│ ├── hosts.yml (updated)
|
|
│ ├── proxmox/lxc/224.conf (backed up)
|
|
│ └── openclaw/docker-compose/openclaw/.env.example
|
|
└── CLAUDE.md (updated with OpenClaw keywords)
|
|
```
|
|
|
|
## Quick Reference Commands
|
|
|
|
```bash
|
|
# Start OpenClaw
|
|
ssh root@10.10.0.224 'cd /opt/openclaw && docker compose up -d'
|
|
|
|
# View logs
|
|
ssh root@10.10.0.224 'cd /opt/openclaw && docker compose logs -f'
|
|
|
|
# Stop OpenClaw
|
|
ssh root@10.10.0.224 'cd /opt/openclaw && docker compose down'
|
|
|
|
# Restart after config changes
|
|
ssh root@10.10.0.224 'cd /opt/openclaw && docker compose restart'
|
|
|
|
# Approve pairing
|
|
ssh root@10.10.0.224 'cd /opt/openclaw && docker compose exec openclaw-gateway openclaw pairing approve discord <code>'
|
|
|
|
# Health check
|
|
ssh root@10.10.0.224 'cd /opt/openclaw && docker compose exec openclaw-gateway openclaw doctor'
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
If you encounter any issues during deployment:
|
|
|
|
1. **Container won't start:** Check `docker compose logs` for errors
|
|
2. **Discord not connecting:** Verify bot token and intents enabled
|
|
3. **MiniMax API errors:** Verify API key format and validity
|
|
4. **Environment variables not working:** Ensure .env file exists in /opt/openclaw/
|
|
|
|
See [troubleshooting.md](./troubleshooting.md) for comprehensive solutions.
|
|
|
|
## Next Phase (After User Completes Setup)
|
|
|
|
Once you've completed the user actions and verified everything works:
|
|
|
|
1. Test various OpenClaw features (file operations, browser automation, etc.)
|
|
2. Configure guild/server channels if desired (optional)
|
|
3. Set up monitoring/alerts (optional)
|
|
4. Consider n8n integration for workflow automation (future)
|
|
5. Store learnings to MemoryGraph
|
|
|
|
---
|
|
|
|
**Deployment Date:** 2026-02-02
|
|
**Deployed By:** Claude Code
|
|
**LXC VMID:** 224
|
|
**Status:** Infrastructure complete, awaiting user secrets configuration
|