Skip to Content
خط فرمان (CLI)مرجع دستورها

مرجع کامل دستورها

مرجع کامل دستورها

همهٔ دستورها با ساختار gerdoo <command> [subcommand] [args] [flags] اجرا می‌شوند. هر جا <slug|id> آمده، می‌توانید نام کوتاه (slug) یا شناسهٔ سرویس را بدهید. دستورهای فهرست/نمایش، فلگ --json را می‌پذیرند تا خروجی خام API چاپ شود (مناسب اسکریپت و CI). متغیرهای محیطی GERDOO_API و GERDOO_TOKEN آدرس API و توکن را بازنویسی می‌کنند.

احراز هویت و حساب

ورود به حساب گردو و مدیریت توکن CLI. توکن در ~/.config/gerdoo/config.json ذخیره می‌شود.

gerdoo login [--no-browser] [--token <grd_...>] [--password] [--api <url>]

ورود از طریق مرورگر: CLI یک کد کوتاه نمایش می‌دهد، صفحهٔ تأیید گردو را باز می‌کند و پس از تأیید شما توکن CLI را دریافت می‌کند. رمز عبور در ترمینال وارد نمی‌شود.

فلگتوضیح
--no-browserبه‌جای باز کردن مرورگر، فقط آدرس تأیید را چاپ کن (مناسب ماشین راه دور).
--token <grd_...>یک توکن موجود را اعتبارسنجی و ذخیره کن (مناسب CI و دستیارها).
--passwordروش قدیمی: ورود با ایمیل/موبایل و رمز عبور (برای محیط‌های بدون مرورگر).
--api <url>آدرس API برای اتصال (پیش‌فرض https://api.gerdoo.cloud ).
gerdoo logout

حذف توکن و فایل تنظیمات ذخیره‌شده.

gerdoo whoami

نمایش حساب واردشدهٔ فعلی (نام، ایمیل، شماره).

توکن‌های API و توکن‌های محدود

gerdoo token create [--name <n>] [--read-only] [--project <slug|id>] [--spend-cap <toman>] [--json] gerdoo token list [--json] gerdoo token revoke <id>

ساخت توکن برای CI یا دستیار هوشمند. مقدار توکن فقط یک بار نمایش داده می‌شود. همین کار را از داشبورد، در بخش «توکن‌های API» منوی «برنامه‌ها»، هم می‌توانید انجام دهید. توکنی که gerdoo login می‌سازد دسترسی کامل دارد؛ برای دستیارها توکن محدود بسازید:

فلگتوضیح
--read-onlyفقط خواندن (درخواست‌های GET)؛ هیچ چیزی را تغییر نمی‌دهد.
--project <slug|id>توکن فقط همین اپلیکیشن و سرویس‌ها و افزونه‌هایش را می‌بیند و تغییر می‌دهد. فهرست پروژه‌ها و بقیهٔ حساب برایش در دسترس نیست.
--spend-cap <toman>پس از رسیدن مصرف تسویه‌شدهٔ ماه جاری (کل حساب، یا همان اپلیکیشن اگر توکن محدود به یک اپلیکیشن است) به این مبلغ، ساخت یا افزایش منابع با این توکن خطای ۴۰۲ می‌گیرد. استقرار مجدد و راه‌اندازی مجدد همچنان کار می‌کند.

توکن محدود نمی‌تواند توکن بسازد یا حذف کند. اگر سرور هنوز محدودیت‌ها را پشتیبانی نکند، CLI توکن ساخته‌شده را باطل می‌کند و خطا می‌دهد تا توکنی با دسترسی کامل به‌جای توکن محدود در دست شما نماند.

GERDOO_TOKEN=grd_... gerdoo mcp

پروژه‌ها (Workspaces)

پروژه، فضای کاری‌ای است که سرویس‌ها، محیط‌ها و دامنه‌ها را گروه‌بندی می‌کند.

gerdoo projects [--json]

فهرست پروژه‌های شما همراه با تعداد سرویس‌ها و سرورها.

فلگتوضیح
--jsonچاپ پاسخ خام API به‌جای جدول.
gerdoo project get <slug|id> [--json]

نمایش جزئیات یک پروژه شامل سرویس‌ها و دامنه‌ها.

فلگتوضیح
--jsonچاپ پاسخ خام API.
gerdoo project create --name <n> [--description <d>]

ساخت یک پروژهٔ جدید.

فلگتوضیح
--name <n>نام پروژه (الزامی).
--description <d>توضیح اختیاری پروژه.
gerdoo project update <slug|id> [--name <n>] [--description <d>]

ویرایش نام یا توضیح پروژه.

فلگتوضیح
--name <n>نام جدید پروژه.
--description <d>توضیح جدید پروژه.
gerdoo project delete <slug|id>

حذف پروژه (با تأیید تعاملی؛ ابتدا باید سرویس‌ها و منابع آن حذف شوند).

محیط‌ها (Environments)

محیط‌های یک پروژه (production/staging/preview) و متغیرهای آن‌ها. شناسهٔ محیط را با نام یا id بدهید.

gerdoo project env <project> list [--json]

فهرست محیط‌های یک پروژه.

فلگتوضیح
--jsonچاپ پاسخ خام API.
gerdoo project env <project> create [flags]

ساخت محیط جدید در پروژه.

فلگتوضیح
--name <n>نام محیط (پیش‌فرض: مقدار type).
--type <t>نوع محیط: production | staging | preview (پیش‌فرض staging).
--branch <b>شاخهٔ گیت منبع.
--auto-deployدیپلوی خودکار با هر push (پیش‌فرض روشن).
gerdoo project env <project> get <env> [--json]

نمایش جزئیات یک محیط.

gerdoo project env <project> update <env> [flags]

ویرایش یک محیط.

فلگتوضیح
--name <n>نام جدید محیط.
--branch <b>شاخهٔ گیت منبع.
--auto-deployروشن/خاموش کردن دیپلوی خودکار.
gerdoo project env <project> delete <env>

حذف یک محیط (محیط production قابل حذف نیست).

gerdoo project env <project> vars <env> [--json]

فهرست متغیرهای محیط (مقادیر ماسک‌شده).

gerdoo project env <project> vars <env> set KEY=VALUE [--build-time]

افزودن یا ویرایش متغیر محیط.

فلگتوضیح
--build-timeتزریق متغیر در زمان بیلد علاوه بر ران‌ تایم.
gerdoo project env <project> vars <env> rm KEY [KEY...]

حذف یک یا چند متغیر محیط.

سرویس‌ها — فهرست و ساخت

gerdoo services [--json]

فهرست همهٔ سرویس‌ها (گیت و ایمیج).

فلگتوضیح
--jsonچاپ پاسخ خام API.
gerdoo service create --name <n> --image <img> [flags]

ساخت سرویس از یک ایمیج Docker آماده.

فلگتوضیح
--name <n>نام سرویس (الزامی).
--image <img>ایمیج Docker برای اجرا (الزامی).
--expose <mode>نوع دسترسی: http | tcp | private.
--privateخصوصی‌کردن سرویس (معادل —expose private).
--port Nپورت داخلی برای expose (۰ = پیش‌فرض ایمیج).
--env K=Vمتغیر محیطی (قابل تکرار).
--project <slug|id>پروژهٔ مقصد (پیش‌فرض Default).

دیپلوی از پوشهٔ محلی

ساخت یا به‌روزرسانی یک سرویس همیشه‌روشن از سورس محلی. بدون فلگ کار می‌کند.

gerdoo deploy [dir]

بسته‌بندی و آپلود پوشه (پیش‌فرض «.»)؛ سرویس لینک‌شده را به‌روزرسانی می‌کند یا در نبود آن سرویس جدید می‌سازد.

فلگتوضیح
--service <slug|id>دیپلوی روی این سرویس مشخص (به‌جای لینک .gerdoo).
--name <n>نام سرویس جدید (پیش‌فرض: نام پوشه).
-y, --yesرد شدن از تأیید تعاملی هنگام ساخت سرویس جدید.
--project <slug|id>پروژهٔ مقصد برای سرویس جدید (پیش‌فرض Default).
--privateخصوصی‌کردن سرویس.
--port Nپورت داخلی (پیش‌فرض: مقدار $PORT برنامه).
--framework <name>راهنمای تشخیص استک برای بیلد.
--env K=Vمتغیر محیطی (قابل تکرار).
gerdoo service deploy [dir]

نام مستعار «gerdoo deploy» با همان فلگ‌ها.

بررسی پیش از دیپلوی و فایل gerdoo.json

gerdoo check [dir] [--json]

بدون آپلود و دیپلوی، پوشه را برای دلایل رایج شکست اولین دیپلوی بررسی می‌کند. همین بررسی‌ها پیش از هر gerdoo deploy هم اجرا و چاپ می‌شوند. هیچ‌کدام جلوی دیپلوی را نمی‌گیرند؛ فقط هشدار می‌دهند و راه‌حل را می‌گویند.

بررسیمعنی
missing_start_scriptpackage.json اسکریپت start ندارد و Dockerfile یا دستور شروع هم تعریف نشده است.
hardcoded_portبرنامه روی یک پورت ثابت گوش می‌دهد و PORT را نمی‌خواند.
bound_to_loopbackسرور فقط به localhost یا 127.0.0.1 وصل شده و مسیریاب پلتفرم به آن نمی‌رسد.
sqlite_on_ephemeral_diskاستفاده از SQLite؛ دیسک کانتینر با هر دیپلوی عوض می‌شود. از افزونهٔ Postgres یا Volume استفاده کنید.
committed_env_file، secret_in_sourceفایل .env یا یک اعتبارنامهٔ داخل کد همراه سورس آپلود می‌شود. مقدار آن در خروجی نمایش داده نمی‌شود.
missing_python_requirementsفایل پایتون هست ولی requirements.txt یا pyproject.toml نیست.
env_vars_referenced، required_env_unsetمتغیرهایی که کد می‌خواند یا در env_required آمده، ولی هیچ‌جا مقدار ندارند.

برای ثابت‌کردن نحوهٔ اجرای پروژه، فایل اختیاری gerdoo.json را در ریشهٔ پروژه بگذارید. فقط برای سرویس جدید مقدار پیش‌فرض می‌دهد؛ فلگ‌ها همیشه بر آن اولویت دارند و فیلد ناشناخته (مثلاً start_cmd) خطا می‌دهد.

{ "name": "shop", "framework": "node", "port": 8080, "start_command": "node server.js", "env": { "LOG_LEVEL": "info" }, "env_required": ["DATABASE_URL", "SESSION_SECRET"], "health_path": "/healthz" }

فیلدهای مجاز: name، project، framework، port، private، build_command، start_command، root_dir، dockerfile، build_context، env، env_required و health_path.

فایل gerdoo.json همراه کد در گیت می‌ماند؛ در env فقط مقدار غیرحساس بنویسید. رمزها را با gerdoo service vars (گزینهٔ --secret) تنظیم کنید و فقط نامشان را در env_required بیاورید.

سرویس‌ها — پیکربندی و چرخهٔ حیات

gerdoo service status <slug|id>

وضعیت، URL، endpoint خام TCP و مصرف زندهٔ CPU/حافظه.

gerdoo service logs <slug|id> [--tail N]

آخرین خطوط لاگ کانتینر.

فلگتوضیح
--tail Nتعداد خطوط لاگ (پیش‌فرض ۲۰۰).
gerdoo service stop <slug|id>

توقف سرویس در حال اجرا (وضعیت stopped؛ Volumeها حفظ می‌شوند).

gerdoo service start <slug|id>

راه‌اندازی مجدد سرویس متوقف‌شده.

gerdoo service restart <slug|id>

ری‌استارت سرویس در حال اجرا (بدون تغییر وضعیت پایدار).

gerdoo service update <slug|id> [flags]

به‌روزرسانی ایمیج/شاخه/متغیرها؛ تغییر ایمیج یا متغیر باعث بازسازی سرویس می‌شود.

فلگتوضیح
--image <img>ایمیج Docker جدید.
--branch <b>تغییر شاخهٔ گیت (سرویس‌های گیت).
--auto-deployروشن/خاموش کردن دیپلوی خودکار با push.
--subdomain <name>تغییر زیردامنهٔ سرویس وب (<name>.gerdoo.app). سرویس دوباره مستقر می‌شود و آدرس قبلی دیگر کار نمی‌کند؛ نام قبلی تا ۳۰ روز برای شما رزرو می‌ماند.
--env-set K=Vافزودن/ویرایش متغیر env سرویس (قابل تکرار).
--env-rm Kحذف متغیر env سرویس (قابل تکرار).
gerdoo service delete <slug|id>

حذف کامل سرویس (با تأیید تعاملی).

متغیرهای محیطی

دو انبار جدا: «env» نقشهٔ سادهٔ سرویس است و «vars» انبار متغیر تایپ‌دار با پشتیبانی از build-time و secret.

gerdoo service env <slug|id>

فهرست متغیرهای نقشهٔ env سرویس.

gerdoo service env <slug|id> set KEY=VALUE [...]

افزودن/ویرایش یک یا چند متغیر env (سرویس بازسازی می‌شود).

gerdoo service env <slug|id> rm KEY [...]

حذف یک یا چند متغیر env.

gerdoo service vars <slug|id> [--json]

فهرست انبار متغیر تایپ‌دار همراه با نشانه‌های build/secret.

فلگتوضیح
--jsonچاپ پاسخ خام API.
gerdoo service vars <slug|id> set KEY=VALUE [flags]

افزودن/ویرایش متغیر در انبار تایپ‌دار.

فلگتوضیح
--build-timeتزریق در زمان بیلد علاوه بر ران‌ تایم.
--secretذخیره به‌صورت محرمانه (مقدار ماسک می‌شود).
gerdoo service vars <slug|id> rm KEY [...]

حذف یک یا چند متغیر از انبار تایپ‌دار.

دامنه‌های اختصاصی

gerdoo service domains <slug|id> [--json]

فهرست دامنه‌های اختصاصی و رکوردهای DNS موردنیاز.

فلگتوضیح
--jsonچاپ پاسخ خام API.
gerdoo service domains <slug|id> add <domain>

افزودن دامنهٔ اختصاصی (فقط سرویس‌های http) و نمایش رکوردهای DNS.

gerdoo service domains <slug|id> verify <domain|id>

بررسی رکورد TXT و تأیید مالکیت دامنه.

gerdoo service domains <slug|id> rm <domain|id>

حذف دامنهٔ اختصاصی.

بیلدها، ریلیزها و بازگشت

gerdoo service builds <slug|id> [--json]

فهرست بیلدهای اخیر سرویس، با مدت هر بیلد و زمان شروع آن.

فلگتوضیح
--jsonچاپ پاسخ خام API.
gerdoo service builds <slug|id> logs <buildId>

نمایش لاگ یک بیلد مشخص.

gerdoo service releases <slug|id> [--json]

فهرست ریلیزهای اخیر سرویس (استقرارها)، از جمله ریلیزهایی که بالا نیامدند. ریلیز ناموفق با دستور نمایش لاگ همراه است.

فلگتوضیح
--jsonچاپ پاسخ خام API.
gerdoo service releases <slug|id> logs [releaseId]

نمایش علت بالا نیامدن یک استقرار و لاگ کانتینر در همان لحظه (مثلاً کرش در اجرای دستور شروع). بدون releaseId، جدیدترین ریلیز ناموفق (یا در نبود آن، جدیدترین ریلیز) نمایش داده می‌شود. ممکن است بیلد موفق باشد و استقرار ناموفق؛ در این حالت builds … logs چیزی نشان نمی‌دهد و این دستور علت را می‌گوید.

gerdoo service rollback <slug|id> <buildId>

بازگشت سرویس به یک بیلد آمادهٔ قبلی بدون بیلد دوباره.

فایل‌های دیسک (Volumes)

gerdoo service files <slug|id> [path] [--volume <mount|id>]

مرور فایل‌های یک volume.

فلگتوضیح
--volume <mount|id>انتخاب volume بر اساس مسیر mount یا id (پیش‌فرض: تنها volume).
gerdoo service pull <slug|id> <remote-path> [flags]

دانلود یک فایل از volume.

فلگتوضیح
-o <local>مسیر خروجی محلی (پیش‌فرض: نام فایل).
--volume <mount|id>انتخاب volume.
gerdoo service push <slug|id> <local-file> [flags]

آپلود یک فایل محلی به volume.

فلگتوضیح
--dir <path>پوشهٔ مقصد داخل volume (پیش‌فرض «/»).
--volume <mount|id>انتخاب volume.

میان‌برها و ابزار

gerdoo logs <slug|id> [--tail N] [--since 10m] [--grep <pat>] [--level error|warn|info] [--invert]

میان‌بر «gerdoo service logs» با امکان فیلتر کردن خروجی.

فلگتوضیح
--tail Nحداکثر تعداد خطی که بررسی می‌شود (پیش‌فرض ۲۰۰، حداکثر ۲۰۰۰).
--sinceفقط لاگ‌های جدیدتر از این بازه: 10m، 2h یا یک زمان RFC3339.
--grepفقط خطوط منطبق با این الگو (بدون حساسیت به بزرگی و کوچکی حروف).
--levelفقط خطوط با شدت error، warn یا info و بالاتر.
--invertبرعکس: خطوط نامنطبق نگه داشته می‌شوند.

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

gerdoo service exec <slug|id> <command...> [--timeout N]

اجرای یک دستور تک‌مرحله‌ای داخل کانتینر در حال اجرا و چاپ خروجی آن — برای پرسیدن سؤالی که از لاگ به‌دست نمی‌آید (مقدار واقعی یک متغیر محیطی، وجود یک فایل بیلدشده و…). سرویس باید در حال اجرا باشد.

دستورهای حذف‌شده

میان‌برهای gerdoo apps، gerdoo status، gerdoo open و gerdoo env حذف شده‌اند؛ هرکدام نام دومی برای یک زیرفرمان gerdoo service بودند. به‌جای آن‌ها از gerdoo services، gerdoo service status، gerdoo service open و gerdoo service env استفاده کنید. gerdoo deploy و gerdoo logs بدون تغییر باقی مانده‌اند.

gerdoo upgrade

به‌روزرسانی خودکار CLI به آخرین نسخه.

gerdoo version

نمایش نسخهٔ نصب‌شده.

در سایت گردوگردو برای عامل‌های هوشمند و CLI