All checks were successful
Reindex Knowledge Base / reindex (push) Successful in 3s
Adds title, description, type, domain, and tags frontmatter to every doc for improved KB semantic search. The description field is prepended to every search chunk, and domain/type/tags enable filtered queries. Type values: context, guide, runbook, reference, troubleshooting Domain values match directory structure (networking, docker, etc.) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
263 lines
7.5 KiB
Markdown
263 lines
7.5 KiB
Markdown
---
|
|
title: "OpenClaw Deployment Status"
|
|
description: "Deployment checklist and status for OpenClaw on LXC 224. Tracks infrastructure setup completion, required user actions (API keys, Discord bot setup, intents), verification steps, and file locations."
|
|
type: runbook
|
|
domain: productivity
|
|
tags: [openclaw, deployment, lxc, docker, discord, minimax, checklist]
|
|
---
|
|
|
|
# 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
|