This guide walks you through setting up Mission Control for production use with proper configuration management.
NEVER commit sensitive data to the repository! This includes:
- IP addresses
- User paths
- Authentication tokens
- API keys
- Database credentials
All sensitive values go in .env.local (which is gitignored).
git clone https://github.com/yourusername/mission-control.git
cd mission-controlnpm installcp .env.example .env.localEdit .env.local with your configuration:
# Database
DATABASE_PATH=./mission-control.db
# OpenClaw Gateway
OPENCLAW_GATEWAY_URL=ws://127.0.0.1:18789
OPENCLAW_GATEWAY_TOKEN=your-token-here
# Workspace Paths
WORKSPACE_BASE_PATH=~/Documents/Shared
PROJECTS_PATH=~/Documents/Shared/projects
# API URL (auto-detected if not set)
MISSION_CONTROL_URL=http://localhost:4000npm run db:seedThis creates the database and seeds it with:
- the master agent
- Sample tasks
- Default business
npm run devVisit http://localhost:4000
Mission Control supports configuration via two methods:
Best for:
- Server-side configuration
- Deployment environments
- Team consistency
Variables in .env.local:
WORKSPACE_BASE_PATH=~/Documents/Shared
PROJECTS_PATH=~/Documents/Shared/projects
MISSION_CONTROL_URL=http://your-server-ip:4000
OPENCLAW_GATEWAY_URL=ws://127.0.0.1:18789Best for:
- User-specific preferences
- Quick adjustments
- Per-user customization
Access via: Settings button (top-right) or /settings
Settings stored in browser localStorage:
- Workspace base path
- Projects path
- Mission Control API URL
- Default project name
Priority: Environment variables override UI settings for server operations.
Mission Control organizes files in a structured workspace:
~/Documents/Shared/ # Base workspace
├── projects/ # All projects
│ ├── [PROJECT_NAME_1]/ # Individual project
│ │ ├── deliverables/ # Task deliverables
│ │ ├── docs/ # Project docs
│ │ └── README.md
│ └── [PROJECT_NAME_2]/
└── mission-control/ # Mission Control app
└── mission-control.db # Database
Via Environment Variables:
WORKSPACE_BASE_PATH=~/Documents/Shared
PROJECTS_PATH=~/Documents/Shared/projectsVia Settings UI:
- Click Settings (gear icon)
- Update "Workspace Base Path"
- Update "Projects Path"
- Click Save Changes
~expands to your home directory- Paths can be absolute:
/home/user/workspace - Paths can be relative:
./workspace
# .env.local
OPENCLAW_GATEWAY_URL=ws://127.0.0.1:18789No token required for local connections.
# .env.local
OPENCLAW_GATEWAY_URL=wss://your-machine.tail12345.ts.net
OPENCLAW_GATEWAY_TOKEN=$(openssl rand -hex 32)Generate a secure token:
openssl rand -hex 32Copy this token to both:
- Mission Control's
.env.local - OpenClaw's gateway configuration
npm run build
npm startCreate .env.production.local:
NODE_ENV=production
DATABASE_PATH=/var/lib/mission-control/mission-control.db
WORKSPACE_BASE_PATH=/var/lib/mission-control/workspace
PROJECTS_PATH=/var/lib/mission-control/workspace/projects
MISSION_CONTROL_URL=https://mission-control.yourdomain.com
OPENCLAW_GATEWAY_URL=wss://gateway.yourdomain.com
OPENCLAW_GATEWAY_TOKEN=your-production-token# Backup database
cp mission-control.db mission-control.backup.$(date +%Y%m%d).db
# Restore from backup
cp mission-control.backup.20250131.db mission-control.db# Check environment variables
cat .env.local
# Verify database
ls -la mission-control.db- Start OpenClaw Gateway:
openclaw gateway - Open Mission Control:
http://localhost:4000 - Check status indicator (top-right): Should show ONLINE (green)
- Create a task
- Assign it to an agent
- Drag to "In Progress"
- Watch it update in real-time (no refresh needed)
✅ Task cards should move between columns instantly
- Open a task with deliverables
- Click the arrow (→) button next to a file deliverable
- File path should copy to clipboard
Symptom: Task cards don't move when status changes
Solutions:
- Check browser console for SSE errors
- Verify SSE endpoint:
/api/events/stream - Clear browser cache
- Restart dev server
Symptom: Status shows OFFLINE
Solutions:
- Verify Gateway is running:
openclaw gateway status - Check
OPENCLAW_GATEWAY_URLin.env.local - For remote: Verify
OPENCLAW_GATEWAY_TOKENmatches - Test WebSocket connection:
wscat -c ws://127.0.0.1:18789
Symptom: Arrow button does nothing
Solutions:
- Check browser clipboard permissions
- Look for console errors
- Try on a task with a file deliverable (not URL)
Symptom: Paths still reference wrong user
Solution: All hardcoded paths have been removed! If you find any:
- File a bug report
- Use
getWorkspaceBasePath()orgetProjectsPath()from@/lib/config
| Variable | Default | Description |
|---|---|---|
DATABASE_PATH |
./mission-control.db |
SQLite database file path |
WORKSPACE_BASE_PATH |
~/Documents/Shared |
Base directory for workspace |
PROJECTS_PATH |
~/Documents/Shared/projects |
Directory for project folders |
MISSION_CONTROL_URL |
Auto-detected | API URL for agent orchestration |
OPENCLAW_GATEWAY_URL |
ws://127.0.0.1:18789 |
Gateway WebSocket URL |
OPENCLAW_GATEWAY_TOKEN |
(empty) | Authentication token |
| Setting | Description |
|---|---|
| Workspace Base Path | Root directory for all Mission Control files |
| Projects Path | Where individual project folders are created |
| Default Project Name | Template name for new projects |
| Mission Control URL | API endpoint (usually auto-detected) |
- ✅ Configure
.env.local - ✅ Run database seed
- ✅ Start dev server
- ✅ Test real-time updates
- ✅ Configure workspace paths
- 🚀 Create your first agent!
- Agent Protocol Documentation
- Real-Time Implementation
- the orchestrator Orchestration Guide
- Verification Checklist
Questions? File an issue or check the documentation in /docs.