Hosting
Hetzner
شغّل Gateway دائمًا لـ OpenClaw على خادم Hetzner VPS باستخدام Docker، مع حالة دائمة، وملفات تنفيذية مضمّنة في الصورة، وسلوك آمن عند إعادة التشغيل.
تتغير أسعار Hetzner؛ اختر أصغر خادم Debian/Ubuntu VPS يلبي احتياجاتك، ثم وسّع موارده إذا واجهت حالات نفاد الذاكرة.
يمكن الوصول إلى Gateway عبر إعادة توجيه منفذ SSH من حاسوبك المحمول، أو عبر كشف المنفذ مباشرةً إذا كنت تدير جدار الحماية والرموز المميزة بنفسك.
تذكير بنموذج الأمان:
- لا بأس بالوكلاء المشتركين على مستوى الشركة عندما يكون الجميع ضمن حدود الثقة نفسها وتكون بيئة التشغيل مخصصة للأعمال فقط.
- حافظ على فصل صارم: خادم VPS وبيئة تشغيل مخصصان + حسابات مخصصة؛ ولا تستخدم ملفات تعريف Apple أو Google أو المتصفح أو مدير كلمات المرور الشخصية على ذلك المضيف.
- إذا كان المستخدمون يمثلون تهديدًا لبعضهم، فافصل بينهم حسب Gateway أو المضيف أو مستخدم نظام التشغيل.
راجع الأمان والاستضافة على VPS.
يفترض هذا الدليل استخدام Ubuntu أو Debian على Hetzner. على خادم Linux VPS آخر، استخدم الحزم المكافئة. للاطلاع على مسار Docker العام، راجع Docker.
ما تحتاج إليه
- خادم Hetzner VPS مع صلاحيات الجذر
- وصول عبر SSH من حاسوبك المحمول
- Docker وDocker Compose
- بيانات اعتماد مصادقة النموذج
- بيانات اعتماد اختيارية لموفري الخدمات (رمز QR لـ WhatsApp، أو رمز بوت Telegram، أو Gmail OAuth)
- نحو 20 دقيقة
المسار السريع
- جهّز خادم Hetzner VPS
- ثبّت Docker
- استنسخ مستودع OpenClaw
- أنشئ أدلة دائمة على المضيف
- اضبط
.envوdocker-compose.yml - ضمّن الملفات التنفيذية المطلوبة في الصورة
- نفّذ
docker compose up -d - تحقّق من استمرارية الحالة وإمكانية الوصول إلى Gateway
تجهيز خادم VPS
أنشئ خادم Ubuntu أو Debian VPS في Hetzner، ثم اتصل به بصفة المستخدم الجذر:
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عيّن OPENCLAW_GATEWAY_TOKEN لإدارة رمز Gateway المميز الثابت من خلال
.env؛ وإلا فاضبط 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 محدّثًا: التحديث