خط فرمان
مرجع cdnctl
مرجع کامل برای cdnctl (v0.12.x). همه دستورها خروجی JSON میدهند. توکن احراز هویت در ~/.cdnctl/config.json ذخیره میشود یا از متغیرهای محیطی CDNCTL_TOKEN و CDNCTL_ENDPOINT خوانده میشود.
delete یا revoke باشد به یک پرچم صریح --yes نیاز دارد. بدون آن، دستور با خطا خارج میشود و هیچ تغییری اعمال نمیکند.
نصب و بهروزرسانی
cdnctl بهصورت یک باینری استاتیک برای Linux، macOS و Windows (amd64/arm64) عرضه میشود. به PHP، Python، Node.js یا kubectl نیازی ندارد.
install
curl -fsSL https://cdn.com.tr/downloads/cdnctl/install.sh | sh
# pin a specific version
CDNCTL_VERSION=0.12.0 curl -fsSL https://cdn.com.tr/downloads/cdnctl/install.sh | sh
آخرین نسخهٔ منتشرشده برای پلتفرم شما را دانلود میکند، آن را در برابر چکسامهای منتشرشده تأیید میکند و باینری را نصب میکند.
update
cdnctl update --check
cdnctl update --yes
cdnctl update --version <version> --yes
باینری نصبشده را از کانال انتشار عمومی بهصورت خودکار بهروزرسانی میکند. آرشیو دانلودشده پیش از جایگزینی باینری، در برابر فایل چکسام منتشرشده تأیید میشود.
| فلگ | توضیحات | |
|---|---|---|
| --check | اختیاری | فقط گزارش میدهد که آیا نسخهٔ جدیدتری وجود دارد یا نه؛ چیزی را تغییر نمیدهد |
| --yes | اختیاری | بهروزرسانی را بدون درخواست تأیید اعمال میکند |
| --version | اختیاری | بهجای آخرین نسخه، به نسخهٔ مشخصی بهروزرسانی (یا تنزل نسخه) میدهد |
| --bin-dir | اختیاری | دایرکتوری نصب برای زمانی که مسیر باینری فعلی قابل نوشتن نیست. پیشفرض جایگزین: $HOME/.local/bin. متغیر محیطی: CDNCTL_BIN_DIR |
احراز هویت و پیکربندی
login
cdnctl login --email <email> --password <password> [--endpoint <url>]
احراز هویت میکند و توکن را در ~/.cdnctl/config.json ذخیره میکند. یک بار برای هر دستگاه استفاده کنید؛ توکن برای دستورهای بعدی مجدداً استفاده میشود.
| فلگ | توضیحات | |
|---|---|---|
| الزامی | آدرس ایمیل حساب | |
| --password | الزامی | رمز عبور حساب |
| --endpoint | اختیاری | آدرس پایهٔ API. پیشفرض: https://cdn.com.tr |
configure
cdnctl configure [--endpoint <url>] [--token <token>]
اندپوینت یا توکن را بدون ورود (login) بهصورت دستی تنظیم میکند. برای محیطهای CI یا اتوماسیون مبتنی بر توکن مفید است.
| فلگ | توضیحات | |
|---|---|---|
| --endpoint | اختیاری | آدرس پایهٔ API |
| --token | اختیاری | توکن Bearer. بهجای آن میتوانید متغیر محیطی CDNCTL_TOKEN را تنظیم کنید |
CDNCTL_TOKEN و CDNCTL_ENDPOINT فایل پیکربندی را بازنویسی میکنند و برای خطوط CI که نوشتن روی دیسک ایدهآل نیست مفیدند.
حسابها
accounts list
cdnctl accounts list
همهٔ حسابهای CDN قابل دسترس برای کاربر احراز هویتشده را لیست میکند (JSON کامل). فیلد uuid بهعنوان --account در همهٔ دستورهای دیگر استفاده میشود.
accounts ls
cdnctl accounts ls
نسخهای کوتاه و خوانا از این لیست — یک خط برای هر حساب فقط با uuid، دامنه و نوع. برای پیدا کردن uuid و ذخیره کردن آن بهعنوان پیشفرض مفید است.
accounts use / current / clear
cdnctl accounts use <uuid>
cdnctl accounts current
cdnctl accounts clear
یک بار یک حساب پیشفرض را ذخیره کنید تا مجبور نباشید در هر دستور --account <uuid> را ارسال کنید. پس از accounts use، دستورهای مرتبط با حساب بهصورت خودکار از حساب ذخیرهشده استفاده میکنند (عبارت (using saved account <uuid>) را چاپ میکنند تا بدانید کدام حساب است)؛ در هر زمان میتوانید با ارسال --account آن را بازنویسی کنید. current آن را نمایش میدهد و clear آن را فراموش میکند.
دسترسی به فایل (آپلود و مدیریت فایلهای شما)
فایلهای سایت وردپرس مدیریتشدهٔ خود را مستقیماً از خط فرمان آپلود، لیست و حذف کنید — بدون نیاز به FTP و بدون محدودیت حجم آپلود. اگر با خطای 413 Request Entity Too Large مواجه شدید، بهجای آپلود از طریق مرورگر از این روش استفاده کنید. مسیرها نسبت به wp-content سایت شما هستند، بنابراین میتوانید به uploads/، plugins/، themes/ و مانند آن دسترسی داشته باشید. شما فقط فایلهای حساب خودتان را میبینید.
Set your account once
cdnctl accounts use <uuid>
به این ترتیب دستورهای فایل در ادامه نیازی به --account در هر بار ندارند. (برای پیدا کردن uuid خود cdnctl accounts ls را اجرا کنید.)
List files — files ls
cdnctl files ls # lists wp-content (uploads, plugins, themes, …)
cdnctl files ls --path uploads
cdnctl files ls --path uploads/2026
بدون --path، ریشهٔ wp-content را لیست میکند.
Upload files — cp
cdnctl cp ./photo.jpg /uploads/photo.jpg
cdnctl cp ./backup.zip /uploads/backup.zip
cdnctl cp ./my-plugin.php /plugins/my-plugin/my-plugin.php
# upload a whole folder recursively (structure is preserved):
cdnctl cp -r ./my-folder /uploads/my-folder
برای آپلود کل یک دایرکتوری، -r را اضافه کنید — ساختار پوشهٔ محلی در مقصد بازسازی میشود (پوشههای والد بهطور خودکار ساخته میشوند؛ پوشههای خالی نادیده گرفته میشوند). آپلودها هرگز فایل موجود را بازنویسی نمیکنند مگر اینکه --force را اضافه کنید. همچنین میتوانید بهجای ذخیرهٔ حساب پیشفرض، حساب را بهصورت درونخطی بهشکل <uuid>:/uploads/photo.jpg بنویسید.
| فلگ | توضیحات | |
|---|---|---|
-r | یک دایرکتوری را بهصورت بازگشتی آپلود میکند. | |
--force | فایلهای موجود را بازنویسی میکند. |
Create a folder — files mkdir
cdnctl files mkdir --path /uploads/2026/07
Delete a file — files rm
cdnctl files rm --path /uploads/photo.jpg --yes
به --yes نیاز دارد. فقط فایلها قابل حذف هستند (دایرکتوریها رد میشوند).
Container Apps
container apps list
cdnctl container apps list --account <uuid>
همهٔ اپهای کانتینری زیر این حساب را لیست میکند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
container apps create
cdnctl container apps create \
--account <uuid> \
--name <name> \
--image <registry/image> \
[--tag <tag>] \
[--port <port>] \
[--healthcheck <path>] \
[--healthcheck-type http|tcp|none] \
[--metrics-port <port>] \
[--metrics-path <path>] \
[--replicas <n>] \
[--plan <code>] \
[--domain <domain>] \
[--env-json '{"KEY":"value"}'] \
[--secrets-json '{"SECRET":"value"}'] \
[--registry-credential <uuid>] \
[--persistent-mount-path <path>] \
[--persistent-storage-gb <n>]
یک رکورد اپ کانتینری جدید و اولین نسخه (revision) را ایجاد میکند. استقرار (deploy) انجام نمیشود — پس از ایجاد، deploy را اجرا کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --name | الزامی | نام اپ (سازگار با slug) |
| --image | الزامی | مسیر ایمیج کانتینر، مثلاً registry.example.com/acme/api |
| --tag | اختیاری | برچسب (tag) ایمیج. پیشفرض: رشتهٔ خالی |
| --port | اختیاری | پورت کانتینر که اپ روی آن گوش میدهد. پیشفرض: 8080 |
| --healthcheck | اختیاری | مسیر بررسی سلامت (health check) HTTP. پیشفرض: /health |
| --healthcheck-type | اختیاری | نوع بررسی سلامت: http، tcp یا none |
| --metrics-port | اختیاری | پورتی که متریکهای Prometheus را ارائه میدهد |
| --metrics-path | اختیاری | مسیری که متریکهای Prometheus را ارائه میدهد، مثلاً /metrics |
| --replicas | اختیاری | تعداد رپلیکاها. پیشفرض: 1 |
| --plan | اختیاری | کد پلن منابع. پیشفرض: starter |
| --domain | اختیاری | دامنهٔ اختصاصی برای اتصال |
| --env-json | اختیاری | آبجکت JSON متغیرهای محیطی. مقادیر در پاسخهای GET قابل مشاهده هستند. |
| --secrets-json | اختیاری | آبجکت JSON مقادیر محرمانه (secrets). مقادیر رمزنگاری میشوند و پس از ایجاد هرگز بازگردانده نمیشوند. |
| --registry-credential | اختیاری | UUID اعتبارنامهٔ رجیستری برای ایمیجهای خصوصی |
| --persistent-mount-path | اختیاری | مسیر مانت برای والیوم پایدار (persistent volume)، مثلاً /app/data |
| --persistent-storage-gb | اختیاری | اندازهٔ والیوم پایدار به گیگابایت |
--secrets-json بهصورت رمزنگاریشده ذخیره میشوند و در هیچ پاسخ GET بازگردانده نمیشوند. پیش از اجرای این دستور آنها را ذخیره کنید.
container apps update
cdnctl container apps update \
--account <uuid> \
--app <uuid> \
[--image <registry/image>] \
[--tag <tag>] \
[--port <port>] \
[--replicas <n>] \
[--healthcheck <path>] \
[--healthcheck-type http|tcp|none] \
[--metrics-port <port>] \
[--metrics-path <path>] \
[--domain <domain>] \
[--env-json '{"KEY":"value"}'] \
[--secrets-json '{"SECRET":"value"}'] \
[--registry-credential <uuid>] \
[--persistent-mount-path <path>]
تنظیمات اپ را بهروزرسانی میکند. فقط فلگهایی که ارسال میکنید تغییر میکنند. برای انتشار نسخهٔ جدید، پس از بهروزرسانی deploy را اجرا کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --image | اختیاری | مسیر ایمیج جدید |
| --tag | اختیاری | برچسب ایمیج جدید |
| --port | اختیاری | پورت کانتینر |
| --replicas | اختیاری | تعداد رپلیکاها |
| --healthcheck | اختیاری | مسیر بررسی سلامت |
| --healthcheck-type | اختیاری | نوع بررسی سلامت: http، tcp یا none |
| --metrics-port | اختیاری | پورتی که متریکهای Prometheus را ارائه میدهد |
| --metrics-path | اختیاری | مسیری که متریکهای Prometheus را ارائه میدهد |
| --domain | اختیاری | دامنه برای اتصال. برای حذف، رشتهٔ خالی ارسال کنید. |
| --env-json | اختیاری | همهٔ متغیرهای محیطی را با این آبجکت JSON جایگزین میکند |
| --secrets-json | اختیاری | همهٔ مقادیر محرمانه را با این آبجکت JSON جایگزین میکند. مقادیر هرگز بازگردانده نمیشوند. |
| --registry-credential | اختیاری | UUID اعتبارنامهٔ رجیستری. برای حذف، رشتهٔ خالی ارسال کنید. |
| --persistent-mount-path | اختیاری | مسیر مانت پایدار. برای غیرفعالسازی، رشتهٔ خالی ارسال کنید. |
container apps deploy
cdnctl container apps deploy --account <uuid> --app <uuid>
پیکربندی فعلی را بهعنوان یک نسخهٔ جدید منتشر میکند. سپس برای انتظار تا رسیدن استقرار به وضعیت هدف، از wait استفاده کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container apps expose
cdnctl container apps expose --account <uuid> --app <uuid>
یک زیردامنهٔ دائمی و تغییرناپذیر بهشکل <uid>.cdn.com.tr برای اپ ایجاد میکند. این زیردامنه حتی در صورت بهروزرسانی دامنهٔ اختصاصی هرگز تغییر نمیکند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container apps restart
cdnctl container apps restart --account <uuid> --app <uuid>
بدون ایجاد نسخهٔ جدید، یک ریاستارت غلتان (rolling restart) برای همهٔ رپلیکاهای در حال اجرا انجام میدهد.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container apps scale
cdnctl container apps scale --account <uuid> --app <uuid> --replicas <n>
تعداد رپلیکاها را بلافاصله و بدون ایجاد نسخهٔ جدید تغییر میدهد. برای مقیاسدهی اپ به صفر، 0 را ارسال کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --replicas | الزامی | تعداد رپلیکای هدف (برای تعلیق اپ از 0 استفاده کنید) |
container apps show
cdnctl container apps show --account <uuid> --app <uuid>
پیکربندی کامل اپ شامل لیست نسخهها (revisions) را برمیگرداند. از UUIDهای نسخه در این خروجی همراه با rollback استفاده کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container apps rollback
cdnctl container apps rollback --account <uuid> --app <uuid> --revision <revision_uuid>
یک نسخهٔ قبلی را دوباره مستقر میکند. برای لیست UUIDهای نسخهٔ موجود از show استفاده کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --revision | الزامی | UUID نسخه (revision) برای بازگشت به آن (از خروجی show) |
container apps operations
cdnctl container apps operations --account <uuid> --app <uuid>
همهٔ عملیات ثبتشدهٔ پلتفرم برای اپ مانند استقرارها، ریاستارتها و رویدادهای مقیاسدهی را لیست میکند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container apps status
cdnctl container apps status --account <uuid> --app <uuid>
وضعیت اجرای فعلی و نتیجهٔ آخرین عملیات اپ را برمیگرداند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container apps wait
cdnctl container apps wait \
--account <uuid> \
--app <uuid> \
--status <target> \
[--timeout <seconds>] \
[--interval <seconds>]
وضعیت اپ را بهصورت دورهای بررسی میکند تا به --status برسد یا زمان مهلت (timeout) به پایان برسد. در صورت موفقیت با کد 0 و در صورت شکست یا اتمام مهلت با کد 1 خارج میشود. در صورت شکست، خروجی diagnose بهطور خودکار افزوده میشود.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --status | الزامی | رشتهٔ وضعیت هدف، مثلاً running |
| --timeout | اختیاری | حداکثر زمان انتظار به ثانیه. پیشفرض: 300 |
| --interval | اختیاری | فاصلهٔ بررسی دورهای به ثانیه. پیشفرض: 5 |
container apps logs
cdnctl container apps logs --account <uuid> --app <uuid> [--tail <n>]
خطوط اخیر لاگ کانتینر را برمیگرداند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --tail | اختیاری | تعداد خطوط لاگ برای بازگرداندن. پیشفرض: 100 |
container apps diagnose
cdnctl container apps diagnose --account <uuid> --app <uuid> [--tail <n>]
یک اسنپشات ترکیبی از وضعیت و لاگ برمیگرداند. در صورت شکست، بهطور خودکار توسط wait استفاده میشود. وقتی اپ گیر کرده یا با شکست مواجه شده، ابتدا این را اجرا کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --tail | اختیاری | تعداد خطوط لاگ برای گنجاندن. پیشفرض: 120 |
container apps delete
cdnctl container apps delete --account <uuid> --app <uuid> --yes
اپ و همهٔ نسخههای آن را بهطور دائمی حذف میکند. این عملیات غیرقابل بازگشت است.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --yes | الزامی | برای عملیات مخرب، تأیید صریح لازم است |
Container Preflight
پیش از ایجاد اپها، preflight را اجرا کنید تا مطمئن شوید حساب همهٔ پیشنیازهای پلتفرم (سهمیهها، سیاستهای شبکه، دسترسی رجیستری و غیره) را دارد.
container preflight
cdnctl container preflight --account <uuid>
بررسی میکند که آیا حساب برای اجرای بارهای کاری کانتینری آماده است و لیستی از مشکلات یافتشده را برمیگرداند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
اعتبارنامههای رجیستری
اعتبارنامههای رجیستری در سطح حساب هستند و میتوانند در چند اپ استفاده مجدد شوند. رمز عبور بهصورت رمزنگاریشده ذخیره میشود و پس از ایجاد هرگز بازگردانده نمیشود.
container registry-credentials list
cdnctl container registry-credentials list --account <uuid>
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
container registry-credentials create
cdnctl container registry-credentials create \
--account <uuid> \
--name <name> \
--password <token> \
[--registry-url <url>] \
[--username <user>]
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --name | الزامی | نام دلخواه برای این اعتبارنامه |
| --password | الزامی | رمز عبور رجیستری یا توکن دسترسی |
| --registry-url | اختیاری | آدرس رجیستری. پیشفرض: https://index.docker.io/v1/ |
| --username | اختیاری | نام کاربری رجیستری |
container registry-credentials delete
cdnctl container registry-credentials delete \
--account <uuid> \
--credential <credential_uuid> \
--yes
یک اعتبارنامهٔ رجیستری را بهطور دائمی حذف میکند. هر اپی که به این اعتبارنامه ارجاع دهد، در استقرار بعدی در دریافت (pull) ایمیج با شکست مواجه خواهد شد.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --credential | الزامی | UUID اعتبارنامه از خروجی registry-credentials list |
| --yes | الزامی | برای عملیات مخرب، تأیید صریح لازم است |
افزونههای مدیریتشده
افزونهها (add-on) بهصورت خودکار ایجاد و به اپ متصل میشوند. اعتبارنامهها بهعنوان متغیرهای محیطی تزریق میشوند — نیازی به وارد کردن دستی هاست، پورت یا رمز عبور نیست. پس از فعال یا غیرفعال کردن یک افزونه، دستور deploy را اجرا کنید.
container addons list
cdnctl container addons list --account <uuid> --app <uuid>
همهٔ افزونههای (add-on) متصل به اپ در حال حاضر را لیست میکند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container addons enable-database
cdnctl container addons enable-database \
--account <uuid> \
--app <uuid> \
[--plan <code>] \
[--env-prefix <prefix>] \
[--storage-mb <n>] \
[--url-scheme <scheme>]
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --plan | اختیاری | کد پلن منابع. پیشفرض: starter |
| --env-prefix | اختیاری | پیشوند متغیر محیطی برای اعتبارنامههای تزریقشده. پیشفرض: DB |
| --storage-mb | اختیاری | اندازهٔ فضای ذخیرهسازی به مگابایت |
| --url-scheme | اختیاری | شمای (scheme) آدرس پایگاهداده برای متغیر DATABASE_URL، مثلاً mysql+pymysql. پیشفرض: mysql |
container addons disable-database
cdnctl container addons disable-database --account <uuid> --app <uuid>
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container addons enable-redis
cdnctl container addons enable-redis \
--account <uuid> \
--app <uuid> \
[--plan <code>] \
[--env-prefix <prefix>]
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --plan | اختیاری | کد پلن منابع. پیشفرض: starter |
| --env-prefix | اختیاری | پیشوند متغیر محیطی. پیشفرض: REDIS |
container addons disable-redis
cdnctl container addons disable-redis --account <uuid> --app <uuid>
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container addons enable-postgres
cdnctl container addons enable-postgres \
--account <uuid> \
--app <uuid> \
[--plan <code>] \
[--env-prefix <prefix>] \
[--storage-mb <n>]
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --plan | اختیاری | کد پلن منابع. پیشفرض: starter |
| --env-prefix | اختیاری | پیشوند متغیر محیطی برای اعتبارنامههای تزریقشده. پیشفرض: DATABASE |
| --storage-mb | اختیاری | اندازهٔ فضای ذخیرهسازی به مگابایت. پیشفرض: 10240 |
container addons disable-postgres
cdnctl container addons disable-postgres \
--account <uuid> \
--app <uuid> \
[--delete-data --confirmation <app_name>]
افزونهٔ Postgres را غیرفعال میکند. بهطور پیشفرض دادهها نگهداشته میشوند. برای حذف دائمی همهٔ دادهها، --delete-data را همراه با --confirmation ارسال کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --delete-data | اختیاری | حذف دائمی همهٔ دادههای Postgres |
| --confirmation | اختیاری | نام اپ برای تأیید حذف داده هنگام تنظیم --delete-data |
container addons enable-nats
cdnctl container addons enable-nats \
--account <uuid> \
--app <uuid> \
[--plan <code>] \
[--env-prefix <prefix>] \
[--storage-mb <n>]
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --plan | اختیاری | کد پلن منابع. پیشفرض: starter |
| --env-prefix | اختیاری | پیشوند متغیر محیطی برای اعتبارنامههای تزریقشده. پیشفرض: NATS |
| --storage-mb | اختیاری | اندازهٔ فضای ذخیرهسازی JetStream به مگابایت. پیشفرض: 5120 |
container addons disable-nats
cdnctl container addons disable-nats \
--account <uuid> \
--app <uuid> \
[--delete-data]
افزونهٔ NATS را غیرفعال میکند. برای حذف دائمی همهٔ دادههای JetStream، --delete-data را ارسال کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --delete-data | اختیاری | حذف دائمی همهٔ دادههای JetStream مربوط به NATS |
وارد کردن Compose
یک فایل docker-compose.yml موجود را بهعنوان اپهای کانتینری مدیریتشده ایمپورت کنید. سرویسهایی که ایمیج از پیش ساختهشده دارند تبدیل به اپ میشوند؛ سرویسهای Redis، MySQL/MariaDB، Postgres و NATS به افزونههای مدیریتشده تبدیل و به اپهای وابسته به آنها متصل میشوند. همیشه ابتدا preview را اجرا کنید — این دستور بدون ایجاد چیزی، طرح نهایی، هشدارها، سرویسهای پشتیبانینشده و اینکه آیا ایمپورت با سهمیهٔ اپ شما سازگار است را نشان میدهد.
container compose preview
cdnctl container compose preview --account <uuid> --file docker-compose.yml
فایل compose را در سمت سرور تجزیه میکند و طرح ایمپورت را برمیگرداند: اپهایی که باید ایجاد شوند، نگاشت افزونهها، دستهبندی کلیدهای متغیر محیطی/محرمانه، هشدارها، سرویسهای پشتیبانینشده و بررسی مجوز (entitlement). چیزی ایجاد نمیشود. مقادیر محرمانه هرگز بازگردانده نمیشوند — فقط نام کلیدها.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --file | الزامی | مسیر فایل compose (حداکثر ۲۵۶ کیلوبایت) |
container compose apply
cdnctl container compose apply --account <uuid> --file docker-compose.yml --yes
ایمپورت را اعمال میکند: اپها را به ترتیب وابستگی ایجاد میکند و افزونههای نگاشتشده را فعال میکند. بهصورت همهیاهیچ — اگر نام هر اپی با اپ موجود تداخل داشته باشد، یا هر سرویسی پشتیبانی نشود (مثلاً از build: استفاده کند)، چیزی ایجاد نمیشود. پس از آن، هر اپ ایجادشده را با container apps deploy مستقر کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --file | الزامی | مسیر فایل compose (حداکثر ۲۵۶ کیلوبایت) |
| --yes | الزامی | ایجاد منبع را تأیید میکند |
build: استفاده میکنند (بهجای آن یک ایمیج از قبل ساختهشده push کنید)، بازنویسیهای command/entrypoint (در ایمیج بگنجانید)، env_file، secrets مبتنی بر فایل در compose، و بیش از یک mount پایدار بهازای هر سرویس. شمارههای پورت سمت میزبان نادیده گرفته میشوند — انتشار عمومی از دامنه پلتفرم و جریان apps expose استفاده میکند.
وارد کردنها
ایمپورتها باید پیش از باز شدن مسیریابی عمومی توسط استقرار (deployment) کامل شوند. پس از پایان یک ایمپورت، برای پیگیری آمادگی از apps status یا apps wait استفاده کنید.
container imports list
cdnctl container imports list --account <uuid> --app <uuid>
همهٔ ایمپورتها و وضعیت فعلی آنها را برای اپ لیست میکند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container imports database
cdnctl container imports database \
--account <uuid> \
--app <uuid> \
--file <path/to/dump.sql.gz>
یک دامپ SQL فشردهشده با gzip را آپلود و برای ایمپورت به پایگاهدادهٔ مدیریتشده در صف قرار میدهد.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --file | الزامی | مسیر محلی فایل .sql.gz |
container imports files
cdnctl container imports files \
--account <uuid> \
--app <uuid> \
--file <path/to/archive.tar.gz> \
[--target-path <path>]
یک آرشیو tar.gz را آپلود و در والیوم پایدار استخراج میکند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --file | الزامی | مسیر محلی آرشیو .tar.gz |
| --target-path | اختیاری | مسیر مقصد داخل کانتینر. پیشفرض: /app/data |
container imports cancel
cdnctl container imports cancel \
--account <uuid> \
--app <uuid> \
--import <import_uuid>
یک ایمپورت در صف یا در حال اجرا را لغو میکند. اگر ایمپورت قبلاً کامل شده باشد، هیچ تأثیری ندارد.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --import | الزامی | UUID ایمپورت از خروجی imports list |
کارهای زمانبندیشده
جابها فراخوانیهای HTTP هستند که طبق زمانبندی cron به یک اندپوینت داخل اپ ارسال میشوند. ابتدا آنها را بهصورت غیرفعال ایجاد کنید، با run بررسی کنید، سپس فعال کنید.
container jobs list
cdnctl container jobs list --account <uuid> --app <uuid>
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
container jobs create
cdnctl container jobs create \
--account <uuid> \
--app <uuid> \
--name <name> \
--schedule "<cron expression>" \
--path </endpoint/path> \
[--method <POST|GET>] \
[--secret-header-name <header>] \
[--secret-source <ENV_VAR>] \
[--enabled]
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --name | الزامی | نام جاب (job) |
| --schedule | الزامی | عبارت cron، مثلاً */30 * * * * |
| --path | الزامی | مسیر HTTP برای فراخوانی، مثلاً /jobs/run |
| --method | اختیاری | متد HTTP. پیشفرض: POST |
| --secret-header-name | اختیاری | نام هدری که توکن در آن ارسال میشود، مثلاً X-Token |
| --secret-source | اختیاری | نام مقدار محرمانهٔ اپ یا متغیر محیطی که مقدارش بهعنوان مقدار هدر ارسال میشود |
| --enabled | اختیاری | جاب را بهصورت فعال ایجاد میکند. برای ایجاد بهصورت غیرفعال (توصیهشده برای راهاندازی اولیه) آن را حذف کنید |
container jobs run
cdnctl container jobs run \
--account <uuid> \
--app <uuid> \
--job <job_uuid> \
[--wait] \
[--timeout <seconds>] \
[--interval <seconds>]
یک اجرای فوری و یکباره از جاب را آغاز میکند. برای انتظار تا پایان یا شکست اجرا، از --wait استفاده کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --job | الزامی | UUID جاب از خروجی jobs list |
| --wait | اختیاری | تا پایان اجرا، منتظر میماند (بلاک میکند) |
| --timeout | اختیاری | حداکثر زمان انتظار به ثانیه هنگام تنظیم --wait. پیشفرض: 180 |
| --interval | اختیاری | فاصلهٔ بررسی دورهای به ثانیه. پیشفرض: 5 |
container jobs delete
cdnctl container jobs delete \
--account <uuid> \
--app <uuid> \
--job <job_uuid> \
--yes
جاب زمانبندیشده را بهطور دائمی حذف میکند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --job | الزامی | UUID جاب از خروجی jobs list |
| --yes | الزامی | برای عملیات مخرب، تأیید صریح لازم است |
Object Storage
برای صفحهٔ کنترل (control plane) از cdnctl استفاده کنید: ایجاد باکتها، کلیدهای دسترسی و اتصالها (binding). برای خواندن و نوشتن آبجکتها از هر کلاینت سازگار با S3 که به https://s3.cdn.com.tr اشاره میکند استفاده کنید. راهنمای Object Storage with AWS CLI را ببینید.
object-storage buckets list
cdnctl object-storage buckets list --account <uuid>
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
object-storage buckets create
cdnctl object-storage buckets create \
--account <uuid> \
--name <bucket-name> \
[--visibility private|public]
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --name | الزامی | نام باکت (بهصورت سراسری در پلتفرم یکتا) |
| --visibility | اختیاری | private یا public. پیشفرض: private |
object-storage buckets usage
cdnctl object-storage buckets usage --account <uuid> --bucket <bucket_uuid>
آمار فعلی مصرف فضای ذخیرهسازی باکت را برمیگرداند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --bucket | الزامی | UUID باکت از خروجی buckets list |
object-storage buckets delete
cdnctl object-storage buckets delete --account <uuid> --bucket <bucket_uuid> --yes
باکت و همهٔ آبجکتهای داخل آن را بهطور دائمی حذف میکند. این عملیات غیرقابل بازگشت است.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --bucket | الزامی | UUID باکت از خروجی buckets list |
| --yes | الزامی | برای عملیات مخرب، تأیید صریح لازم است |
object-storage access-keys create
cdnctl object-storage access-keys create \
--account <uuid> \
[--bucket <uuid>] \
[--name <name>]
یک کلید دسترسی سازگار با S3 ایجاد میکند. فیلد secret_key در پاسخ فقط یک بار نمایش داده میشود و دیگر بازگردانده نمیشود. پیش از بستن ترمینال آن را کپی کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --bucket | اختیاری | UUID باکتی که کلید به آن محدود میشود |
| --name | اختیاری | نام دلخواه برای کلید |
object-storage access-keys rotate
cdnctl object-storage access-keys rotate --account <uuid> --key <key_uuid>
یک مقدار محرمانهٔ جدید برای کلید دسترسی تولید میکند در حالی که همان UUID کلید و محدودهٔ باکت حفظ میشود. secret_key جدید فقط یک بار بازگردانده میشود و دیگر تکرار نمیشود. پیش از چرخش (rotate) در محیط پروداکشن، همهٔ کلاینتها را بهروزرسانی کنید.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --key | الزامی | UUID کلید دسترسی از خروجی access-keys create |
object-storage access-keys revoke
cdnctl object-storage access-keys revoke --account <uuid> --key <key_uuid> --yes
کلید دسترسی را بهطور دائمی لغو و حذف میکند. هر کلاینتی که هنوز از این کلید استفاده میکند، بلافاصله با خطاهای احراز هویت مواجه خواهد شد.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --key | الزامی | UUID کلید دسترسی برای لغو |
| --yes | الزامی | برای عملیات مخرب، تأیید صریح لازم است |
object-storage bindings create
cdnctl object-storage bindings create \
--account <uuid> \
--app <uuid> \
--bucket <uuid> \
[--access-key <uuid>] \
[--env-prefix <prefix>]
یک باکت را به یک اپ متصل میکند. در استقرار بعدی، اعتبارنامههای S3 و اندپوینت بهعنوان متغیرهای محیطی تزریق میشوند.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --bucket | الزامی | UUID باکت |
| --access-key | اختیاری | UUID کلید دسترسی برای استفاده در این اتصال (binding) |
| --env-prefix | اختیاری | پیشوند متغیر محیطی. پیشفرض: S3 |
object-storage bindings delete
cdnctl object-storage bindings delete \
--account <uuid> \
--app <uuid> \
--binding <binding_uuid> \
--yes
اتصال باکت را از اپ حذف میکند. باکت و کلید دسترسی تحت تأثیر قرار نمیگیرند؛ فقط تزریق متغیر محیطی در استقرار بعدی حذف میشود.
| فلگ | توضیحات | |
|---|---|---|
| --account | الزامی | UUID حساب |
| --app | الزامی | UUID اپ |
| --binding | الزامی | UUID اتصال (binding) از خروجی bindings list یا پاسخ app show |
| --yes | الزامی | برای عملیات مخرب، تأیید صریح لازم است |