Hosting
Hetzner
هدف
یک OpenClaw Gateway پایدار را روی یک Hetzner VPS با استفاده از Docker اجرا کنید، با وضعیت ماندگار، باینریهای از پیش تعبیهشده، و رفتار راهاندازی مجدد ایمن.
اگر «OpenClaw شبانهروزی با حدود ۵ دلار» میخواهید، این سادهترین راهاندازی قابل اتکا است. قیمتگذاری Hetzner تغییر میکند؛ کوچکترین VPS با Debian/Ubuntu را انتخاب کنید و اگر با OOM مواجه شدید، آن را ارتقا دهید.
یادآوری مدل امنیتی:
- عاملهای مشترک شرکتی وقتی همه در یک مرز اعتماد هستند و محیط اجرا فقط کاری است، مشکلی ندارند.
- جداسازی سختگیرانه را حفظ کنید: VPS/محیط اجرای اختصاصی + حسابهای اختصاصی؛ هیچ پروفایل شخصی Apple/Google/مرورگر/مدیر گذرواژه روی آن میزبان نداشته باشید.
- اگر کاربران نسبت به یکدیگر خصمانهاند، آنها را بر اساس gateway/میزبان/کاربر OS جدا کنید.
امنیت و میزبانی VPS را ببینید.
در حال انجام چه کاری هستیم (به زبان ساده)؟
- یک سرور Linux کوچک اجاره میکنیم (Hetzner VPS)
- Docker را نصب میکنیم (محیط اجرای برنامه ایزوله)
- OpenClaw Gateway را در Docker راهاندازی میکنیم
~/.openclaw+~/.openclaw/workspaceرا روی میزبان ماندگار میکنیم (پس از راهاندازی مجدد/بازسازی باقی میماند)- از لپتاپ خود از طریق یک تونل SSH به Control UI دسترسی پیدا میکنیم
آن وضعیت mountشدهی ~/.openclaw شامل openclaw.json، فایلهای هر عامل در
agents/<agentId>/agent/auth-profiles.json، و .env است.
Gateway از این روشها قابل دسترسی است:
- بازارسال پورت SSH از لپتاپ شما
- در معرضگذاری مستقیم پورت، اگر خودتان دیواره آتش و توکنها را مدیریت میکنید
این راهنما Ubuntu یا Debian روی Hetzner را فرض میکند.
اگر روی VPS Linux دیگری هستید، بستهها را متناسب با آن نگاشت کنید.
برای جریان عمومی Docker، Docker را ببینید.
مسیر سریع (برای اپراتورهای باتجربه)
- Hetzner VPS را provision کنید
- Docker را نصب کنید
- مخزن OpenClaw را clone کنید
- دایرکتوریهای ماندگار میزبان را ایجاد کنید
.envوdocker-compose.ymlرا پیکربندی کنید- باینریهای لازم را داخل image قرار دهید
docker compose up -d- ماندگاری و دسترسی Gateway را تأیید کنید
آنچه نیاز دارید
- Hetzner VPS با دسترسی root
- دسترسی SSH از لپتاپ شما
- آشنایی پایه با SSH + کپی/پیست
- حدود ۲۰ دقیقه
- Docker و Docker Compose
- اعتبارنامههای احراز هویت مدل
- اعتبارنامههای اختیاری provider
- کد QR برای WhatsApp
- توکن ربات Telegram
- Gmail OAuth
Provision the VPS
یک VPS با Ubuntu یا Debian در Hetzner ایجاد کنید.
بهعنوان root وصل شوید:
ssh root@YOUR_VPS_IP
این راهنما فرض میکند VPS وضعیتمند است. با آن مثل زیرساخت دورریختنی رفتار نکنید.
Install Docker (on the VPS)
apt-get update
apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sh
تأیید کنید:
docker --version
docker compose version
Clone the OpenClaw repository
git clone https://github.com/openclaw/openclaw.git
cd openclaw
این راهنما فرض میکند برای تضمین ماندگاری باینریها یک image سفارشی میسازید.
Create persistent host directories
کانتینرهای Docker گذرا هستند. همه وضعیتهای بلندمدت باید روی میزبان قرار بگیرند.
mkdir -p /root/.openclaw/workspace
# Set ownership to the container user (uid 1000):
chown -R 1000:1000 /root/.openclaw
Configure environment variables
فایل .env را در ریشه مخزن ایجاد کنید.
OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
GOG_KEYRING_PASSWORD=
XDG_CONFIG_HOME=/home/node/.openclaw
وقتی میخواهید توکن پایدار gateway را از طریق .env مدیریت کنید،
OPENCLAW_GATEWAY_TOKEN را تنظیم کنید؛ در غیر این صورت، پیش از تکیه بر
کلاینتها در راهاندازیهای مجدد، gateway.auth.token را پیکربندی کنید.
اگر هیچکدام از این منابع وجود نداشته باشد، OpenClaw برای آن راهاندازی
از یک توکن فقط در زمان اجرا استفاده میکند. یک گذرواژه keyring تولید کنید
و آن را در GOG_KEYRING_PASSWORD جایگذاری کنید:
openssl rand -hex 32
این فایل را commit نکنید.
این فایل .env برای env کانتینر/محیط اجرا مانند OPENCLAW_GATEWAY_TOKEN است.
احراز هویت ذخیرهشده OAuth/API-key مربوط به providerها در مسیر mountشدهی
~/.openclaw/agents/<agentId>/agent/auth-profiles.json قرار دارد.
Docker Compose configuration
docker-compose.yml را ایجاد یا بهروزرسانی کنید.
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE}
build: .
restart: unless-stopped
env_file:
- .env
environment:
- HOME=/home/node
- NODE_ENV=production
- TERM=xterm-256color
- OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
- OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
ports:
# Recommended: keep the Gateway loopback-only on the VPS; access via SSH tunnel.
# To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"${OPENCLAW_GATEWAY_BIND}",
"--port",
"${OPENCLAW_GATEWAY_PORT}",
"--allow-unconfigured",
]
--allow-unconfigured فقط برای راحتی bootstrap است و جایگزین پیکربندی درست gateway نیست. همچنان auth (gateway.auth.token یا گذرواژه) را تنظیم کنید و برای deployment خود از تنظیمات bind ایمن استفاده کنید.
Shared Docker VM runtime steps
برای جریان مشترک میزبان Docker از راهنمای محیط اجرای مشترک استفاده کنید:
Hetzner-specific access
پس از مراحل ساخت و راهاندازی مشترک، برای باز کردن تونل، راهاندازی زیر را کامل کنید:
پیشنیاز: مطمئن شوید پیکربندی sshd در VPS شما بازارسال TCP را مجاز میکند. اگر
پیکربندی SSH خود را سختگیرانه کردهاید، /etc/ssh/sshd_config را بررسی کنید و تنظیم کنید:
AllowTcpForwarding local
local بازارسالهای محلی ssh -L از لپتاپ شما را مجاز میکند و همزمان
بازارسالهای راهدور از سرور را مسدود میکند. تنظیم آن روی no باعث شکست تونل
با این پیام میشود:
channel 3: open failed: administratively prohibited: open failed
پس از تأیید فعال بودن بازارسال TCP، سرویس SSH را راهاندازی مجدد کنید
(systemctl restart ssh) و تونل را از لپتاپ خود اجرا کنید:
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP
باز کنید:
http://127.0.0.1:18789/
راز مشترک پیکربندیشده را جایگذاری کنید. این راهنما بهصورت پیشفرض از توکن gateway استفاده میکند؛ اگر به احراز هویت با گذرواژه تغییر دادهاید، بهجای آن از همان گذرواژه استفاده کنید.
نقشه ماندگاری مشترک در محیط اجرای Docker VM قرار دارد.
زیرساخت بهصورت کد (Terraform)
برای تیمهایی که گردشکارهای زیرساختبهصورتکد را ترجیح میدهند، یک راهاندازی Terraform نگهداریشده توسط جامعه این موارد را فراهم میکند:
- پیکربندی ماژولار Terraform با مدیریت وضعیت راهدور
- provision خودکار از طریق cloud-init
- اسکریپتهای deployment (bootstrap، deploy، backup/restore)
- سختسازی امنیتی (دیواره آتش، UFW، دسترسی فقط از طریق SSH)
- پیکربندی تونل SSH برای دسترسی به gateway
مخازن:
- زیرساخت: openclaw-terraform-hetzner
- پیکربندی Docker: openclaw-docker-config
این رویکرد راهاندازی Docker بالا را با deploymentهای بازتولیدپذیر، زیرساخت نسخهبندیشده، و بازیابی خودکار از فاجعه تکمیل میکند.
گامهای بعدی
- راهاندازی کانالهای پیامرسانی: کانالها
- پیکربندی Gateway: پیکربندی Gateway
- بهروز نگه داشتن OpenClaw: بهروزرسانی