Hosting
Hetzner
یک Gateway پایدار OpenClaw را با استفاده از Docker روی یک VPS از Hetzner اجرا کنید؛ بهگونهای که وضعیت ماندگار، فایلهای اجرایی تعبیهشده و رفتار راهاندازی مجدد ایمن داشته باشد.
قیمتگذاری Hetzner تغییر میکند؛ کوچکترین VPS مبتنی بر Debian/Ubuntu را که پاسخگوی نیازتان است انتخاب کنید و اگر با خطاهای کمبود حافظه مواجه شدید، منابع آن را افزایش دهید.
میتوانید از طریق انتقال پورت 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)
- حدود ۲۰ دقیقه
مسیر سریع
- آمادهسازی 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 # Set ownership to the container user (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این فایل را ثبت نکنید. این فایل شامل متغیرهای محیطی کانتینر/محیط اجرا مانند 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: # 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 فقط برای سهولت راهاندازی اولیه است و جایگزین پیکربندی واقعی Gateway نیست. همچنان احراز هویت (gateway.auth.token یا گذرواژه) و یک حالت اتصال ایمن را برای استقرار خود تنظیم کنید.
مراحل مشترک محیط اجرای ماشین مجازی Docker
برای فرایند مشترک میزبان Docker، راهنمای محیط اجرای مشترک را دنبال کنید:
دسترسی مختص Hetzner
پس از انجام مراحل مشترک ساخت و اجرا، تونل را باز کنید.
پیشنیاز: مطمئن شوید پیکربندی 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 قرار دارد.
زیرساخت بهصورت کد (Terraform)
برای تیمهایی که فرایندهای زیرساخت بهصورت کد را ترجیح میدهند، یک پیکربندی Terraform با نگهداری جامعه امکانات زیر را فراهم میکند:
- پیکربندی ماژولار Terraform با مدیریت وضعیت راهدور
- آمادهسازی خودکار از طریق cloud-init
- اسکریپتهای استقرار (راهاندازی اولیه، استقرار، پشتیبانگیری/بازیابی)
- مقاومسازی امنیتی (دیوارهٔ آتش، UFW، دسترسی فقط از طریق SSH)
- پیکربندی تونل SSH برای دسترسی به Gateway
مخازن:
- زیرساخت: openclaw-terraform-hetzner
- پیکربندی Docker: openclaw-docker-config
این رویکرد، پیکربندی Docker بالا را با استقرارهای تکرارپذیر، زیرساخت تحت کنترل نسخه و بازیابی خودکار پس از خرابی تکمیل میکند.
مراحل بعدی
- راهاندازی کانالهای پیامرسانی: کانالها
- پیکربندی Gateway: پیکربندی Gateway
- بهروز نگهداشتن OpenClaw: بهروزرسانی