CLI commands

ناوگان

openclaw fleet

openclaw fleet نمونه‌های کامل OpenClaw را که سلول نامیده می‌شوند مدیریت می‌کند. هر سلول Gateway، وضعیت، اطلاعات احراز هویت، حساب‌های کانال، کانتینر و پورت میزبانِ مختص به loopback خود را دارد. برای هر مرز اعتماد مستأجر از یک سلول استفاده کنید؛ از یک Gateway مشترک به‌عنوان مرز چندمستأجری در محیط متخاصم استفاده نکنید.

Fleet آزمایشی است. نام فرمان‌ها، پرچم‌ها، قالب‌های خروجی و پروفایل کانتینر ممکن است بین انتشارها بدون دوره منسوخ‌سازی تغییر کنند.

Fleet از Docker و Podman پشتیبانی می‌کند. تصویر پیش‌فرض ghcr.io/openclaw/openclaw:latest است.

Fleet روی میزبان‌های Linux و macOS آزمایش شده است. میزبان‌های Windows در حال حاضر آزمایش نشده‌اند.

شروع سریع

bash
openclaw fleet create acmeopenclaw fleet status acmeopenclaw fleet list

fleet create توکن تولیدشده Gateway را همراه با URL سلول فقط یک‌بار چاپ می‌کند. توکن را فوراً ذخیره کنید، سپس حساب‌های کانال هر مستأجر را در سلول همان مستأجر پیکربندی کنید.

شناسه‌های مستأجر

شناسه‌های مستأجر باید با الگوی زیر مطابقت داشته باشند:

text
^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9])?$

این الگو 1 تا 40 حرف کوچک، رقم و خط تیره داخلی را مجاز می‌داند. شناسه باید با حرف یا رقم آغاز و پایان یابد. حروف بزرگ، زیرخط، اسلش، نقطه، فضای خالی و رشته‌های پیمایش مسیر مانند ../acme رد می‌شوند.

شناسه بخشی از نام کانتینر می‌شود: openclaw-cell-<tenant>.

fleet create

یک سلول ایجاد و آن را راه‌اندازی کنید:

bash
openclaw fleet create acme

یک سلول Podman را روی پورتی ثابت، بدون راه‌اندازی آن، ایجاد کنید:

bash
openclaw fleet create acme \  --runtime podman \  --port 19125 \  --no-start

با تکرار --env متغیرهای محیطی مختص مستأجر را ارسال کنید:

bash
openclaw fleet create acme \  --env TZ=America/Los_Angeles \  --env OPENCLAW_DISABLE_BONJOUR=1

کلیدهای محیطی از حروف، ارقام و زیرخط استفاده می‌کنند و نمی‌توانند با رقم آغاز شوند. مقادیر باید تک‌خطی باشند، زیرا Fleet آن‌ها را از طریق یک فایل محیطی محافظت‌شده زمان اجرا منتقل می‌کند. Fleet تلاش برای بازنویسی متغیرهای مدیریت‌شده مسیر کانتینر و توکن Gateway را که در چیدمان ذخیره‌سازی و کانتینر فهرست شده‌اند، رد می‌کند.

گزینه‌های ایجاد

گزینه پیش‌فرض توضیحات
--image <ref> ghcr.io/openclaw/openclaw:latest تصویر کانتینر برای سلول.
--runtime <runtime> docker CLI کانتینر: docker یا podman.
--port <number> تخصیص خودکار از 19100 پورت میزبان مختص به loopback. پورت انتخاب‌شده به‌صورت صریح نباید متعلق به سلول ثبت‌شده دیگری باشد.
--memory <value> 2g محدودیت حافظه کانتینر با نگارش Docker/Podman.
--cpus <value> 2 محدودیت CPU کانتینر.
--disk <size> هیچ‌کدام محدودکردن لایه قابل‌نوشتن کانتینر در صورت پشتیبانی سامانه ذخیره‌سازی از سهمیه‌ها.
--network <mode> bridge حالت شبکه خروجی: bridge یا internal.
--pids-limit <number> 512 حداکثر تعداد فرایندها در کانتینر.
--env &lt;KEY=VALUE&gt; هیچ‌کدام ارسال یک متغیر محیطی به سلول. برای چند مقدار تکرار کنید.
--gateway-token <value> توکن هگزادسیمال تصادفی 32 نویسه‌ای به‌جای تولید توکن، از توکن Gateway ارائه‌شده استفاده کنید. به مدیریت توکن مراجعه کنید.
--no-start سلول راه‌اندازی می‌شود کانتینر را بدون راه‌اندازی آن ایجاد کنید.
--json خروجی خوانا برای انسان خروجی قابل‌خواندن برای ماشین را چاپ کنید.

تخصیص خودکار نخستین پورت استفاده‌نشده رجیستری را در 19100 یا بالاتر انتخاب می‌کند. Fleet شناسه‌های تکراری مستأجر و پورت‌های صریحی را که از قبل به سلول دیگری اختصاص یافته‌اند رد می‌کند.

ارجاع‌های تصویر به‌صورت یک آرگومان زمان اجرای کانتینر ارسال می‌شوند. ارجاع‌های خالی و مقادیری که با - آغاز می‌شوند رد می‌شوند تا تصویر نتواند به‌عنوان یکی از گزینه‌های Docker یا Podman تفسیر شود.

نقطه پایانی انتخاب‌شده Docker یا Podman باید محلی باشد. Fleet پیش از رزرو پورت یا ایجاد وضعیت محلی، زمینه‌های راه‌دور Docker، نقاط پایانی DOCKER_HOST و سرویس‌های راه‌دور Podman را رد می‌کند. میزبان‌های راه‌دور سلول پشتیبانی نمی‌شوند.

هنگامی که Fleet یک سلول جدید را راه‌اندازی می‌کند، عملیات ایجاد تا حدود یک دقیقه منتظر می‌ماند تا Gateway آن به /healthz پاسخ دهد. اگر سلول سالم نشود، Fleet کانتینر و ردیف رجیستری آن را برای fleet status، fleet logs یا حذف صریح دست‌نخورده نگه می‌دارد. --no-start این دروازه بررسی سلامت را نادیده می‌گیرد. توکن تولیدشده Gateway برای یک سلول جدید ناسالم از بین نمی‌رود — در محیط کانتینر (docker|podman inspect) باقی می‌ماند و چون سلول هنوز هیچ ترافیکی ارائه نکرده است، اجرای fleet rm --force و سپس ایجاد مجدد همیشه جایگزینی امن است.

سنجاق‌کردن با digest

عملیات ایجاد و ارتقا، ارجاع‌های تصویر سنجاق‌شده با digest مانند --image ghcr.io/openclaw/openclaw@sha256:<digest> را می‌پذیرند. Fleet ارجاع تصویر را بدون تغییر به Docker یا Podman منتقل می‌کند و بدین‌ترتیب اپراتور می‌تواند به‌جای یک تگ متغیر، سلول را روی بایت‌های تغییرناپذیر تصویر نگه دارد.

نتیجه ایجاد شامل شناسه مستأجر، نام کانتینر، پورت میزبان، توکن Gateway و URL محلی است. حتی در خروجی JSON نیز نتیجه را حاوی اطلاعات محرمانه در نظر بگیرید، زیرا توکن را در بر دارد.

محدودیت‌های دیسک

--disk فقط لایه قابل‌نوشتن کانتینر را محدود می‌کند. پوشه‌های وضعیت و احراز هویت هر مستأجر که با bind mount متصل شده‌اند، در فضای ذخیره‌سازی میزبان باقی می‌مانند؛ اگر آن پوشه‌ها نیز به محدودیت سخت نیاز دارند، از سهمیه‌های پروژه سامانه فایل میزبان استفاده کنید.

زمان اجرا/سامانه ذخیره‌سازی پشتیبانی از --disk
Docker overlay2 روی XFS به گزینه mount ‏pquota در XFS نیاز دارد.
Docker btrfs یا zfs توسط درایور ذخیره‌سازی پشتیبانی می‌شود.
Podman overlay به فضای ذخیره‌سازی پشتیبان XFS نیاز دارد.
سایر سامانه‌ها ایجاد کانتینر با خطای daemon و راهنمایی Fleet درباره سامانه ذخیره‌سازی ناموفق می‌شود.

سیاست خروجی

حالت Docker Podman
bridge پشتیبانی می‌شود؛ خروج ترافیک به‌صورت پیش‌فرض نامحدود است. پشتیبانی می‌شود؛ خروج ترافیک به‌صورت پیش‌فرض نامحدود است.
internal رد می‌شود، زیرا Docker پورت منتشرشده loopback مربوط به Gateway را در شبکه داخلی حفظ نمی‌کند. پشتیبانی می‌شود؛ درحالی‌که خروج ترافیک مسدود است، Gateway روی loopback منتشرشده باقی می‌ماند.

برای Docker، حالت bridge را حفظ کنید و سیاست خروجی را با قواعد دیواره آتش میزبان مانند زنجیره DOCKER-USER اعمال کنید.

fleet list

سلول‌ها را به‌ترتیب شناسه مستأجر فهرست کنید:

bash
openclaw fleet listopenclaw fleet lsopenclaw fleet list --json

جدول شامل موارد زیر است:

ستون معنا
tenant شناسه مستأجر.
state وضعیت زنده کانتینر از بازرسی Docker یا Podman. unknown به این معناست که زمان اجرا در دسترس نبوده، یا کانتینری با نام سلول وجود دارد اما برچسب‌های مالکیت Fleet آن با رکورد رجیستری مطابقت ندارند (نشانه برخورد یا دست‌کاری — پیش از هر اقدامی آن را به‌صورت دستی بررسی کنید).
port پورت میزبان مختص به loopback که به Gateway سلول نگاشت شده است.
image تصویر ثبت‌شده کانتینر.
created زمان ایجاد سلول.

وقتی Docker یا Podman در دسترس نیست، ردیف‌های رجیستری همچنان قابل‌مشاهده می‌مانند؛ فقط وضعیت زنده به unknown تبدیل می‌شود.

fleet status

یک سلول را بررسی کنید:

bash
openclaw fleet status acmeopenclaw fleet status acme --json

وضعیت، ردیف رجیستری Fleet، بازرسی زنده کانتینر و یک درخواست کوتاه با بهترین تلاش به نشانی زیر را ترکیب می‌کند:

text
http://127.0.0.1:<host-port>/healthz

نتیجه سلامت ok، failed یا skipped است. /healthz زنده‌بودن Gateway را اثبات می‌کند، نه آمادگی کامل همه کانال‌ها یا Pluginهای پیکربندی‌شده را. وقتی نقطه پایانی محلی قابل‌استفاده‌ای برای بررسی وجود نداشته باشد، این کاوش انجام نمی‌شود.

fleet logs

گزارش‌های کانتینر یک سلول را مستقیماً و به‌صورت جریانی به ترمینال ارسال کنید:

bash
openclaw fleet logs acmeopenclaw fleet logs acme --followopenclaw fleet logs acme --tail 200openclaw fleet logs acme --since 10m

Fleet پیش از خواندن هر گزارشی، برچسب‌های مالکیت کانتینر ثبت‌شده را بررسی می‌کند؛ بنابراین کانتینر بیگانه‌ای را که از نام مورد انتظار سلول استفاده می‌کند نمی‌پذیرد. جریان به شناسه همان کانتینر بازرسی‌شده سنجاق می‌شود، بنابراین جایگزینی هم‌زمان نمی‌تواند آن را به نسل جدیدتری هدایت کند. برای پایان‌دادن به --follow، بدون آن‌که توقف اپراتور به‌عنوان شکست فرمان تلقی شود، Ctrl-C را فشار دهید. خروجی گزارش از فیلتر حذف اطلاعات حساس عبور داده می‌شود که پیش از رسیدن هر چیزی به ترمینال، توکن فعلی Gateway سلول را با <redacted> جایگزین می‌کند.

fleet logs حالت --json ندارد، زیرا گزارش‌های کانتینر جریانی خام از stdout/stderr هستند. برای اسکریپت‌ها، خروجی را با --tail محدود کنید و از تغییر مسیر یا پایپ‌لاین‌های معمول پوسته استفاده کنید.

fleet start، fleet stop و fleet restart

یک سلول موجود را با زمان‌اجرای ثبت‌شده آن کنترل کنید:

bash
openclaw fleet start acmeopenclaw fleet stop acmeopenclaw fleet restart acme

این فرمان‌ها روی نام کانتینر ثبت‌شده عمل می‌کنند. اگر مستأجر ناشناخته باشد یا زمان‌اجرای ثبت‌شده نتواند عملیات را انجام دهد، فرمان‌ها با خطا مواجه می‌شوند.

fleet upgrade

ایمیج ثبت‌شده را دوباره دریافت و کانتینر سلول را جایگزین کنید:

bash
openclaw fleet upgrade acme

سلول را به ایمیج دیگری منتقل کنید:

bash
openclaw fleet upgrade acme --image ghcr.io/openclaw/openclaw:<version>

ارتقا ایمیج مقصد را دریافت می‌کند، کانتینر موجود و شبکه مختص سلول را بررسی می‌کند، کانتینر را متوقف و حذف می‌کند، سپس آن را دوباره ایجاد و راه‌اندازی می‌کند. جایگزین، همان پورت میزبان، دایرکتوری‌های داده، شبکه پل مختص سلول، پروفایل زمان‌اجرا، محدودیت‌های منابع، سیاست راه‌اندازی مجدد، محیط مدیریت‌شده توسط Fleet و مقادیری را که ابتدا با --env ارائه شده‌اند حفظ می‌کند. وضعیت سوارشده پس از جایگزینی کانتینر باقی می‌ماند؛ محیط پیش‌فرض ایمیج ممکن است با ایمیج مقصد تغییر کند.

جایگزین فقط پس از آن نهایی می‌شود که Gateway آن در پورت لوپ‌بک سلول به /healthz پاسخ دهد؛ این رفتار با قرارداد سلامت مورد استفاده فایل رسمی compose مطابقت دارد. جایگزینی که خارج شود، وارد چرخه خرابی شود یا ظرف حدود یک دقیقه سالم نشود، حذف و کانتینر قبلی بازیابی می‌شود تا یک ایمیج معیوب باعث از کار افتادن سلول فعال نشود.

توکن Gateway عمداً در رجیستری Fleet ذخیره نمی‌شود. پیش از حذف کانتینر قدیمی، Fleet محیط آن را می‌خواند و OPENCLAW_GATEWAY_TOKEN را به جایگزین منتقل می‌کند. اگر توکن در هیچ محل دیگری تحت کنترل شما موجود نیست، پیش از ارتقا کانتینر قدیمی را به‌صورت دستی حذف نکنید.

fleet backup و fleet restore

از یک سلول متوقف‌شده نسخه پشتیبان بگیرید:

bash
openclaw fleet stop acmeopenclaw fleet backup acme --out ./acme.tgz

آن آرشیو را در سلول ثبت‌شده بازیابی کنید:

bash
openclaw fleet restore acme --from ./acme.tgz

این فرمان‌ها به امتیازات اپراتور میزبان نیاز دارند. آرشیوها شامل وضعیت مستأجر و اسرار احراز هویت هستند، با حالت 0600 ایجاد می‌شوند و باید مانند اعتبارنامه‌ها نگهداری شوند. پشتیبان‌گیری از سلول در حال اجرا خودداری می‌کند تا وضعیت SQLite به‌طور سازگار ثبت شود. بازیابی، مگر با ارائه --force، از بازیابی سلول در حال اجرا خودداری می‌کند، فقط وضعیت همان مستأجر را جایگزین می‌کند، توکن Gateway را می‌چرخاند و توکن جدید را یک‌بار چاپ می‌کند. Fleet هر بار از یک مستأجر نسخه پشتیبان می‌گیرد؛ پشتیبان‌گیری از همه مستأجرها عملیاتی جداگانه برای اپراتور است.

بازیابی به یک کانتینر موجود و متوقف‌شده نیاز دارد، زیرا پروفایل زمان‌اجرای بررسی‌شده آن، محدودیت‌های جایگزین، نگاشت کاربر، منشأ محیط و ایمیج را تأمین می‌کند. اگر کانتینر ثبت‌شده خارج از Fleet حذف شده است، ابتدا fleet rm <tenant> --force را بدون --purge-data اجرا کنید، سلول را با ایمیج موردنظر و --no-start دوباره ایجاد کنید و سپس بازیابی را دوباره امتحان کنید. حذف نخست هر دو دایرکتوری داده مستأجر را دست‌نخورده نگه می‌دارد.

هر دو فرمان برای محدودکردن داده فایل آرشیوشده یا استخراج‌شده، --max-bytes <bytes> را می‌پذیرند و هر دو همان بودجه ثابت یک‌میلیونی برای بخش‌های مسیر آرشیو را اعمال می‌کنند تا بمب‌های آرشیویِ صرفاً حاوی فراداده نتوانند inodeهای میزبان را تمام کنند و هر نسخه پشتیبان پذیرفته‌شده قابل بازیابی باقی بماند. پشتیبان‌گیری --out <path> را می‌پذیرد و هر دو فرمان از --json پشتیبانی می‌کنند.

آرشیوها فقط شامل فایل‌ها و دایرکتوری‌های عادی هستند. پشتیبان‌گیری هرگز پیوندهای نمادین، پیوندهای سخت، سوکت‌ها یا گره‌های دستگاه را دنبال یا ذخیره نمی‌کند؛ تعداد موارد نادیده‌گرفته‌شده در نتیجه گزارش می‌شود. بازیابی، آرشیوهای شامل هر نوع ورودی دیگری را رد می‌کند. درخت‌های پیوند نمادین قابل‌بازسازی، مانند node_modules فضای کاری، باید پس از بازیابی درون سلول دوباره نصب شوند.

fleet doctor

بدون تغییر وضعیت زمان‌اجرا یا سیستم فایل، همه سلول‌ها یا یک مستأجر را ممیزی کنید:

bash
openclaw fleet doctoropenclaw fleet doctor acme --json

Doctor محلی‌بودن زمان‌اجرا، برچسب‌های مالکیت، سلامت، سخت‌سازی، محدودیت‌های منابع، اتصال پورت لوپ‌بک، وجود توکن، مالکیت شبکه و حالت خروجی شبکه، و مجوزهای دایرکتوری خصوصی وضعیت را بررسی می‌کند. هشدارها سلول‌های متوقف‌شده یا تفاوت‌های مالکیت را توصیف می‌کنند؛ هر یافته ناموفق، کد خروج غیرصفر برای فرایند تنظیم می‌کند.

fleet rm

یک سلول متوقف‌شده را با حفظ داده‌های مستأجر از زمان‌اجرا و رجیستری حذف کنید:

bash
openclaw fleet rm acme

کانتینر در حال اجرا به --force نیاز دارد:

bash
openclaw fleet rm acme --force

داده‌های سلول را نیز برای همیشه حذف کنید:

bash
openclaw fleet rm acme --purge-data --force

Fleet کانتینر سلول را پیش از حذف شبکه پل اختصاصی آن حذف می‌کند. --purge-data به --force نیاز دارد. پیش از حذف بازگشتی، Fleet هر دو ریشه متعلق به Fleet و هر دو دایرکتوری مختص مستأجر را تفکیک می‌کند. هر مقصد باید دقیقاً برگ موردانتظار مستأجر، کاملاً درون ریشه خود و فاقد پیوند نمادین باشد. این بررسی‌های محصورسازی مانع می‌شوند که مسیر خراب رجیستری یا پیوند نمادین بین مستأجرها، حذف را به محل دیگری هدایت کند.

اگر دایرکتوری دقیق و موردانتظار مستأجر از قبل وجود نداشته باشد، پاک‌سازی را می‌توان دوباره امتحان کرد. این امکان به فراخوانی بعدی اجازه می‌دهد پس از خرابی جزئی سیستم فایل، پاک‌سازی را بدون کاهش سخت‌گیری بررسی‌های مسیر برای دایرکتوری‌های باقی‌مانده کامل کند.

چیدمان فضای ذخیره‌سازی و کانتینر

وضعیت سلول و کلیدهای رمزگذاری پروفایل احراز هویت از مسیرهای جداگانه مختص هر مستأجر در زیر دایرکتوری فعال وضعیت OpenClaw استفاده می‌کنند:

text
<state-dir>/fleet/cells/<tenant>/<state-dir>/fleet/auth-profile-secrets/<tenant>/

دایرکتوری نخست در /home/node/.openclaw سوار می‌شود. دایرکتوری دوم در /home/node/.config/openclaw سوار می‌شود که با محل سوارشدن کلید رمزگذاری در تنظیم رسمی Docker مطابقت دارد. بنابراین کلید رمزگذاری زیر محل سوارشدن عادی وضعیت افشا نمی‌شود و هنگام پشتیبان‌گیری یا اشتراک‌گذاری صرفاً دایرکتوری وضعیت سلول نیز گنجانده نمی‌شود. هر دو دایرکتوری پس از حذف و ارتقای عادی باقی می‌مانند؛ fleet rm --purge-data --force هر دو را پس از بررسی‌های محصورسازی جداگانه حذف می‌کند.

پیش از نخستین راه‌اندازی، Fleet پیکربندی سلول را با gateway.mode=local، احراز هویت توکنی، اتصال کانتینر LAN و مبدأهای Control UI برای پورت میزبان تخصیص‌یافته مقداردهی اولیه می‌کند. مقدار توکن در آن پیکربندی نوشته نمی‌شود؛ این مقدار در محیط کانتینر باقی می‌ماند.

Fleet مسیرهای کانتینر ایمیج رسمی را با این مقادیر محیطی ثابت می‌کند:

متغیر مقدار کانتینر
HOME /home/node
OPENCLAW_HOME /home/node
OPENCLAW_STATE_DIR /home/node/.openclaw
OPENCLAW_CONFIG_PATH /home/node/.openclaw/openclaw.json
OPENCLAW_WORKSPACE_DIR /home/node/.openclaw/workspace
OPENCLAW_GATEWAY_TOKEN توکن سلول تولیدشده یا ارائه‌شده

ایمیج رسمی به‌طور پیش‌فرض از کاربر غیرریشه node با UID 1000 استفاده می‌کند. Fleet محل‌های سوارشدن خصوصی 0700 را بدون دسترس‌پذیرکردن آن‌ها برای همه، قابل‌نوشتن نگه می‌دارد. Docker ریشه‌دار سلول را با UID و GID کاربر غیرریشه فراخوان اجرا می‌کند؛ Docker بدون ریشه از UID 0 کانتینر استفاده می‌کند که در فضای نام کاربر daemon به کاربر میزبانِ فاقد امتیازِ فراخوان نگاشت می‌شود. Podman از keep-id با UID و GID فراخوان استفاده می‌کند. هنگامی که خود Fleet به‌عنوان root در برابر یک زمان‌اجرای ریشه‌دار اجرا شود، کاربر ایمیج را حفظ می‌کند و فایل‌های اولیه محل سوارشدن را به UID/GID 1000 اختصاص می‌دهد.

در میزبان‌های SELinux، محل‌های سوارشدن Docker و Podman بازبرچسب‌گذاری خصوصی :Z دریافت می‌کنند. اگر داده‌های سلول را بازیابی یا جابه‌جا می‌کنید، مسیرهای bind-mounted را برای کاربر مؤثر کانتینر قابل‌نوشتن نگه دارید. این پروفایل با اجرای بدون ریشه سازگار است، اما Docker یا Podman باید از قبل برای اجرای بدون ریشه روی میزبان پیکربندی شده باشد؛ Fleet یک daemon ریشه‌دار را به daemon بدون ریشه تبدیل نمی‌کند.

پروفایل امنیتی

Fleet پروفایل زیر را روی هر سلول اعمال می‌کند:

کنترل پروفایل اعمال‌شده دلیل
قابلیت‌های Linux --cap-drop=ALL Gateway یک فرایند Node.js است و به هیچ قابلیت افزوده Linux نیاز ندارد.
افزایش امتیاز --security-opt no-new-privileges مانع می‌شود فرایندها از طریق باینری‌های setuid یا setgid امتیاز کسب کنند.
فرایند init --init فرایندهای فرزند را جمع‌آوری و سیگنال‌های چرخه‌عمر کانتینر را هدایت می‌کند.
محدودیت فرایند به‌طور پیش‌فرض --pids-limit 512 انشعاب و اتمام ظرفیت فرایندها را محدود می‌کند.
محدودیت حافظه به‌طور پیش‌فرض --memory 2g مصرف حافظه سلول را محدود می‌کند.
محدودیت CPU به‌طور پیش‌فرض --cpus 2 مصرف CPU سلول را محدود می‌کند.
دیسک لایه قابل‌نوشتن --disk اختیاری هنگامی که بک‌اند ذخیره‌سازی زمان‌اجرا از سهمیه‌ها پشتیبانی کند، لایه کانتینر را محدود می‌کند.
سیاست راه‌اندازی مجدد --restart unless-stopped سلول ناموفق را بدون لغو توقف عمدی دوباره راه‌اندازی می‌کند.
انتشار میزبان فقط 127.0.0.1:<host-port>:18789 Gateway را از رابط‌های wildcard میزبان دور نگه می‌دارد.
شبکه سلول یک شبکه پل یا شبکه داخلی Podman برای هر سلول ترافیک IP کانتینر را جدا می‌کند و در صورت انتخاب، خروجی شبکه Podman را مسدود می‌کند.
هویت کانتینر نگاشت کاربر مطابق میزبان محل‌های سوارشدن خصوصی را بدون اعطای دسترسی همگانی قابل‌نوشتن نگه می‌دارد.
وضعیت پایدار محل‌های سوارشدن مختص سلول؛ بدون محل سوارشدن وضعیت مشترک پیکربندی، اعتبارنامه‌ها، نشست‌ها و فضاهای کاری مستأجر را در درخت داده همان مستأجر نگه می‌دارد.
فرمان کانتینر node dist/index.js gateway --bind lan --port 18789 روی شبکه کانتینر گوش می‌دهد تا نگاشت پورت میزبانِ فقط لوپ‌بک بتواند به آن دسترسی پیدا کند.

Fleet هرگز /var/run/docker.sock را سوار نمی‌کند، از --privileged یا شبکه میزبان استفاده نمی‌کند و قابلیتی نمی‌افزاید. پل مختص سلول یک مرز جداسازی بین سلول‌ها است، نه دیوار آتش خروجی: سلول‌ها دسترسی خروجی شبکه موردنیاز برای ارائه‌دهندگان و کانال‌ها را حفظ می‌کنند. پورت لوپ‌بک را با پراکسی، تونل SSH یا پیکربندی tailnet متناسب با استقرار خود در دسترس قرار دهید. http://127.0.0.1:<port> فقط مستقیماً از میزبان Fleet قابل‌دسترسی است.

این پروفایل کانتینرهای مستأجران را جدا می‌کند، اما از مستأجران در برابر اپراتور Fleet، مدیر زمان‌اجرای کانتینر یا میزبان به‌خطر‌افتاده محافظت نمی‌کند. برای مدل اعتماد کامل و گزینه‌های جداسازی قوی‌تر، به میزبانی چندمستأجری مراجعه کنید.

مدیریت توکن

به‌طور پیش‌فرض، fleet create یک توکن Gateway هگزادسیمال 32 نویسه‌ای و تصادفی از نظر رمزنگاری تولید می‌کند و آن را یک‌بار در نتیجه ایجاد چاپ می‌کند. آن را در مدیر اسرار تأییدشده خود ذخیره کنید و از ثبت خروجی ایجاد در گزارش‌ها بپرهیزید.

--gateway-token یک توکن سفارشی را در آرگومان‌های فرایند محلی قرار می‌دهد که ممکن است در تاریخچه پوسته حفظ شود یا در فهرست فرایندها قابل‌مشاهده باشد. مگر آنکه گردش‌کار موجود مدیریت اسرار به مقدار ارائه‌شده نیاز داشته باشد، توکن تولیدشده را ترجیح دهید.

توکن و هر مقداری که با --env ارسال شود در محیط کانتینر قرار می‌گیرند. Fleet آن‌ها را در یک فایل محیطی کوتاه‌عمر با حالت 0600 می‌نویسد، فقط مسیر آن فایل را به Docker یا Podman می‌دهد و پس از پایان فرمان زمان‌اجرا فایل را حذف می‌کند. مقادیری که صریحاً در openclaw fleet create --gateway-token ... یا --env KEY=VALUE تایپ می‌شوند، همچنان ممکن است در آرگومان‌های فرایند بیرونی openclaw و تاریخچه پوسته قابل‌مشاهده باشند.

مقادیر محیطی کانتینر از اپراتور مورد اعتماد میزبان پنهان نیستند: مدیران Docker یا Podman می‌توانند آن‌ها را با بازرسی کانتینر بخوانند. یادداشت «فقط یک‌بار نمایش داده می‌شود» در Fleet، خروجی معمول CLI را توصیف می‌کند، نه مقاومت در برابر مدیر میزبان.

مرتبط

Was this useful?
On this page

On this page