AI Assistant Guide

    Deploying OpenClaw

    OpenClaw is an open-source autonomous AI personal assistant that connects to WhatsApp, Telegram, Discord, Slack, and more. Self-host your always-on AI assistant on RamNode's reliable VPS hosting.

    100+ Agent Skills
    Multi-Platform
    Node.js 22+
    24/7 Uptime
    1

    Prerequisites

    RamNode VPS Requirements

    SpecMinimumRecommended
    CPU Cores1 vCPU2+ vCPUs
    RAM1 GB2–4 GB
    Storage20 GB SSD40+ GB NVMe
    OSUbuntu 22.04+Ubuntu 24.04 LTS
    Network1 Gbps1 Gbps unmetered

    RamNode's Premium KVM VPS plans with NVMe storage are ideal for this deployment. The 2 GB plan provides a comfortable baseline for running OpenClaw with cloud-based LLM providers.

    Additional Requirements

    • An API key from a supported LLM provider (Anthropic, OpenAI, Google, or local model)
    • A domain name (optional but recommended for webhook integrations)
    • Messaging platform credentials (WhatsApp, Telegram, Discord, Slack, etc.)
    • SSH key pair for secure server access
    2

    Provision Your RamNode VPS

    1. Log into the RamNode client portal at ramnode.com and navigate to the VPS section.
    2. Select a Premium KVM plan with at least 2 GB RAM and Ubuntu 24.04 LTS as the operating system.
    3. Choose a datacenter location closest to your primary usage region:
      • US: Atlanta, Los Angeles, New York, Seattle
      • EU: Netherlands
    3

    Initial Server Configuration

    Connect and Update

    SSH and update system
    ssh root@YOUR_SERVER_IP
    apt update && apt upgrade -y
    reboot

    Create a Dedicated User

    Avoid running OpenClaw as root. Create a dedicated service user:

    Create openclaw user
    adduser --disabled-password --gecos '' openclaw
    usermod -aG sudo openclaw
    mkdir -p /home/openclaw/.ssh
    cp ~/.ssh/authorized_keys /home/openclaw/.ssh/
    chown -R openclaw:openclaw /home/openclaw/.ssh
    chmod 700 /home/openclaw/.ssh
    chmod 600 /home/openclaw/.ssh/authorized_keys

    Configure the Firewall

    Set up UFW rules
    ufw default deny incoming
    ufw default allow outgoing
    ufw allow 22/tcp comment 'SSH'
    ufw allow 18789/tcp comment 'OpenClaw Gateway'
    ufw enable

    If you plan to use webhook integrations or a web UI, you may also need to open ports 80 and 443 for HTTP/HTTPS traffic behind a reverse proxy.

    Harden SSH

    Disable password authentication
    sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
    sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    systemctl restart sshd

    Security Warning: OpenClaw requires broad permissions to function as an autonomous agent. Running it on an isolated VPS rather than a machine with access to sensitive production systems significantly reduces risk. Never store credentials for critical infrastructure on the same server.

    4

    Install Node.js 22

    OpenClaw requires Node.js version 22 or higher. Install it using the NodeSource repository:

    Install Node.js 22
    su - openclaw
    curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
    sudo apt install -y nodejs
    node --version  # Verify: should be v22.x.x
    npm --version   # Verify: should be 10.x+

    Install pnpm (Optional)

    Install pnpm globally
    sudo npm install -g pnpm
    5

    Install OpenClaw

    6

    Configure OpenClaw

    Run the onboarding wizard, which guides you through LLM provider setup, messaging channel pairing, and daemon installation:

    Run onboarding wizard
    openclaw onboard --install-daemon

    LLM Provider

    Select your preferred AI model provider and enter your API key. Supported providers include Anthropic (Claude), OpenAI, Google (Gemini), and local model endpoints via OpenRouter or Ollama.

    Messaging Channels

    ChannelSetup Method
    WhatsAppQR code pairing via terminal
    TelegramBot token from @BotFather
    DiscordBot token from Discord Developer Portal
    SlackApp manifest and OAuth tokens
    SignalSignal CLI or linked device pairing
    MatrixHomeserver URL + access token

    DM Policy and Pairing

    By default, OpenClaw uses a pairing-based DM policy. Unknown senders receive a pairing code and their messages are not processed until approved:

    Approve a new sender
    openclaw pairing approve <channel> <code>

    For personal deployments on a private VPS, this pairing mechanism is your first line of defense against unauthorized access to your assistant.

    7

    Run as systemd Service

    The onboard wizard with --install-daemon will configure a systemd user service automatically. To verify it's running:

    Check service status
    systemctl --user status openclaw-gateway

    Manual Service Configuration

    If you need to create or customize the service manually:

    Create systemd service
    mkdir -p ~/.config/systemd/user/
    cat > ~/.config/systemd/user/openclaw-gateway.service << 'EOF'
    [Unit]
    Description=OpenClaw Gateway Daemon
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/openclaw gateway --port 18789
    Restart=always
    RestartSec=10
    Environment=NODE_ENV=production
    
    [Install]
    WantedBy=default.target
    EOF
    Enable and start service
    systemctl --user daemon-reload
    systemctl --user enable openclaw-gateway
    systemctl --user start openclaw-gateway
    sudo loginctl enable-linger openclaw

    The enable-linger command ensures the user service starts at boot, even when the openclaw user is not logged in. This is critical for 24/7 operation.

    8

    Verify the Deployment

    Run the built-in diagnostics tool to confirm everything is configured correctly:

    Run diagnostics
    openclaw doctor

    Send a Test Message

    Test the agent
    openclaw agent --message "Hello from RamNode!" --thinking high

    You should receive a response from your OpenClaw instance on the connected platform. If the gateway is running correctly, you can also interact by simply sending a message to your bot on WhatsApp, Telegram, Discord, or whichever channel you configured.

    9

    ClawBot & Integrations

    ClawBot is the conversational interface layer of OpenClaw that handles message routing, context management, and skill orchestration across all connected platforms.

    ClawBot Configuration

    Configure ClawBot behavior
    # ~/.openclaw/clawbot.yaml
    bot:
      name: "Assistant"
      personality: "helpful and concise"
      language: "en"
      max_context_messages: 50
      thinking_mode: "balanced"  # low, balanced, high
    
    memory:
      enabled: true
      persistence: "local"  # local, redis, postgres
      ttl: 86400  # seconds
    
    rate_limits:
      messages_per_minute: 20
      messages_per_hour: 200

    Webhook Integrations

    OpenClaw supports outbound webhooks for integrating with external services:

    Configure webhooks
    openclaw webhook add --name "notify-slack" \
      --url "https://hooks.slack.com/services/XXX" \
      --events "task.completed,reminder.triggered"
    
    openclaw webhook add --name "log-to-n8n" \
      --url "https://your-n8n.example.com/webhook/openclaw" \
      --events "*"
    
    # List configured webhooks
    openclaw webhook list
    
    # Test a webhook
    openclaw webhook test notify-slack

    API Integration

    OpenClaw exposes a REST API for programmatic interaction:

    API endpoints
    # Base URL: http://localhost:18789/api/v1
    
    # Send a message
    POST /messages
    {
      "content": "What's on my calendar today?",
      "channel": "api",
      "user_id": "api-user"
    }
    
    # List active skills
    GET /skills
    
    # Manage memory
    GET /memory?query=meeting+notes
    DELETE /memory/:id
    
    # Health check
    GET /health
    Example API call
    curl -X POST http://localhost:18789/api/v1/messages \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(openclaw token generate)" \
      -d '{"content": "Summarize my unread emails", "channel": "api"}'

    Third-Party Integrations

    Custom Skills from ClawHub

    Install skills from ClawHub
    # Browse available skills
    openclaw skills search "productivity"
    
    # Install a skill
    openclaw skills install clawhub/pomodoro-timer
    openclaw skills install clawhub/expense-tracker
    openclaw skills install clawhub/code-reviewer
    
    # List installed skills
    openclaw skills list
    
    # Remove a skill
    openclaw skills remove pomodoro-timer

    Skills extend ClawBot's capabilities with specialized functions. Always review a skill's permissions and source code before installation, especially for skills that access sensitive data or execute system commands.

    10

    Security Best Practices

    Security Warning: OpenClaw operates as an autonomous agent with access to shell commands, file systems, and connected services. Treat your OpenClaw VPS as a privileged endpoint and apply defense-in-depth principles.

    11

    Updating OpenClaw

    OpenClaw follows a rolling release model. To update to the latest stable version:

    Update to latest
    npm install -g openclaw@latest
    openclaw doctor
    systemctl --user restart openclaw-gateway

    Beta Channel

    Switch to beta
    openclaw update --channel beta
    12

    Troubleshooting

    IssueSolution
    Gateway won't startCheck logs: journalctl --user -u openclaw-gateway. Verify Node.js 22+ is installed.
    WhatsApp disconnectsRe-scan the QR code. WhatsApp Web sessions expire periodically. Consider using the multi-device beta.
    Permission denied errorsEnsure openclaw user has write access to its home directory and configuration files.
    High memory usageReduce concurrent agent threads in config. Disable unused skills. Upgrade to a higher-RAM RamNode plan.
    Port 18789 unreachableVerify UFW rule: ufw status. Check that the gateway is bound to 0.0.0.0.
    API key errorsRe-run openclaw onboard to reconfigure your LLM provider credentials.

    Quick Reference Commands

    Common commands
    # Start / stop / restart:
    systemctl --user start openclaw-gateway
    systemctl --user stop openclaw-gateway
    systemctl --user restart openclaw-gateway
    
    # View logs:
    journalctl --user -u openclaw-gateway -f
    
    # Health check:
    openclaw doctor
    
    # Send a test message:
    openclaw agent --message "Test" --thinking high
    
    # Update:
    npm install -g openclaw@latest
    
    # Verbose gateway mode:
    openclaw gateway --port 18789 --verbose

    OpenClaw Deployed Successfully!

    Your OpenClaw instance is now running on RamNode's infrastructure, providing you with a self-hosted, always-on AI assistant accessible from any of your configured messaging platforms. For additional configuration options, skill development, and community support, visit the official documentation at openclaw.ai.