---
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
