# Openclaw Remote Install

> One-click remote OpenClaw deployment via SSH. Auto-detects OS and selects best method (Docker/Podman/npm). Use when: (1) Installing on VPS/cloud servers, (2) Automating multi-machine deployment, (3) Configuring models/channels/gateway post-install.

- Skill: `lord1egypt/openclaw-remote-install` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lord1egypt/openclaw-remote-install`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lord1egypt/openclaw-remote-install/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: Lord1Egypt (https://skillmd.com/u/lord1egypt)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/lord1egypt/openclaw-remote-install

---


# OpenClaw Remote Install Skill

This skill handles remote installation and configuration of OpenClaw on remote servers via SSH with intelligent method selection and async execution support.

## Log Directory

All installation logs are automatically saved to:
```
~/.openclaw/remote-install-logs/<host>_<timestamp>/
```

Each installation creates:
- `install.log` - Main installation log with timestamps
- `install_output.log` - Raw command output
- `install.pid` - Background process PID (async mode)
- `install.status` - Installation status: running/success/failed/timeout

A symlink `latest` points to the most recent log directory.

## Supported Installation Methods

| Method | Description | Best For |
|--------|-------------|----------|
| `auto` (default) | Auto-detect best method based on OS | Most cases |
| `installer` | Official install.sh script | Standard Linux/macOS |
| `cli` | install-cli.sh (local prefix) | No system Node dependency |
| `npm` | npm install -g openclaw | Node 22+ already installed |
| `pnpm` | pnpm add -g openclaw | pnpm users |
| `docker` | Docker container | Containerized deployments |
| `podman` | Podman rootless container | Rootless environments |

## Usage

### Quick Start (Auto-detect)

```bash
./scripts/install_openclaw_remote.sh <host> <user> <key_path>
```

### Async Installation (Recommended for long-running installs)

```bash
# Run installation in background with progress monitoring
./scripts/install_openclaw_remote.sh <host> <user> <key_path> --async

# Monitor in real-time
tail -f ~/.openclaw/remote-install-logs/latest/install_output.log

# Check status
cat ~/.openclaw/remote-install-logs/latest/install_status
```

### With Password

```bash
./scripts/install_openclaw_remote.sh <host> <user> <password> --password-based
```

### Force Specific Method

```bash
# Docker installation
./scripts/install_openclaw_remote.sh <host> <user> <key_path> --docker

# Podman installation
./scripts/install_openclaw_remote.sh <host> <user> <key_path> --podman

# npm method (if Node 22+ available)
./scripts/install_openclaw_remote.sh <host> <user> <key_path> --method npm
```

### Non-interactive (Automation)

```bash
./scripts/install_openclaw_remote.sh <host> <user> <key_path> \
  --non-interactive \
  --configure
```

### Custom Log Directory

```bash
./scripts/install_openclaw_remote.sh <host> <user> <key_path> \
  --log-dir /path/to/custom/logs
```

## Auto-Detection Logic

The installer automatically selects the best method:

1. **If `--docker` or `--podman` flag**: Use container method (if available)
2. **If Node 22+ installed**: Use `pnpm` or `npm` method
3. **Otherwise**: Use official `install.sh` script

## Supported Operating Systems

- **Ubuntu/Debian** (apt)
- **Fedora/RHEL/CentOS** (dnf/yum)
- **Alpine** (apk)
- **Arch Linux** (pacman)
- **macOS** (Homebrew)
- **Windows** (WSL2) - via installer script

## Post-Installation

```bash
# SSH into remote server
ssh user@host

# Check status
openclaw status

# Run diagnostics
openclaw doctor

# Configure (models, channels, etc.)
openclaw configure

# Or use Python script for non-interactive config
python3 scripts/configure_openclaw_remote.py <host> <user> \
  --auth <key> --key-based --configure \
  --auth-choice openai-api-key --api-key "your-key"
```

## Configuration Options

### Auth Providers (via Python script)

- `openai-api-key` - OpenAI API
- `anthropic-api-key` - Anthropic API
- `custom-api-key` - Custom OpenAI-compatible endpoint
- `azure-openai` - Azure OpenAI
- `google-ai` - Google AI (Gemini)
- `mistral-api-key` - Mistral AI
- `zai-api-key` - Z.AI endpoints

### Secret Modes

- `plaintext` - Store directly in config (not recommended)
- `ref` - Environment variable reference (recommended)

### Gateway Modes

```bash
--gateway-mode local    # Local gateway (default)
--gateway-mode remote   # Remote gateway
--gateway-port 18789
```

## Environment Variables

For secure non-interactive configuration:

```bash
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export CUSTOM_API_KEY="your-key"
```

Then use `--secret-mode ref` to reference them securely.

## Troubleshooting

### SSH Issues

```bash
# Check key permissions
chmod 600 ~/.ssh/id_rsa

# Add to ssh-agent
ssh-add ~/.ssh/id_rsa
```

### Installation Issues

- Ensure curl is installed
- Check Node.js 22+ requirement (for non-Docker methods)
- Review logs: `~/.openclaw/logs/`

### Docker Issues

```bash
# Check Docker status
docker ps

# View logs
docker logs openclaw

# Restart container
docker restart openclaw
```

