Hosting
Hetzner
یک Gateway پایدار OpenClaw را با استفاده از Docker روی یک VPS از Hetzner اجرا کنید؛ بهگونهای که وضعیت ماندگار، فایلهای اجرایی تعبیهشده و رفتار راهاندازی مجدد ایمن داشته باشد.
قیمتگذاری Hetzner تغییر میکند؛ کوچکترین VPS مبتنی بر Debian/Ubuntu را که پاسخگوی نیازهاست انتخاب کنید و در صورت بروز خطاهای OOM، منابع آن را افزایش دهید.
از طریق انتقال پورت SSH از لپتاپ میتوان به Gateway دسترسی داشت؛ همچنین اگر دیوار آتش و توکنها را خودتان مدیریت میکنید، میتوانید پورت را مستقیماً در دسترس قرار دهید.
یادآوری مدل امنیتی:
- عاملهای مشترک سازمانی زمانی مناسباند که همه در یک مرز اعتماد یکسان باشند و محیط اجرا فقط برای امور سازمانی استفاده شود.
- جداسازی سختگیرانه را حفظ کنید: VPS/محیط اجرای اختصاصی + حسابهای اختصاصی؛ هیچ نمایه شخصی Apple/Google/مرورگر/مدیر گذرواژهای روی آن میزبان قرار ندهید.
- اگر کاربران نسبت به یکدیگر متخاصماند، آنها را بر اساس Gateway/میزبان/کاربر سیستمعامل تفکیک کنید.
امنیت و میزبانی VPS را ببینید.
این راهنما Ubuntu یا Debian روی Hetzner را فرض میکند. در یک VPS لینوکسی دیگر، بستههای معادل را نصب کنید. برای روند عمومی Docker، Docker را ببینید.
موارد موردنیاز
- VPS از Hetzner با دسترسی root
- دسترسی SSH از لپتاپ
- Docker و Docker Compose
- اعتبارنامههای احراز هویت مدل
- اعتبارنامههای اختیاری ارائهدهنده (کد QR برای WhatsApp، توکن ربات Telegram، OAuth برای Gmail)
- حدود 20 دقیقه
مسیر سریع
- راهاندازی VPS در Hetzner
- نصب Docker
- همانندسازی مخزن OpenClaw
- ایجاد پوشههای ماندگار روی میزبان
- پیکربندی
.envوdocker-compose.yml - تعبیه فایلهای اجرایی موردنیاز در ایمیج
docker compose up -d- تأیید ماندگاری و دسترسی به Gateway
راهاندازی VPS
یک VPS مبتنی بر Ubuntu یا Debian در Hetzner ایجاد کنید، سپس بهعنوان root متصل شوید:
ssh root@YOUR_VPS_IPبا VPS مانند زیرساخت دارای وضعیت رفتار کنید، نه زیرساختی یکبارمصرف.
نصب Docker (روی VPS)
apt-get updateapt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | shبررسی کنید:
docker --versiondocker compose versionهمانندسازی مخزن OpenClaw
git clone https://github.com/openclaw/openclaw.gitcd openclawاین راهنما یک ایمیج سفارشی میسازد تا فایلهای اجرایی تعبیهشده پس از راهاندازی مجدد باقی بمانند.
ایجاد پوشههای ماندگار روی میزبان
کانتینرهای Docker زودگذرند؛ تمام وضعیتهای بلندمدت باید روی میزبان نگهداری شوند.
mkdir -p /root/.openclaw/workspace # مالکیت را روی کاربر کانتینر تنظیم کنید (uid 1000):chown -R 1000:1000 /root/.openclawپیکربندی متغیرهای محیطی
فایل .env را در ریشه مخزن ایجاد کنید:
OPENCLAW_IMAGE=openclaw:latestOPENCLAW_GATEWAY_TOKEN=OPENCLAW_GATEWAY_BIND=lanOPENCLAW_GATEWAY_PORT=18789 OPENCLAW_CONFIG_DIR=/root/.openclawOPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace GOG_KEYRING_PASSWORD=XDG_CONFIG_HOME=/home/node/.openclawبرای مدیریت توکن پایدار Gateway از طریق
.env، مقدار OPENCLAW_GATEWAY_TOKEN را تنظیم کنید؛ در غیر این صورت، پیش از اتکا به کلاینتها
در راهاندازیهای مجدد، gateway.auth.token را پیکربندی کنید. اگر هیچکدام تنظیم نشده باشند، OpenClaw برای
همان راهاندازی از یک توکن مختص محیط اجرا استفاده میکند. برای GOG_KEYRING_PASSWORD یک گذرواژه دستهکلید ایجاد کنید:
openssl rand -hex 32این فایل را commit نکنید. این فایل شامل متغیرهای محیطی کانتینر/محیط اجرا مانند
OPENCLAW_GATEWAY_TOKEN است. احراز هویت ذخیرهشده OAuth/کلید API ارائهدهنده در
~/.openclaw/agents/<agentId>/agent/auth-profiles.json متصلشده قرار دارد.
پیکربندی Docker Compose
فایل 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: # توصیه میشود: Gateway را روی VPS فقط به loopback محدود کنید؛ از طریق تونل SSH دسترسی داشته باشید. # برای در دسترس قراردادن عمومی، پیشوند `127.0.0.1:` را حذف و دیوار آتش را متناسب با آن پیکربندی کنید. - "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 فقط برای سهولت راهاندازی اولیه است و جایگزین پیکربندی واقعی Gateway نیست. همچنان احراز هویت (gateway.auth.token یا گذرواژه) و حالت اتصال ایمن را برای استقرار خود تنظیم کنید.
مراحل مشترک محیط اجرای ماشین مجازی Docker
برای روند متداول میزبان Docker، راهنمای مشترک محیط اجرا را دنبال کنید:
دسترسی ویژه Hetzner
پس از مراحل مشترک ساخت و اجرا، تونل را باز کنید.
پیشنیاز: مطمئن شوید پیکربندی sshd در VPS اجازه انتقال TCP را میدهد. اگر
پیکربندی SSH را سختگیرانه کردهاید، /etc/ssh/sshd_config را بررسی و این مقدار را تنظیم کنید:
AllowTcpForwarding locallocal انتقالهای محلی 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_IPhttp://127.0.0.1:18789/ را باز و راز مشترک پیکربندیشده را جایگذاری کنید.
این راهنما بهطور پیشفرض از توکن Gateway استفاده میکند؛ اگر احراز هویت را به روش گذرواژه تغییر دادهاید،
بهجای آن از گذرواژه پیکربندیشده استفاده کنید.
نقشه مشترک ماندگاری در محیط اجرای ماشین مجازی Docker قرار دارد.
زیرساخت بهعنوان کد (Terraform)
برای تیمهایی که گردشکارهای زیرساخت بهعنوان کد را ترجیح میدهند، یک پیکربندی Terraform نگهداریشده توسط جامعه این موارد را ارائه میدهد:
- پیکربندی ماژولار Terraform با مدیریت وضعیت راهدور
- راهاندازی خودکار از طریق cloud-init
- اسکریپتهای استقرار (راهاندازی اولیه، استقرار، پشتیبانگیری/بازیابی)
- سختسازی امنیتی (دیوار آتش، UFW، دسترسی فقط از طریق SSH)
- پیکربندی تونل SSH برای دسترسی به Gateway
مخزنها:
- زیرساخت: openclaw-terraform-hetzner
- پیکربندی Docker: openclaw-docker-config
این رویکرد با افزودن استقرارهای بازتولیدپذیر، زیرساخت دارای کنترل نسخه و بازیابی خودکار پس از فاجعه، پیکربندی Docker بالا را تکمیل میکند.
مراحل بعدی
- راهاندازی کانالهای پیامرسانی: کانالها
- پیکربندی Gateway: پیکربندی Gateway
- بهروز نگهداشتن OpenClaw: بهروزرسانی