رفتن به محتوا
cloudhostمستندات
شروع

CLI

همهٔ پلتفرم از ترمینال. CLI یک کلاینت API عمومی است و چیزی جز آن نیست؛ هر دستور همان درخواستی را می‌فرستد که داشبورد می‌فرستد.

نصب و ورود#

curl -fsSL https://ibel.ai/install/install.sh | sh

نصب‌کننده یک فایل اجرایی تنها را از سرور خود ما (ibel.ai/install) می‌گیرد و چیز دیگری لازم ندارد. پیش از نصب، امضای فهرست چک‌سام‌ها را با کلید انتشار ما و چک‌سام فایل را بررسی می‌کند و اگر یکی جور نباشد چیزی نصب نمی‌کند. در macOS و لینوکس در ~/.local/bin و در ویندوز در %LOCALAPPDATA%\cloudhost\bin نصب می‌شود (ویندوز این پوشه را به PATH کاربر اضافه می‌کند). بیلدها: macOS با تراشهٔ اپل و اینتل، لینوکس x64 و arm64 (glibc)، ویندوز x64. بستهٔ npm به Node.js نسخهٔ ۲۲ یا بالاتر نیاز دارد.

تنظیم نصب‌کنندهکار
CLOUDHOST_VERSION=1.2.0همان نسخه به‌جای جدیدترین.
CLOUDHOST_INSTALL_DIR=<dir>جای نصب.
CLOUDHOST_DOWNLOAD_URL=<url>سرور دیگری با همین فایل‌ها (مثلاً آینهٔ داخلی شرکت)؛ امضا همچنان بررسی می‌شود.
تنظیمکار
~/.config/cloudhost/config.jsonآدرس API و یک کلید برای هر تیم، که cloudhost login و cloudhost teams switch گرفته‌اند. برای خروج پاکش کنید.
CLOUDHOST_API_KEYکلید API، به‌جای فایل؛ برای CI.
CLOUDHOST_API_URLآدرس دیگری برای API. پیش‌فرض https://api.ibel.ai.
--api <url>همان، فقط برای login.
cloudhost help [command]همهٔ دستورها و فلگ‌ها، یا یک دستور
cloudhost status [show]وضعیت خود سرویس‌ها: هر بخش، دسترس‌پذیری ۹۰ روز، رخدادها و نگهداری‌های باز؛ بدون ورود
cloudhost status incidents [--limit <n>]رخدادها و نگهداری‌های گذشته، جدیدترین اول
cloudhost status incident <id>یک رخداد با همهٔ به‌روزرسانی‌هایش

cloudhost help همهٔ دستورها و فلگ‌ها را نشان می‌دهد و cloudhost help <دستور> یکی را. هر دستور --json می‌گیرد و پاسخ API را همان‌طور که هست چاپ می‌کند.

به‌روزرسانی و امضا#

دستورکار
cloudhost versionنسخهٔ CLI و این‌که چطور نصب شده (cloudhost --version هم همین را می‌گوید).
cloudhost updateجدیدترین نسخهٔ امضاشده را از سرور ما می‌گیرد، بررسی و امتحان می‌کند و جای همین فایل می‌گذارد. اگر با npm نصب کرده‌اید، دستور npm را می‌گوید.
cloudhost update --checkفقط می‌گوید نسخهٔ جدیدتری هست یا نه.
cloudhost update --to <نسخه>همان نسخه، حتی قدیمی‌تر.
cloudhost update --notify offبررسی روزانه و پیامش را خاموش می‌کند (on روشنش می‌کند).
CLOUDHOST_NO_UPDATE_CHECK=1همان، با متغیر محیطی. در CI (CI تنظیم شده) هم بررسی نمی‌شود.

CLI روزی یک بار، در پس‌زمینه و بی‌آن‌که دستوری منتظر بماند، نگاه می‌کند که نسخهٔ جدیدی آمده یا نه و اگر آمده باشد یک خط در خروجی خطا می‌نویسد، آن هم روزی یک بار. با --json یا وقتی خروجی ترمینال نیست چیزی نمی‌نویسد.

هر نسخه یک فهرست چک‌سام (SHA256SUMS) دارد که با کلید انتشار پلتفرم امضا شده است. کلید عمومی در https://ibel.ai/install/cli/release-key.pem است و درون نصب‌کننده‌ها و خود CLI هم هست؛ نصب‌کننده و cloudhost update هر فایلی را که با فهرست امضاشده جور نباشد رد می‌کنند. برای بررسی دستی:

بررسی دستی
curl -fsSLO https://ibel.ai/install/cli/latest/SHA256SUMS
curl -fsSLO https://ibel.ai/install/cli/latest/SHA256SUMS.sig
curl -fsSLO https://ibel.ai/install/cli/release-key.pem
openssl base64 -d -A -in SHA256SUMS.sig -out SHA256SUMS.bin
openssl dgst -sha256 -verify release-key.pem -signature SHA256SUMS.bin SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS   # beside the files you downloaded

فانکشن‌ها و برنامه‌ها#

همهٔ این دستورها برای فانکشن و برنامه یکی‌اند: cloudhost functions … یا cloudhost apps …. بدون هیچ‌کدام، فانکشن فرض می‌شود.

دستورکار
cloudhost init [name]نوشتن cloudhost.toml در پوشهٔ فعلی
cloudhost deployپروژهٔ cloudhost.toml همین‌جا را بساز و مستقر کن؛ Next.js و Astro روی سازندهٔ ما بیلد می‌شوند
cloudhost deploy <name> <entry.ts>استقرار یک فانکشن از یک فایل
cloudhost apps deploy <name> <dir> [--function <entry.ts>] [--spa]استقرار فایل‌های استاتیک، با فانکشن اختیاری
--var NAME=value · --date YYYY-MM-DDمتغیر (تکرارشدنی) و تاریخ محیط اجرا، برای deploy
--db DB=shop · --cache CACHE=sessions · --bucket BUCKET=uploadsاتصال دیتابیس، کش یا باکت، برای deploy
--branch <b>پیش‌نمایش <b>--<name> به‌جای پروداکشن، برای deploy و build
cloudhost <apps|functions> list · create <name>فهرست و ایجاد
cloudhost <apps|functions> rename <name> <new-name>تغییر نام؛ آدرس و پیش‌نمایش‌ها به نام جدید می‌روند و آدرس قدیمی دیگر پاسخ نمی‌دهد (مالک یا ادمین)
cloudhost <apps|functions> delete <name>حذف با همهٔ نسخه‌ها، پیش‌نمایش‌ها، سکرت‌ها و لاگ‌ها (مالک یا ادمین؛ اول cronها را حذف کنید)
cloudhost <apps|functions> versions <name> · rollback <name> [--to <v>]نسخه‌ها و بازگشت
cloudhost <apps|functions> checks <name> [build] · checks settings <name> · checks set <name> [--smoke on|off|/path] [--test <command>] [--typecheck on|off] [--require a,b] [--timeout <min>] [--scan none|high|critical]التحقق از استقرار
cloudhost <apps|functions> checks report <name> <build> <check> <status> [--summary <text>] [--url <url>] · checks rerun <name> <build> <check> · checks promote <name> <build>گزارش و اجرای دوبارهٔ بررسی‌ها
cloudhost <apps|functions> vulns <name> [build] · vulns rescan <name> <build>آسیب‌پذیری وابستگی‌ها
cloudhost <apps|functions> previews <name> · previews delete <name> <branch>پیش‌نمایش‌ها
cloudhost build [name] [--branch b] · cloudhost <apps|functions> builds <name>بیلد روی سرورهای ما با لاگ زنده، و تاریخچهٔ بیلد
cloudhost <apps|functions> builds cancel <name> <build> · builds redeploy <name> <build> [--no-cache]لغو بیلدِ در صف یا در حال اجرا، و بیلد دوبارهٔ همان کد (بدون کش بیلد با --no-cache)
cloudhost <apps|functions> builds secrets <name> <build> · builds sbom <name> <build> [--output <file>] · builds provenance <name> <build> [--verify]زنجیرهٔ تأمین: محل سکرت‌های پیداشده در کد، فهرست اجزا (SBOM) و سند امضاشدهٔ منشأ بیلد و بررسی امضای آن
cloudhost <apps|functions> build-config <name> · build-config set <name> <field> <value> · build-config clear <name> <field>تنظیمات بیلد: پوشهٔ ریشه، گام نادیده‌گرفتن بیلد، فرمان‌های نصب و بیلد، پوشهٔ خروجی، نسخهٔ Node.js، اسکن سکرت و کش بیلد
cloudhost <apps|functions> build-cache <name> · build-cache clear <name>کش بیلد پروژه و خالی‌کردن آن
cloudhost <apps|functions> env ls [--environment <env>] [--branch <branch>] [--project <name>]متغیرهای محیطی پروژه: کلید، محیط‌ها (production، preview، development)، شاخه و نوع؛ مقدارها نشان داده نمی‌شوند
cloudhost <apps|functions> env add <KEY> [--environment <env>]… [--branch <branch>] [--sensitive] [--project <name>]افزودن متغیر، خوانده‌شده به‌صورت env.KEY. مقدار از اعلان (بی‌نمایش) یا stdin خوانده می‌شود، هرگز از خط فرمان. پیش‌فرض: هر سه محیط، یا production و preview برای مقدار حساس. --branch فقط برای پیش‌نمایش‌های آن شاخه است و بر مقدار preview برتری دارد. مقدار حساس هرگز دوباره نشان داده نمی‌شود و فقط جایگزین می‌شود.
cloudhost <apps|functions> env rm <KEY> [--environment <env>]… [--branch <branch>] [--project <name>]حذف متغیر: از همه‌جا، یا فقط از محیط یا شاخهٔ داده‌شده
cloudhost <apps|functions> env pull [file] [--environment <env>] [--branch <branch>] [--yes] [--project <name>]نوشتن مقدارهای development (یا محیط داده‌شده) در .env.local یا [file]. بدون --yes فایل موجود را بازنویسی نمی‌کند و نام فایل را به .gitignore می‌افزاید. مقدارهای حساس نوشته نمی‌شوند.
cloudhost <apps|functions> secrets put <name> <KEY> · secrets list <name> · secrets delete <name> <KEY>شکل قدیمی همان دستورها: secrets put متغیر حساس برای production و preview می‌گذارد (مقدار از stdin)، secrets list کلیدها را نشان می‌دهد و secrets delete کلید را از همهٔ محیط‌ها برمی‌دارد
cloudhost <apps|functions> crons <name> · crons set <name> "<cron>"… [--tz zone] · crons clear <name>cronها
cloudhost functions starters · cloudhost functions new <name> [--starter <id>] [--db DB=<database>] [--cache CACHE=<cache>]نمونه‌های آماده؛ ایجاد و استقرار یک فانکشن از نمونه، همان که داشبورد ایجاد می‌کند
cloudhost functions source <name> [dir] [--version <n>] · cloudhost functions source deploy <name> <file.js|dir> [--main <file.js>] [--no-deploy]خواندن کد یک نسخه؛ استقرار فایل‌های ‎.js‎ همان‌طور که هستند، بی بسته‌بندی، تا در ویرایشگر داشبورد باز شوند
cloudhost apps upload <name> <dir|archive> [--branch <branch>]آپلود پوشه، ‎.zip‎ یا ‎.tar.gz‎: سایت استاتیک همان لحظه مستقر می‌شود، پروژهٔ فریم‌ورکی بیلد می‌شود
cloudhost <apps|functions> logs <name> [--limit n] · tail <name> · usage <name> [--from ISO] [--to ISO]لاگ، لاگ زنده و مصرف
cloudhost <apps|functions> stats <name> [--range 1h|24h|7d]درخواست‌ها، نرخ خطا و تأخیر (p50، p95، p99)، در کل و برای هر مسیر
cloudhost domains ls [--project <name>]دامنه‌های اختصاصی تیم (یا یک پروژه) و وضعیت هر کدام
cloudhost domains add <domain> [--project <name>] [--www apex|www|none] [--redirect-to <domain>] [--redirect-status <code>] [--branch <branch>]پروژه را روی دامنهٔ خودتان سرو کنید؛ رکوردهای DNS لازم را نشان می‌دهد (دامنهٔ اختصاصی)
cloudhost domains inspect <domain>وضعیت دامنه، رکوردهای DNS و گواهی آن
cloudhost domains verify <domain>همین حالا رکوردهای DNS را بررسی کن
cloudhost domains rm <domain>دیگر سرو نکن و گواهی را حذف کن

دیتابیس، کش و فضای ذخیره‌سازی#

دستورکار
cloudhost db list · show <name> · create <name> · password <name> · delete <name>دیتابیس‌ها و رمز جدید
cloudhost db branches <name> · branch <name> <branch> [--from b] [--at time | --lsn lsn]شاخه‌ها
cloudhost db branch delete <name> <branch> · restore <name> <branch> --at <time>حذف شاخه و بازگردانی به یک لحظه
cloudhost db stats <name> [--range 1h|24h|7d]مصرف محاسبه، اندازه، اتصال‌ها، نرخ برخورد کش، تراکنش‌ها و پرهزینه‌ترین دستورها
cloudhost cache list · create <name> [--memory 64] [--max-storage 256] [--no-eviction] · delete <name>کش‌ها
cloudhost cache tokens <name> [create [--ro] | revoke <id>]توکن‌های کش
cloudhost cache run <name> <COMMAND> [args…]اجرای یک دستور کش
cloudhost cache stats <name> [--range 1h|24h|7d]کلیدها، نرخ برخورد و حجم نگه‌داری‌شده در برابر سقف، سپس دستورها، حافظه، بیرون‌رانی‌ها و پهنای باند در طول زمان
cloudhost cache update <name> [--memory <MB>] [--max-storage <MB>] [--eviction on|off] · cloudhost cache limitsتغییر حافظه، سقف حجم نگه‌داری‌شده یا بیرون‌رانی؛ و اندازه‌ها، روزهای نگه‌داری نقطه‌های بازگشت و نرخ دستورها در طرح شما
cloudhost cache checkpoints <name> · cloudhost cache checkpoint <name> · cloudhost cache restore <name> <checkpoint> [--to <new>] [--yes]نقطه‌های بازگشت کش (۷ تا ۳۰ روز بسته به طرح)، گرفتن یکی همین حالا، و بازگرداندن روی همان کش (داده‌ها جایگزین می‌شوند) یا در یک کش جدید
cloudhost buckets list · create <name> · delete <name>باکت‌ها
cloudhost buckets stats <name> [--range 24h|7d|30d]اندازه، تعداد آبجکت، خواندن، نوشتن و دانلود
cloudhost storage credentialsایجاد یا چرخاندن کلید ذخیره‌سازی تیم (یک بار نشان داده می‌شود)

صف و کار پس‌زمینه#

دستورکار
cloudhost queues listصف‌ها، تعداد پیام‌های منتظر و مصرف‌کننده‌شان
cloudhost queues create <name> [--visibility-timeout 30] [--max-retries 3] [--retry-delay 5] [--retention <seconds>] [--delay <seconds>] [--dead-letter-queue <queue>]ایجاد صف
cloudhost queues show <name> · cloudhost queues update <name> [same flags]تنظیمات یک صف و تغییرشان
cloudhost queues pause <name> · cloudhost queues resume <name>توقف و ادامهٔ تحویل؛ در توقف هم ارسال پذیرفته می‌شود
cloudhost queues delete <name>حذف صف همراه پیام‌هایش (با تایید دومرحله‌ای)
cloudhost queues consumer <name> [function] [--url <https://…>] [--pull] [--batch-size 10] [--batch-wait 1] [--concurrency 1]مصرف‌کنندهٔ صف: یک فانکشن (هندلر queue(batch, env))، یک آدرس (POST امضاشده برای هر پیام) یا --pull
cloudhost queues consumer clear <name>برداشتن مصرف‌کننده؛ پیام‌ها منتظر می‌مانند
cloudhost queues consumer rotate-secret <name>کلید امضای جدید برای مصرف‌کنندهٔ آدرس (یک بار نشان داده می‌شود)
cloudhost queues send <name> <json | text | -> [--delay <seconds>] [--dedup <id>]فرستادن یک پیام (JSON یا متن؛ - از ورودی استاندارد)
cloudhost queues peek <name> [--state ready|delayed|in_flight] [--limit <n>]نگاهی به پیام‌های منتظر، بدون برداشتن آن‌ها
cloudhost queues pull <name> [--max 10] [--visibility-timeout <seconds>]برداشتن پیام از صف کششی؛ پیش از پایان زمان تاییدشان کنید
cloudhost queues ack <name> <lease>… [--retry] [--delay <seconds>]تایید پیام‌های برداشته‌شده (با --retry: تحویل دوباره)
cloudhost queues backlog <name>پیام‌های آماده، تأخیری و در حال تحویل همین حالا، و آمار هر دقیقه
cloudhost queues dead-letters <name> [--limit <n>]پیام‌های این صف که تلاش‌هایشان تمام شده
cloudhost queues dead-letters retry <name> [id…] [--limit <n>]بازگرداندن پیام‌های مرده به صف
cloudhost queues dead-letters purge <name>حذف پیام‌های مردهٔ صف (با تایید دومرحله‌ای)
cloudhost queues purge <name>حذف همهٔ پیام‌های صف
cloudhost queues redrive <dead-letter queue> [--limit <n>] [--to <queue>]بازگرداندن پیام‌های صف مرده به صفی که از آن آمده‌اند
cloudhost queues stats <name> [--range 1h|24h|7d]پیام‌های منتظر، سن قدیمی‌ترین، فرستاده‌شده، پردازش‌شده، ناموفق و مرده
cloudhost schedules listزمان‌بندی‌ها، مقصد و آخرین اجرا
cloudhost schedules create "<cron>" --queue <name> | --function <name> | --url <https://…> [--name <name>] [--timezone Asia/Tehran] [--body <json>]فرستادن پیام طبق زمان‌بندی (پیش‌فرض به وقت تهران) به صف، فانکشن یا آدرس
cloudhost schedules show <id | name>یک زمان‌بندی، اجرای بعدی و آخرین اجرا
cloudhost schedules update <id | name> [--cron <cron>] [--timezone <zone>] [--body <json>] [--name <name>] [--pause] [--resume]تغییر زمان‌بندی، یا توقف و ادامهٔ آن
cloudhost schedules delete <id | name>حذف زمان‌بندی
نمونه
cloudhost queues create emails --dead-letter-queue emails-dead
cloudhost deploy mailer mailer.ts --queue QUEUE=emails   # env.QUEUE.send(...)
cloudhost queues consumer emails mailer --batch-size 20
cloudhost queues send emails '{"to":"a@example.com"}' --delay 30

حساب، تیم‌ها و صورت‌حساب#

دستورکار
cloudhost whoamiکلید فعلی، تیم، ایمیل و نقش
cloudhost teams list · teams switch <team>تیم‌هایی که این رایانه به آن‌ها وارد شده و تیم فعلی؛ تغییر تیم (بار اول در مرورگر تایید می‌کنید)
cloudhost teams members · teams invite <email> [--role r] · teams invites delete <id>اعضا و دعوت‌های باز؛ دعوت با ایمیل؛ پس گرفتن دعوت
cloudhost teams role <member> <role> · teams remove <member> · teams rolesتغییر نقش یک عضو (فقط مالک)، حذف عضو، و فهرست نقش‌ها
cloudhost teams limit <member> · teams unlimit <member>محدود کردن یک توسعه‌دهنده یا بیننده به پروژه‌های برگزیده (فقط آنچه خودش و گروه‌هایش دارند را می‌بیند)؛ برگرداندن دسترسی به کل تیم
cloudhost access groups · access groups create <name> · access groups show <group> · access groups delete <group>گروه‌های دسترسی تیم؛ ایجاد، نمایش اعضا و پروژه‌ها، و حذف گروه
cloudhost access groups add <group> <member> · access groups remove <group> <member>افزودن یا برداشتن یک عضو از گروه
cloudhost access allow <group|member email> <name> [--kind k] [--role developer|viewer] · access deny <group|member email> <name> [--kind k]دادن نقش (توسعه‌دهنده یا بیننده) روی یک برنامه، تابع، دیتابیس، کش یا باکت به یک گروه یا عضو؛ گرفتن آن
cloudhost access who <name> [--kind k]چه کسانی به این پروژه یا فضای ذخیره‌سازی دسترسی دارند
cloudhost keys list · create <name> [--role r] [--expires days] · revoke <id> · rotate <id>کلیدهای API
cloudhost audit [--limit n]گزارش تغییرها
cloudhost billing [show] · billing usage [--period 1405-08] · billing transactions · billing pricesکیف پول، مصرف، تراکنش‌ها و قیمت‌ها
cloudhost billing invoices · billing invoice <number|preview>فاکتورها
cloudhost billing topup <tomans> [--method m] · billing plan <pro|hobby>لینک شارژ و تغییر پلن
cloudhost billing tax · billing tax set --type person|company --legal-name … --national-id … [--economic-code …] [--postal-code …] [--address …]اطلاعات مالیاتی روی فاکتورها (مالک، ادمین یا مالی)
cloudhost billing budget · billing budget set <tomans|default> [--pause]سقف ماهانهٔ مصرف (حرفه‌ای)، مقدار مصرف‌شده، و اینکه سایت‌ها در سقف متوقف شوند یا نه

مبلغ‌ها در CLI به تومان نشان داده می‌شوند و API همه را به ریال می‌دهد.

هشدارها#

دستورکار
cloudhost alerts listقاعده‌ها و هشدارهای اخیر
cloudhost alerts create <name> <metric> --above n|--below n [--window m] [--kind app|function]هشدار روی یک تابع یا برنامه؛ metric یکی از error_rate، p95_ms، p99_ms یا requests
--email · --sms · --webhook <url> · --bale-chat <chat> · --eitaa-chat <chat>کانال‌ها، برای alerts create؛ توکن بات بله یا ایتا از stdin خوانده می‌شود
cloudhost alerts delete <id> · alerts test <id>حذف قاعده و فرستادن هشدار آزمایشی (شناسه یا چند حرف اولش)
نمونه
cloudhost functions stats my-api --range 24h
cloudhost alerts create my-api error_rate --above 2% --email
# alert 3f9c1a2b: function my-api error_rate > 2% over 5 min → email
cloudhost alerts test 3f9c

پشتیبانی#

دستورکار
cloudhost support list [--status open|pending|closed|active] [--severity <s>]تیکت‌های پشتیبانی تیم (مالک و ادمین: همه؛ بقیه: آنچه خودشان باز کرده‌اند)
cloudhost support open "<subject>" --category <c> [--severity <s>] [--resource kind:name] [--message "..."] [--file <path>]باز کردن درخواست؛ پیام از --message یا stdin؛ فوری فقط در پلن حرفه‌ای
cloudhost support show <case>یک درخواست و پیام‌هایش (شمارهٔ درخواست، مثلاً ۱۲)
cloudhost support reply <case> [--message "..."] [--file <path>]پاسخ روی درخواست؛ درخواست بسته دوباره باز می‌شود
cloudhost support close <case>بستن درخواست
نمونه
cloudhost support open "Deploys fail since this morning" --category function --severity high \
  --resource function:my-api --file build.log --message "Every deploy fails at the build step."
# case #12 opened (high)
cloudhost support show 12
echo "It works now, thanks" | cloudhost support reply 12
cloudhost support close 12

ریپازیتوری‌های متصل#

دستورکار
cloudhost git connectionsهمهٔ اتصال‌های GitHub و GitLab تیم
cloudhost git remote [name] [--add]آدرس گیتِ ما برای یک پروژه، دستورهای push و ورود (رمز، کلید API است)
cloudhost git connect <github|gitlab> [--url <gitlab address>] [--application <id>]اتصال جدید: آدرسی را که باید باز کنید و تایید کنید چاپ می‌کند (GitLab خودمیزبان با --url؛ برنامهٔ خودتان با --application و سکرت از stdin)
cloudhost git disconnect <connection> [--unlink]حذف اتصال (مالک یا ادمین)؛ با --unlink پروژه‌های وابسته هم جدا می‌شوند
cloudhost git repos <connection> [search]ریپازیتوری‌هایی که اتصال می‌بیند و پروژه‌های متصل‌شده به آن‌ها
cloudhost <apps|functions> git link <name> <connection> <owner/repo> [--branch <production branch>] [--no-previews]اتصال پروژه به ریپازیتوری: push به شاخهٔ پروداکشن، پروداکشن را مستقر می‌کند و هر شاخهٔ دیگر پیش‌نمایش می‌گیرد
cloudhost <apps|functions> git show <name>ریپازیتوری متصل‌شده به پروژه
cloudhost <apps|functions> git unlink <name>پایان بیلد از ریپازیتوری
cloudhost <apps|functions> git deploy <name> [--branch <branch>]همین حالا آخرین کامیت یک شاخه را بساز (پیش‌فرض: شاخهٔ پروداکشن)
cloudhost <apps|functions> git import <name> <connection> <owner/repo> [--branch <production branch>] [--no-previews]ایجاد پروژهٔ جدید از یک ریپازیتوری و ایجاد آن
نمونه
cloudhost git connect github
# open the printed address, choose the repositories, approve
cloudhost git connections
cloudhost git repos acme
cloudhost apps git import shop acme acme/shop
cloudhost apps git link docs acme acme/docs --branch release
cloudhost apps git deploy shop --branch feature/cart

وب‌هوک، خروجی لاگ و ردیابی#

دستورکار
cloudhost webhooks list [--project <name>]وب‌هوک‌های تیم (حرفه‌ای ۲۰، رایگان ۱)
cloudhost webhooks eventsانواع رویدادی که وب‌هوک می‌تواند بخواهد
cloudhost webhooks add <url> --events a,b [--project <name>] [--description "..."]افزودن وب‌هوک؛ رمز امضا فقط یک بار نشان داده می‌شود
cloudhost webhooks show <id>یک وب‌هوک
cloudhost webhooks update <id> [--url <url>] [--events a,b] [--description "..."]تغییر آدرس، رویدادها یا یادداشت
cloudhost webhooks enable <id> · cloudhost webhooks disable <id>روشن یا خاموش کردن (پس از غیرفعال شدن به‌خاطر شکست هم)
cloudhost webhooks rm <id>حذف وب‌هوک و گزارش ارسال‌هایش
cloudhost webhooks rotate <id>رمز امضای جدید؛ رمز قبلی کار نمی‌کند
cloudhost webhooks test <id>فرستادن یک ping و نمایش پاسخ
cloudhost webhooks deliveries <id> [--status ok|failed|pending] [--limit <n>]گزارش ارسال‌ها: رویداد، پاسخ، تعداد تلاش
cloudhost webhooks redeliver <id> <delivery>ارسال دوبارهٔ یک رویداد ثبت‌شده
cloudhost drains list [--project <name>]خروجی‌های گزارش تیم (حرفه‌ای) با وضعیت سلامت
cloudhost drains add <name> --kind https|syslog --url <url> [--project <name>] [--sources a,b] [--levels a,b] [--sampling <percent>] [--no-gzip] [--header Name:value]فرستادن لاگ‌ها به آدرس شما: HTTPS (NDJSON) یا syslog روی TLS؛ رمز امضا یک بار نشان داده می‌شود
cloudhost drains show <id>سلامت یک خروجی و آخرین ارسال‌ها
cloudhost drains update <id> [--url <url>] [--sources a,b] [--levels a,b] [--sampling <percent>] [--no-gzip]تغییر آدرس یا فیلترها
cloudhost drains enable <id> · cloudhost drains disable <id>روشن یا خاموش کردن؛ لاگ‌ها از همان لحظه جاری می‌شوند
cloudhost drains rm <id>حذف خروجی
cloudhost drains test <id>فرستادن یک خط آزمایشی
cloudhost traces list [--project <name>] [--status 5xx] [--errors] [--min-ms <ms>] [--limit <n>]ردیابی‌های اخیر درخواست‌ها
cloudhost traces show <trace id>یک ردیابی به شکل آبشار spanها
نمونه
cloudhost webhooks add https://example.com/hooks/deploys --events deployment.ready,deployment.failed --project shop
# signing secret (shown only now, keep it): whsec_…
cloudhost webhooks test 4f3a9c2e
cloudhost webhooks deliveries 4f3a9c2e --status failed
cloudhost drains add "errors" --kind https --url https://logs.example.com/ingest --levels warn,error \
  --header "Authorization:Bearer $TOKEN"
cloudhost drains show 7b1d0e55
cloudhost traces list --project shop --status 5xx
cloudhost traces show 0123456789abcdef0123456789abcdef

فیچر فلگ‌ها#

دستورکار
cloudhost flags list [--project <name>]فلگ‌های پروژه و مقدار هر محیط
cloudhost flags add <key> [--type boolean|string|number|json] [--value <v>] [--description "..."]ایجاد فلگ؛ مقدار اولیه برای همهٔ محیط‌ها
cloudhost flags show <key>مقدار، قانون‌ها و انتشار تدریجی هر محیط
cloudhost flags set <key> <value> [--environment production|preview|development|all] [--branch <b>]مقدار پیش‌فرض (وقتی هیچ قانون یا انتشاری اعمال نشود)
cloudhost flags kill <key> [--environment <env>] [--branch <b>]کلید قطع اضطراری: بلافاصله مقدار خاموش را بدهد
cloudhost flags revive <key> [--environment <env>] [--branch <b>]روشن‌کردن دوبارهٔ فلگِ قطع‌شده
cloudhost flags rollout <key> <percent> --value <v> [--by <attribute>] [--environment <env>]انتشار تدریجی: همان درصد کلیدها همیشه مقدار جدید را می‌گیرند
cloudhost flags rule add <key> <attribute> <op> <values> --value <v> [--percentage <n>]قانون هدف‌گیری (برابر، در فهرست، شامل…)
cloudhost flags rule rm <key> <rule id>حذف یک قانون
cloudhost flags history <key> [--limit <n>]چه کسی چه چیزی را تغییر داد
cloudhost flags rollback <key> <version>بازگرداندن فلگ به یک نسخهٔ تاریخچه (فلگ حذف‌شده را هم برمی‌گرداند)
cloudhost flags rm <key>حذف فلگ؛ تاریخچه می‌ماند
cloudhost flags eval <key> [--context <json>] [--environment <env>] [--branch <b>]نتیجه‌ای که یک فراخوان با این زمینه می‌گیرد و دلیلش
cloudhost flags tokensتوکن‌های فقط‌خواندنی برای خواندن فلگ‌ها با REST
cloudhost flags tokens create [name] [--environment <env>]توکن فقط‌خواندنیِ یک محیط (فقط یک بار نشان داده می‌شود)
cloudhost flags tokens rm <id>ابطال توکن
cloudhost flags on <key> · cloudhost flags off <key>روشن کردن فلگ، یا خاموش کردن فوری آن در همه‌جا
cloudhost flags browser <key> <on|off>آیا کلیدهای مرورگر این فلگ را می‌خوانند
cloudhost flags segments · cloudhost flags segments show <key>بخش‌ها: فهرست‌های کاربران برای قاعده‌ها
cloudhost flags segments add <key> [--include <ids>] [--exclude <ids>] [--attribute <name>]بخش جدید؛ در قاعده با عملگر in_segment
cloudhost flags segments include <key> <ids> · cloudhost flags segments exclude <key> <ids> · cloudhost flags segments rm <key>افزودن یا بیرون گذاشتن شناسه‌ها، حذف بخش
cloudhost flags keys · cloudhost flags keys create [name] [--kind server|browser] [--environment <env>] · cloudhost flags keys rm <id>کلیدهای فلگ برای برنامه‌های بیرون از پلتفرم (OpenFeature)
cloudhost flags audit [--limit <n>]همهٔ تغییرهای فلگ‌ها و بخش‌ها، جدیدترین اول
نمونه
cloudhost flags add new-checkout --type boolean --description "New checkout flow"
cloudhost flags rule add new-checkout email ends_with @acme.ir --value true --environment production
cloudhost flags rollout new-checkout 10 --value true --environment production
cloudhost flags kill new-checkout
cloudhost flags history new-checkout
cloudhost flags rollback new-checkout 3

فایروال#

دستورکار
cloudhost firewall [show] [--project <name>]وضعیت، محافظت‌های همیشه روشن، قاعده‌ها به ترتیب و سقف‌های پلن
cloudhost firewall rulesقاعده‌های سفارشی به ترتیب اجرا
cloudhost firewall add --name <n> --action deny|allow|log|rate_limit --if "<cond>" [--if …] [--or --if …] [--limit <n> --window <s> --key ip|header:<name> --then deny|log] [--position <n>] [--disabled] [--description "..."]افزودن قاعده؛ --ifهای پشت‌سرهم «و»، --or گروه بعدی
cloudhost firewall edit <id> [same flags]تغییر قاعده؛ --if شرط‌ها را جایگزین می‌کند
cloudhost firewall enable <id>روشن کردن قاعده
cloudhost firewall disable <id>خاموش کردن قاعده (در فهرست می‌ماند)
cloudhost firewall rm <id>حذف قاعده
cloudhost firewall move <id> <position>جابه‌جایی قاعده در ترتیب (۰ اول اجرا می‌شود)
cloudhost firewall check --ip <addr> [--country <CC>] [--method <m>] [--path <p>] [--host <h>] [--ua <ua>] [--header name=value]قاعده‌ها با این درخواست چه می‌کنند
cloudhost firewall metrics [--range 1h|24h|7d]درخواست‌های گذشته، ردشده، محدودشده و ثبت‌شده؛ برخورد هر قاعده؛ آدرسها و کشورهای متوقف‌شده
cloudhost firewall audit [--limit <n>]چه کسی فایروال را چطور تغییر داد
نمونه
cloudhost firewall add --project my-api --name "Block admin" --action deny --if "path starts /admin" --if "ip not in 10.0.0.0/8"
cloudhost firewall add --project my-api --name "Login limit" --action rate_limit --if "path eq /login" --limit 10 --window 60
cloudhost firewall check --project my-api --ip 203.0.113.7 --path /admin
cloudhost firewall move fwr_abc123def456 0 --project my-api
cloudhost firewall metrics --project my-api --range 1h

محافظت، انتشار و نسخه‌ها#

دستورکار
cloudhost protection [show] [--project <name>]چه کسی پیش‌نمایش‌ها (و پروداکشن) را باز می‌کند، توکن عبور و لینک‌های اشتراکی
cloudhost protection set [--previews off|team|password] [--production on|off] [--password <p>|-] [--options on|off] [--exceptions <domains>|none]محافظت پیش‌نمایش‌ها با ورود اعضای تیم یا رمز (رمز در پلن حرفه‌ای)؛ دامنه‌های استثنا؛ عبور درخواست‌های OPTIONS
cloudhost protection bypass · cloudhost protection bypass rmتوکن عبور برای خودکارسازی (فقط یک بار نشان داده می‌شود) و حذف آن
cloudhost protection sign-outهمهٔ بازدیدکننده‌ها دوباره وارد شوند
cloudhost protection links · cloudhost protection link create [--label <t>] [--hours <n>] [--url <address>] · cloudhost protection link rm <id>لینک‌های اشتراکی که از محافظت می‌گذرند، با تاریخ انقضا و لغو (پلن حرفه‌ای)
cloudhost promote <version>همین حالا این نسخه را در پروداکشن قرار بده (انتشار تدریجی را تمام می‌کند)
cloudhost release [show] · cloudhost release listانتشار تدریجی جاری، با درخواست‌ها و خطاهای هر نسخه؛ و انتشارهای قبلی
cloudhost release start <version> [--steps 10,25,50,100] [--every <minutes>] [--error-rate <percent>]سهمی از ترافیک پروداکشن به نسخهٔ جدید، گام به گام؛ اگر خطاهایش از حد بگذرد خودش متوقف می‌شود
cloudhost release set <percent> · cloudhost release next · cloudhost release stopگام دستی (۱۰۰ یعنی پروداکشن)، گام بعدی برنامه، یا بازگشت همهٔ ترافیک
cloudhost routing [show] · cloudhost routing set [--auto-promote on|off] [--skew on|off] [--skew-hours <h>]استقرار بدون انتشار خودکار، و نگه‌داشتن نسخهٔ هر صفحهٔ باز (محافظت در برابر ناهمخوانی نسخه)
نمونه
cloudhost protection set --previews team --production off --project shop
cloudhost protection bypass --project shop
# bypass token (shown only now): chb_…
curl -H "x-protection-bypass: $TOKEN" https://feature-x--shop.app.trustpage.ir/
cloudhost routing set --auto-promote off --skew on --skew-hours 12
cloudhost release start 42 --steps 10,25,50,100 --every 30 --error-rate 2
cloudhost release stop

سکرت‌ها#

دستورکار
cloudhost secrets projects · cloudhost secrets create <project> [--env production,preview,development] [--rotate-days 90] [--restricted]پروژه‌های سکرت تیم؛ ایجاد پروژهٔ سکرت با محیط‌ها، یادآوری چرخش و دسترسی محدود
cloudhost secrets delete-project <project>حذف پروژهٔ سکرت همراه سکرت‌ها و توکن‌هایش (مالک یا ادمین؛ اول جدا کنید)
cloudhost secrets list [--project <name>] [--env <env>]نام، نوع و نسخهٔ سکرت‌ها در هر محیط؛ مقدارها نشان داده نمی‌شوند
cloudhost secrets get <NAME> [--env <env>] [--version <n>]چاپ مقدار یک سکرت
cloudhost secrets set <NAME> [--env a,b] [--type plain|sensitive] [--note <text>]گذاشتن سکرت؛ مقدار از stdin یا پرسش پنهان، هرگز از خط فرمان
cloudhost secrets rm <NAME> [--env <env>]حذف سکرت با تاریخچه‌اش، یا فقط از یک محیط
cloudhost secrets rotate <NAME> [--generate [--length 40]]مقدار جدید از stdin، یا یک مقدار تصادفی که یک بار نشان داده می‌شود
cloudhost secrets versions <NAME> [--env <env>] · cloudhost secrets rollback <NAME> --env <env> --to <n>نسخه‌های یک سکرت؛ برگرداندن مقدار یک نسخهٔ قبلی
cloudhost secrets import <FILE> [--env <env>]افزودن سکرت‌های یک فایل .env
cloudhost secrets pull [--env <env>] [--file .env.local] [--yes]نوشتن سکرت‌های غیرحساس یک محیط در فایل .env با مجوز ۶۰۰؛ سکرت‌های حساس نوشته نمی‌شوند
cloudhost run [--project <name>] [--env <env>] -- <command...>اجرای فرمان با سکرت‌ها در متغیرهای محیطش؛ چیزی روی دیسک نوشته نمی‌شود؛ با توکن پروژه در CLOUDHOST_SECRETS_TOKEN هم کار می‌کند
cloudhost secrets tokens [list] · cloudhost secrets tokens create <name> [--access read|write] [--env <env>] [--expires <days>] · cloudhost secrets tokens revoke <id>توکن‌های پروژه برای برنامه‌ها، CI و سرورها (توکن یک بار نشان داده می‌شود)
cloudhost secrets link --to <function|app> [--mode binding|variables] · cloudhost secrets unlink --to <function|app>خواندن پروژه از یک فانکشن یا برنامه: env.SECRETS یا هر سکرت به شکل env.NAME؛ تغییرها بی‌استقرار دوباره می‌رسند
cloudhost secrets audit [--project <name>] · cloudhost secrets usage [--project <name>]هر خواندن و تغییر سکرت‌ها؛ سکرت‌های ذخیره‌شده، خواندن‌ها و نوشتن‌های این ماه
نمونه
cloudhost secrets create shop
printf %s "$STRIPE_KEY" | cloudhost secrets set PAYMENT_KEY --project shop --type sensitive
cloudhost secrets pull --project shop --env development
cloudhost run --project shop --env development -- npm run dev
cloudhost secrets link --project shop --to my-site

آمار بازدید و سرعت#

دستورکار
cloudhost analytics [project] [--period 24h|7d|30d|90d|12mo] [--environment production|preview|all] [--path <p>] [--referrer <host>] [--country <CC>] [--device <d>]بازدیدکننده‌ها، بازدید صفحه و نرخ پرش در برابر دورهٔ قبل، با صفحه‌ها، ارجاع‌دهنده‌ها، کشورها و دستگاه‌های پربازدید
cloudhost analytics [project] --by path|referrer|country|device|os|browser [--limit <n>]یک فهرست کامل (تا ۵۰۰ ردیف)
cloudhost analytics listهمهٔ برنامه‌ها و فانکشن‌های تیم: چه روشن است و ۷ روز گذشته
cloudhost analytics enable [project] [--web] [--speed] · cloudhost analytics disable [project] [--web] [--speed]روشن یا خاموش کردن آمار بازدید و سرعت (یا فقط یکی)؛ روشن کردن، پلن حرفه‌ای می‌خواهد
cloudhost analytics settings [project] [--speed-sample <percent>]وضعیت، نمونهٔ سرعت و برچسب اسکریپت؛ ‎--speed-sample‎ نمونه را عوض می‌کند
cloudhost analytics delete [project] [--yes]خاموش کردن هر دو و حذف کردن همهٔ شمارش‌ها (اول می‌پرسد)
cloudhost speed [project] [--device mobile|desktop] [--period <p>] [--route <route>]امتیاز سرعت، صدک ۷۵ هر معیار با رتبه‌اش و کندترین مسیرها
نمونه
cloudhost analytics enable shop
cloudhost analytics shop --period 30d
cloudhost analytics shop --by referrer --limit 50
cloudhost speed shop --device desktop

تغییر اندازهٔ تصویر#

دستورکار
cloudhost images [show] [--project <name>]تنظیمات تغییر اندازهٔ تصویر برنامه، تبدیل‌های این ماه و کش
cloudhost images set [--resizing on|off] [--widths 640,1080] [--qualities 50,75,90] [--formats webp,avif|none] [--ttl <seconds>]تغییر تنظیمات تصویر؛ فقط آنچه داده شود عوض می‌شود
cloudhost images hosts add <host...>اجازهٔ تصویر از میزبان بیرونی (img.example.com یا ‎*.example.com، فقط https)
cloudhost images hosts rm <host...>برداشتن اجازهٔ یک میزبان
cloudhost images usage [--days <n>]تبدیل‌ها، خواندن از کش و تصویرهای اصلی، روزبه‌روز
cloudhost images purge --yesپاک کردن همهٔ تصویرهای ساخته‌شدهٔ برنامه از کش
cloudhost images teamتبدیل‌های این ماه همهٔ برنامه‌ها و کش تیم
نمونه
cloudhost images hosts add images.example.com
cloudhost images set --formats webp,avif
cloudhost images usage --days 7

فقط در داشبورد#

ایجاد و حذف تیم، انتقال برنامه یا تابع به تیمی دیگر، ترک تیم و تنظیم عامل دوم فقط در داشبورد است: این کارها یک نفرِ واردشده می‌خواهند، نه کلید API.