Production Config · Security · Performance

Cara Konfigurasi OpenClaw
agar Stabil dan Optimal di VPS Production

Dari zero ke production-ready: hardening keamanan, tuning performa, monitoring, dan konfigurasi multi-channel OpenClaw yang benar-benar stabil.

± 25 menit baca SufaNet
Konfigurasi OpenClaw Stabil Optimal VPS Production

🔧 Mengapa Konfigurasi yang Benar Itu Kritis

Menginstall OpenClaw hanyalah langkah awal. Untuk bisa berjalan stabil di lingkungan production — melayani ratusan pesan per hari, berjalan 24/7 tanpa restart, dan aman dari akses tidak sah — kamu perlu konfigurasi yang dipikirkan matang.

Artikel ini membahas konfigurasi production OpenClaw secara mendalam: mulai dari hardening security gateway, konfigurasi model dengan fallback yang proper, pengaturan autonomy level yang aman, hingga setup monitoring untuk mendeteksi masalah sebelum agent kamu "ngadat" di tengah malam.

📋 Apa yang Akan Kamu Pelajari:

  • ✅ Struktur lengkap openclaw.json
  • ✅ Konfigurasi multi-provider dengan fallback
  • ✅ Hardening gateway dari akses eksternal
  • ✅ Allowlist channel yang proper
  • ✅ Autonomy level + rate limiting
  • ✅ Sandbox security terbaik
  • ✅ Monitoring log dan alert
  • ✅ Procedure update dan backup config

📁 Struktur File Konfigurasi OpenClaw

File konfigurasi utama OpenClaw ada di ~/.openclaw/openclaw.json. Berikut adalah overview section-section utamanya:

# Lihat semua file konfigurasi OpenClaw
ls -la ~/.openclaw/

# openclaw.json    — Konfigurasi utama
# agents/          — Folder agent definitions
# memory/          — Database SQLite memory
# logs/            — Log files
# .keyring         — Encrypted secrets

# Backup sebelum edit
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup.$(date +%Y%m%d)

Struktur lengkap openclaw.json:

{
  "$schema": "...",         // Untuk IDE autocomplete
  "default_provider": "openrouter",
  "default_temperature": 0.7,
  "models": { ... },        // Provider & model config
  "agents": { ... },        // Agent defaults & instances
  "gateway": { ... },       // HTTP gateway config
  "channels": { ... },      // Messaging channels
  "autonomy": { ... },      // Agent autonomy level
  "security": { ... },      // Sandbox & encryption
  "memory": { ... },        // Vector + FTS5 memory
  "logging": { ... },       // Log level & output
  "secrets": { ... }        // Encryption settings
}

🤖 Konfigurasi AI Provider Production

Untuk production, selalu konfigurasikan minimal dua provider sebagai primary dan fallback. Ini mencegah downtime jika satu provider mengalami gangguan:

{
  "models": {
    "providers": {
      "openrouter": {
        "api_key": "sk-or-v1-...",
        "base_url": "https://openrouter.ai/api/v1",
        "timeout_ms": 30000,
        "max_retries": 3,
        "retry_delay_ms": 1000
      },
      "anthropic": {
        "api_key": "sk-ant-...",
        "timeout_ms": 60000,
        "max_retries": 2
      },
      "openai": {
        "api_key": "sk-...",
        "timeout_ms": 30000
      }
    },
    "rate_limits": {
      "openrouter": {
        "requests_per_minute": 60,
        "tokens_per_minute": 100000
      },
      "anthropic": {
        "requests_per_minute": 50
      }
    }
  }
}

🧠 Model Selection dan Fallback Chain

Konfigurasi model yang baik menggunakan fallback chain — urutan model yang dicoba jika model primary gagal atau overloaded:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-sonnet-4",
        "fallback": [
          "openai/gpt-4o",
          "openai/gpt-4o-mini",
          "anthropic/claude-haiku-3-5"
        ],
        "cheap": "anthropic/claude-haiku-3-5",
        "vision": "anthropic/claude-sonnet-4",
        "code": "anthropic/claude-sonnet-4"
      },
      "temperature": 0.7,
      "max_tokens": 4096,
      "context_window": 100000,
      "heartbeat": {
        "enabled": true,
        "every": "30m",
        "model": "anthropic/claude-haiku-3-5",
        "prompt": "Cek semua task pending dan kirim summary singkat."
      }
    }
  }
}

💡 Tips Production:

  • • Gunakan model murah (haiku/mini) untuk heartbeat dan task rutin
  • • Simpan model kuat (claude-sonnet) untuk tugas yang membutuhkan reasoning mendalam
  • • Set max_tokens lebih rendah untuk task chat, lebih tinggi untuk code generation

🛡️ Hardening Gateway OpenClaw

Gateway OpenClaw di port 18789 adalah entry point utama untuk akses API. Di production, ini wajib dikonfigurasi dengan benar:

{
  "gateway": {
    "port": 18789,
    "host": "127.0.0.1",         // WAJIB: bind hanya ke localhost
    "require_pairing": true,      // Wajib pairing untuk akses
    "allow_public_bind": false,   // Jangan expose ke internet langsung
    "cors": {
      "enabled": true,
      "allowed_origins": ["https://yourdomain.com"]
    },
    "rate_limit": {
      "enabled": true,
      "requests_per_minute": 100,
      "ban_duration_minutes": 10
    },
    "tls": {
      "enabled": false             // Gunakan Nginx sebagai TLS terminator
    },
    "auth": {
      "type": "bearer",
      "rotate_on_start": false     // Set true setelah setup pair
    }
  }
}

Setup Nginx sebagai Reverse Proxy

# /etc/nginx/sites-available/openclaw
server {
    listen 443 ssl http2;
    server_name agent.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/agent.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/agent.yourdomain.com/privkey.pem;

    # Security headers
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security "max-age=31536000" always;

    location / {
        proxy_pass http://127.0.0.1:18789;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 300;
    }
}

server {
    listen 80;
    server_name agent.yourdomain.com;
    return 301 https://$host$request_uri;
}

📡 Konfigurasi Multi-Channel dengan Allowlist

Untuk keamanan, setiap channel harus dikonfigurasi dengan allowlist ketat — hanya user/group tertentu yang boleh berinteraksi dengan agent:

{
  "channels": {
    "telegram": {
      "accounts": {
        "main": {
          "bot_token": "BOT_TOKEN",
          "allow_from": ["username_kamu", "username_admin"],
          "allow_groups": ["@private_team_group"],
          "block_from": [],
          "reply_in_private": true,
          "typing_indicator": true,
          "parse_mode": "MarkdownV2",
          "max_message_length": 4096
        }
      }
    },
    "discord": {
      "accounts": {
        "main": {
          "bot_token": "Bot TOKEN_DISCORD",
          "guild_id": "SERVER_ID",
          "allowed_channel_ids": ["CHANNEL_ID_1", "CHANNEL_ID_2"],
          "allow_from": ["user_id_1"],
          "require_mention": false
        }
      }
    },
    "slack": {
      "accounts": {
        "main": {
          "bot_token": "xoxb-...",
          "app_token": "xapp-...",
          "signing_secret": "abc123",
          "allow_from": ["U12345678", "U87654321"]
        }
      }
    }
  }
}

🎛️ Konfigurasi Level Autonomy Agent

OpenClaw memiliki 4 level autonomy. Pilih sesuai tingkat kepercayaan kamu pada agent:

Level Deskripsi Cocok untuk
noneKonfirmasi setiap aksiTesting, setup awal
supervisedApprove aksi destruktif sajaProduction personal
semiAksi umum auto, risky perlu approveDeveloper power user
autoFull autonomousAgentic pipeline
{
  "autonomy": {
    "level": "supervised",         // Rekomendasi untuk production personal
    "workspace_only": true,        // Agent hanya bisa akses workspace folder
    "workspace": "/home/user/projects",
    "allowed_tools": [             // Batasi tool yang bisa digunakan
      "read_file", "write_file", "run_command",
      "search_web", "send_message"
    ],
    "blocked_tools": [
      "delete_file", "format_disk"
    ],
    "max_actions_per_hour": 50,    // Rate limit aksi agent
    "max_tokens_per_day": 500000,  // Budget token harian
    "confirm_before": [
      "run_command",               // Minta konfirmasi sebelum jalankan command
      "send_email"
    ]
  }
}

🔒 Konfigurasi Sandbox Security

Sandbox membatasi apa yang bisa dilakukan agent di sistem. OpenClaw mendukung beberapa backend sandbox:

{
  "security": {
    "sandbox": {
      "backend": "auto",           // auto deteksi: landlock (Linux 5.13+), firejail, docker
      "workspace_only": true,
      "allow_network": true,
      "allow_shell": false,
      "landlock": {
        "allow_read": ["/home/user/projects", "/tmp"],
        "allow_write": ["/home/user/projects/output"],
        "allow_exec": ["/usr/bin/git", "/usr/bin/python3"]
      },
      "docker": {
        "enabled": true,
        "image": "ubuntu:22.04",
        "memory_limit": "512m",
        "cpu_quota": 0.5,
        "network": "bridge",
        "read_only_rootfs": false,
        "volumes": [
          "/home/user/projects:/workspace"
        ]
      }
    },
    "secrets": {
      "encrypt": true,
      "keyring": "system"         // Gunakan system keyring jika tersedia
    }
  }
}

💓 Konfigurasi Heartbeat dan Scheduling

Heartbeat adalah fitur OpenClaw di mana agent secara proaktif "terbangun" pada interval tertentu untuk cek task atau kirim update:

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "enabled": true,
        "every": "30m",
        "model": "anthropic/claude-haiku-3-5",  // Gunakan model murah
        "prompt": "Cek apakah ada task pending atau hal yang perlu dilaporkan.",
        "channel": "telegram.main",
        "quiet_hours": {
          "enabled": true,
          "start": "23:00",
          "end": "07:00",
          "timezone": "Asia/Jakarta"
        }
      },
      "schedules": [
        {
          "name": "daily_report",
          "cron": "0 8 * * *",
          "timezone": "Asia/Jakarta",
          "prompt": "Buat laporan harian singkat tentang aktivitas kemarin.",
          "channel": "telegram.main"
        },
        {
          "name": "weekly_cleanup",
          "cron": "0 0 * * 0",
          "prompt": "Lakukan pembersihan file temporary dan generate weekly summary."
        }
      ]
    }
  }
}

📊 Monitoring, Logging, dan Alerting

{
  "logging": {
    "level": "info",              // debug | info | warn | error
    "format": "json",             // json atau text
    "output": "file",
    "file": {
      "path": "~/.openclaw/logs/openclaw.log",
      "max_size_mb": 50,
      "max_backups": 7,
      "compress": true
    },
    "include_request_body": false,  // false di production (privacy)
    "include_response_body": false
  }
}

Monitoring via systemd

# Cek status service
systemctl --user status openclaw

# Lihat log realtime
journalctl --user -u openclaw -f

# Lihat log terakhir 100 baris
journalctl --user -u openclaw -n 100

# Cek usage resource
systemctl --user show openclaw --no-pager | grep -E 'Memory|CPU'

# OpenClaw built-in health check
openclaw status
openclaw doctor

Script Monitor Sederhana

#!/bin/bash
# /home/user/check-openclaw.sh
# Taruh di crontab: */5 * * * * /home/user/check-openclaw.sh

STATUS=$(openclaw status 2>&1)
if echo "$STATUS" | grep -q "ERROR\|stopped\|inactive"; then
    echo "OpenClaw down pada $(date). Restarting..."
    openclaw service restart
    # Opsional: kirim notifikasi Telegram
fi

🔄 Procedure Update dan Backup Config

# 1. Backup config sebelum update
cp -r ~/.openclaw ~/.openclaw_backup_$(date +%Y%m%d_%H%M%S)

# 2. Update OpenClaw
npm update -g openclaw@latest

# 3. Verifikasi versi baru
openclaw --version

# 4. Cek apakah config masih valid
openclaw config validate

# 5. Restart daemon
openclaw service restart

# 6. Verifikasi status
openclaw status && openclaw doctor

🚀 VPS Terbaik untuk OpenClaw Production

OpenClaw membutuhkan Node.js dan runtime yang cukup besar. Untuk konfigurasi multi-channel production yang nyaman, disarankan minimal 2 GB RAM. VPS Indonesia SufaNet dengan paket 2 GB RAM memberikan performa yang solid untuk OpenClaw dengan beberapa channel aktif sekaligus.

🔥 OpenClaw Production di VPS SufaNet

Config yang benar + VPS yang andal = AI agent yang tidak pernah mati di tengah malam.

❓ FAQ Konfigurasi OpenClaw

Berapa API token budget yang ideal untuk personal use?

Untuk penggunaan personal aktif, 200.000-500.000 token/hari sudah cukup. Gunakan model haiku/mini untuk heartbeat dan task rutin, simpan model claude-sonnet untuk query kompleks. Ini bisa menekan biaya API hingga 80%.

Apakah aman menyimpan API key di openclaw.json?

Dengan "secrets": {"encrypt": true}, OpenClaw mengenkripsi semua API key di config. Namun tetap set permission file yang ketat: chmod 600 ~/.openclaw/openclaw.json dan jangan pernah commit file ini ke Git.

Bagaimana cara reset konfigurasi ke default?

Backup dulu dengan cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak, kemudian hapus file config dan jalankan openclaw onboard untuk setup ulang dari awal. API key dan memory agent tidak akan hilang jika kamu backup folder ~/.openclaw/memory/.

🎯 Kesimpulan

Konfigurasi yang benar adalah investasi untuk stabilitas jangka panjang. Dengan hardening gateway, allowlist channel yang ketat, fallback model yang proper, dan heartbeat yang dikonfigurasi di luar jam kerja, OpenClaw kamu bisa berjalan production-ready selama berbulan-bulan tanpa perlu intervensi manual.

Pasangkan dengan VPS Indonesia SufaNet yang andal, dan kamu punya AI agent infrastructure yang solid dan terjangkau.

🔥 Config Sekali, Jalan Selamanya

OpenClaw production-ready dengan VPS SufaNet yang andal 24/7.