345 lines
8.3 KiB
Markdown
345 lines
8.3 KiB
Markdown
# OpenClaw AI Assistant Installation Guide
|
|
|
|
## Overview
|
|
|
|
OpenClaw is a powerful AI assistant tool that provides a WebSocket gateway for AI interactions with support for multiple channels (Discord, Slack, etc.) and advanced features like browser control, voice commands, and device pairing.
|
|
|
|
**Installation Date:** February 16, 2026
|
|
**OpenClaw Version:** 2026.2.15 (dc9808a)
|
|
**Host:** seattle (100.82.197.124)
|
|
**Installation Location:** `/root/openclaw`
|
|
|
|
## 🚀 Quick Access
|
|
|
|
- **Tailscale HTTPS URL:** https://seattle.tail.vish.gg/
|
|
- **Local Access:** http://127.0.0.1:18789/
|
|
- **WebSocket:** wss://seattle.tail.vish.gg (via Tailscale)
|
|
|
|
## 📋 Prerequisites
|
|
|
|
### System Requirements
|
|
- **Node.js:** v22+ (installed v22.22.0)
|
|
- **Package Manager:** pnpm (installed globally)
|
|
- **Operating System:** Linux (Ubuntu/Debian)
|
|
- **Network:** Tailscale for secure remote access
|
|
|
|
### Dependencies Installed
|
|
- Node.js upgraded from v20.20.0 to v22.22.0
|
|
- pnpm package manager
|
|
- 1003+ npm packages for OpenClaw functionality
|
|
|
|
## 🔧 Installation Steps
|
|
|
|
### 1. System Preparation
|
|
```bash
|
|
# Update system
|
|
sudo apt update && sudo apt upgrade -y
|
|
|
|
# Install Node.js v22
|
|
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
|
|
sudo apt-get install -y nodejs
|
|
|
|
# Install pnpm globally
|
|
npm install -g pnpm
|
|
|
|
# Verify versions
|
|
node --version # Should be v22.22.0+
|
|
pnpm --version
|
|
```
|
|
|
|
### 2. Clone and Build OpenClaw
|
|
```bash
|
|
# Clone the repository
|
|
cd /root
|
|
git clone https://github.com/openclaw/openclaw.git
|
|
cd openclaw
|
|
|
|
# Install dependencies
|
|
pnpm install
|
|
|
|
# Build the project
|
|
pnpm build
|
|
```
|
|
|
|
### 3. Initial Setup
|
|
```bash
|
|
# Run setup command to create configuration
|
|
pnpm openclaw setup
|
|
|
|
# This creates configuration files in ~/.openclaw/
|
|
```
|
|
|
|
### 4. Network Configuration
|
|
|
|
#### UFW Firewall Rules
|
|
```bash
|
|
# Allow OpenClaw access from Tailscale network
|
|
sudo ufw allow from 100.64.0.0/10 to any port 18789 comment "OpenClaw - Tailscale only"
|
|
|
|
# Verify rule was added
|
|
sudo ufw status verbose
|
|
```
|
|
|
|
#### Tailscale Configuration
|
|
```bash
|
|
# Verify Tailscale is running
|
|
tailscale status
|
|
|
|
# Get this machine's Tailscale IP
|
|
tailscale ip -4
|
|
```
|
|
|
|
## 🚀 Running OpenClaw
|
|
|
|
### Production Mode (Recommended)
|
|
```bash
|
|
cd /root/openclaw
|
|
|
|
# Start with Tailscale serve for HTTPS access
|
|
pnpm openclaw gateway --port 18789 --bind loopback --tailscale serve --verbose --allow-unconfigured &
|
|
```
|
|
|
|
### Development Mode
|
|
```bash
|
|
# Start in foreground for debugging
|
|
pnpm openclaw gateway --port 18789 --bind loopback --verbose --allow-unconfigured
|
|
```
|
|
|
|
### Service Management
|
|
```bash
|
|
# Check status
|
|
pnpm openclaw status
|
|
|
|
# View logs
|
|
pnpm openclaw logs --follow
|
|
|
|
# Stop gateway
|
|
kill %1 # If running in background
|
|
```
|
|
|
|
## 🌐 Access Methods
|
|
|
|
### 1. Tailscale HTTPS (Recommended)
|
|
- **URL:** https://seattle.tail.vish.gg/
|
|
- **Features:** Full WebSocket support, secure HTTPS
|
|
- **Requirements:** Must be connected to the same Tailscale network
|
|
- **First-time setup:** Requires device pairing (see Device Pairing section below)
|
|
|
|
### 2. Local Access
|
|
- **URL:** http://127.0.0.1:18789/
|
|
- **Features:** Full functionality when accessed locally
|
|
- **Limitations:** Only accessible from the host machine
|
|
|
|
### 3. Direct IP Access
|
|
- **URL:** http://100.82.197.124:18789/
|
|
- **Features:** Basic HTTP interface
|
|
- **Limitations:** WebSocket connections require HTTPS (use Tailscale instead)
|
|
|
|
## 🔗 Device Pairing
|
|
|
|
OpenClaw requires device pairing for security. When you first visit the web interface, you'll see "disconnected (1008): pairing required".
|
|
|
|
### Pairing Process
|
|
|
|
1. **Visit the web interface** from your device (triggers pairing request)
|
|
2. **On the server, list pending requests:**
|
|
```bash
|
|
cd /root/openclaw
|
|
pnpm openclaw devices list
|
|
```
|
|
|
|
3. **Approve the pairing request:**
|
|
```bash
|
|
pnpm openclaw devices approve <request-id>
|
|
```
|
|
|
|
4. **Refresh your browser** - the interface should now work
|
|
|
|
### Device Management Commands
|
|
```bash
|
|
# List all devices (pending and paired)
|
|
pnpm openclaw devices list
|
|
|
|
# Approve a pending device
|
|
pnpm openclaw devices approve <request-id>
|
|
|
|
# Reject a pending device
|
|
pnpm openclaw devices reject <request-id>
|
|
|
|
# Revoke access for a paired device
|
|
pnpm openclaw devices revoke <device-id> <role>
|
|
```
|
|
|
|
## ⚙️ Configuration
|
|
|
|
### Configuration Files Location
|
|
```
|
|
~/.openclaw/
|
|
├── config.json # Main configuration
|
|
├── credentials.json # API keys and tokens
|
|
└── sessions/ # Session data
|
|
```
|
|
|
|
### Key Configuration Options
|
|
```json
|
|
{
|
|
"gateway": {
|
|
"mode": "local",
|
|
"bind": "loopback",
|
|
"port": 18789
|
|
},
|
|
"agent": {
|
|
"model": "anthropic/claude-opus-4-6",
|
|
"context": "200k"
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🔐 Security Considerations
|
|
|
|
### Firewall Configuration
|
|
- Port 18789 is restricted to Tailscale network (100.64.0.0/10)
|
|
- No public internet access to OpenClaw gateway
|
|
- HTTPS enforced for WebSocket connections
|
|
|
|
### Authentication
|
|
- Control UI requires HTTPS or localhost access
|
|
- Tailscale provides secure tunnel with automatic certificates
|
|
- No additional authentication configured (uses --allow-unconfigured)
|
|
|
|
### Network Security
|
|
- Tailscale serve mode provides automatic HTTPS certificates
|
|
- All traffic encrypted via Tailscale's WireGuard protocol
|
|
- Access limited to authorized Tailscale devices
|
|
|
|
## 🛠️ Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
#### 1. Device Pairing Required
|
|
**Symptom:** "disconnected (1008): pairing required"
|
|
**Solution:**
|
|
1. Visit the web interface to trigger pairing request
|
|
2. Run `pnpm openclaw devices list` on the server
|
|
3. Approve the request with `pnpm openclaw devices approve <request-id>`
|
|
4. Refresh your browser
|
|
|
|
#### 2. WebSocket Connection Failures
|
|
**Symptom:** "control ui requires HTTPS or localhost (secure context)"
|
|
**Solution:** Use Tailscale HTTPS URL instead of direct IP access
|
|
|
|
#### 3. Port Already in Use
|
|
```bash
|
|
# Kill existing process
|
|
pnpm openclaw gateway --force --port 18789
|
|
|
|
# Or find and kill manually
|
|
lsof -ti:18789 | xargs kill -9
|
|
```
|
|
|
|
#### 3. Node.js Version Issues
|
|
```bash
|
|
# Verify Node.js version
|
|
node --version
|
|
|
|
# Should be v22.22.0 or higher
|
|
# If not, reinstall Node.js v22
|
|
```
|
|
|
|
#### 4. Tailscale Serve Not Working
|
|
```bash
|
|
# Check Tailscale status
|
|
tailscale status
|
|
|
|
# Restart Tailscale if needed
|
|
sudo systemctl restart tailscaled
|
|
|
|
# Verify serve configuration
|
|
tailscale serve status
|
|
```
|
|
|
|
### Log Files
|
|
```bash
|
|
# OpenClaw logs
|
|
tail -f /tmp/openclaw/openclaw-2026-02-16.log
|
|
|
|
# System logs
|
|
journalctl -u tailscaled -f
|
|
```
|
|
|
|
## 📊 System Status
|
|
|
|
### Current Configuration
|
|
- **Host:** seattle.tail.vish.gg
|
|
- **Tailscale IP:** 100.82.197.124
|
|
- **Gateway Port:** 18789
|
|
- **Bind Mode:** loopback (with Tailscale serve)
|
|
- **Agent Model:** anthropic/claude-opus-4-6
|
|
- **Context Window:** 200k tokens
|
|
|
|
### Installed Features
|
|
- Device pairing (`/pair` command)
|
|
- Phone control (`/phone` command)
|
|
- Voice commands (`/voice` command)
|
|
- Browser control service
|
|
- Canvas hosting
|
|
- Bonjour discovery
|
|
|
|
### Network Status
|
|
- UFW firewall: Active with Tailscale rules
|
|
- Tailscale: Connected and serving HTTPS
|
|
- Gateway: Running in background
|
|
- WebSocket: Available via wss://seattle.tail.vish.gg
|
|
|
|
## 🔄 Maintenance
|
|
|
|
### Regular Tasks
|
|
```bash
|
|
# Update OpenClaw
|
|
cd /root/openclaw
|
|
git pull
|
|
pnpm install
|
|
pnpm build
|
|
|
|
# Restart gateway
|
|
kill %1
|
|
pnpm openclaw gateway --port 18789 --bind loopback --tailscale serve --verbose --allow-unconfigured &
|
|
```
|
|
|
|
### Backup Configuration
|
|
```bash
|
|
# Backup configuration
|
|
tar -czf openclaw-config-$(date +%Y%m%d).tar.gz ~/.openclaw/
|
|
|
|
# Backup installation
|
|
tar -czf openclaw-install-$(date +%Y%m%d).tar.gz /root/openclaw/
|
|
```
|
|
|
|
### Security Audit
|
|
```bash
|
|
# Run security audit
|
|
pnpm openclaw security audit --deep
|
|
|
|
# Check for updates
|
|
pnpm openclaw update check
|
|
```
|
|
|
|
## 📚 Additional Resources
|
|
|
|
- **OpenClaw Documentation:** https://docs.openclaw.ai/
|
|
- **CLI Reference:** https://docs.openclaw.ai/cli/gateway
|
|
- **Tailscale Documentation:** https://tailscale.com/kb/
|
|
- **GitHub Repository:** https://github.com/openclaw/openclaw
|
|
|
|
## 🎯 Next Steps
|
|
|
|
1. **Configure API Keys:** Add your AI model API keys to `~/.openclaw/credentials.json`
|
|
2. **Set Up Channels:** Configure Discord, Slack, or other communication channels
|
|
3. **Customize Settings:** Modify `~/.openclaw/config.json` for your needs
|
|
4. **Security Review:** Run `pnpm openclaw security audit --deep`
|
|
5. **Monitoring:** Set up log monitoring and alerting
|
|
|
|
---
|
|
|
|
**Installation completed successfully on February 16, 2026**
|
|
**OpenClaw is now accessible at:** https://seattle.tail.vish.gg/ |