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 پیش از رزرو درگاه یا ایجاد وضعیت محلی، contextهای راه‌دور 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 منتقل می‌کند؛ در نتیجه اپراتور می‌تواند به‌جای یک tag متغیر، سلول را روی بایت‌های تغییرناپذیر ایمیج نگه دارد.

نتیجه ایجاد شامل شناسه مستأجر، نام کانتینر، درگاه میزبان، توکن 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 محدود کنید و از تغییر مسیر یا pipelineهای معمول shell استفاده کنید.

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 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 دریافت می‌کنند. اگر داده‌های سلول را بازیابی یا جابه‌جا می‌کنید، مسیرهای اتصال مانت‌شده را برای کاربر مؤثر کانتینر قابل‌نوشتن نگه دارید. این پروفایل با حالت بدون ریشه سازگار است، اما 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