مستندات CICDHost CLI

ابزار خط فرمان حرفه‌ای برای استقرار خودکار روی اکوسیستم JavaHost. با یک دستور ساده، پروژه خود را روی هر یک از ۱۵+ سرویس تخصصی مستقر کنید.

نکته: اگر قبلاً از Vercel، Netlify یا Heroku استفاده کرده‌اید، CICDHost CLI دقیقاً با همان منطق کار می‌کند — اما برای سرویس‌های ایرانی و اکوسیستم JavaHost.

سریع‌ترین راه برای شروع:
$ npm install -g @javahost/cicdhost
$ cicdhost login --api-key YOUR_API_KEY
$ cd my-project && cicdhost deploy
✓ دیپلوی با موفقیت انجام شد!

نصب

روش ۱: نصب با npm (پیشنهادی)

npm install -g @javahost/cicdhost

پس از نصب، دستور cicdhost --version را برای تأیید اجرا کنید.

روش ۲: نصب با اسکریپت مستقیم

curl -sSL https://cicdhost.ir/install.sh | bash

این روش برای محیط‌هایی که npm در دسترس نیست مناسب است.

روش ۳: دانلود باینری (Linux/macOS/Windows)

احراز هویت

برای استفاده از CICDHost CLI، نیاز به API Key معتبر از پنل JavaHost دارید.

دریافت API Key

  1. وارد پنل کاربری JavaHost شوید
  2. به بخش تنظیمات → API Keys بروید
  3. روی ساخت API Key جدید کلیک کنید
  4. نام دلخواه (مثلاً "CICDHost CLI") وارد کنید و سطح دسترسی deploy را انتخاب کنید
  5. کلید ساخته شده را کپی کنید (فقط یک بار نمایش داده می‌شود)

ورود به CLI

cicdhost login --api-key javahost_xxxxxxxxxxxx
✓ ورود موفقیت‌آمیز بود
✓ خوش آمدید، توسعه‌دهنده گرامی
✓ اعتبار API Key تا 2025-06-15

کلید در ~/.cicdhost/api.key ذخیره می‌شود.

امنیت: هرگز API Key خود را در مخزن git commit نکنید. از فایل .gitignore استفاده کنید.

دستورات

دستورتوضیحمثال
loginورود با API Keycicdhost login --api-key xxx
initتنظیمات تعاملی پروژهcicdhost init
deployدیپلوی پروژه جاریcicdhost deploy --prod
rollbackبازگشت به نسخه قبلcicdhost rollback
logsمشاهده لاگ‌هاcicdhost logs --tail
envمدیریت متغیرهای محیطیcicdhost env set DB_URL=xxx
linkاتصال به پروژه موجودcicdhost link --project my-app
statusوضعیت آخرین دیپلویcicdhost status
whoamiاطلاعات کاربر جاریcicdhost whoami

دستور deploy

cicdhost deploy [options]
--prodدیپلوی روی محیط production
--stagingدیپلوی روی محیط staging
--skip-buildبدون build (فقط آپلود)
--no-cacheعدم استفاده از cache

مثال ۱: دیپلوی ساده

$ cicdhost deploy
🔍 شناسایی پروژه: Node.js (Express)
📦 هدف: NodeHosting.ir
🔧 npm ci --only=production
📤 ارسال فایل‌ها به سرور...
🔄 راه‌اندازی مجدد PM2...
✓ دیپلوی با موفقیت انجام شد
🌐 https://myapp.nodehosting.ir

مثال ۲: دیپلوی روی production با migration

$ cicdhost deploy --prod
🔍 شناسایی پروژه: Python (Django)
🗄️ اجرای migration روی DBHost...
python manage.py migrate
✓ migration انجام شد
🔄 راه‌اندازی مجدد Gunicorn...
✓ دیپلوی روی production انجام شد

دستور rollback

در صورت بروز مشکل، با یک دستور به آخرین نسخه پایدار بازگردید.

cicdhost rollback [options]
$ cicdhost rollback
⏪ در حال بازگشت به نسخه قبلی...
✓ نسخه قبلی: v2.3.1 (deploy #42)
✓ بازگشت با موفقیت انجام شد

دستور logs

cicdhost logs [options]
$ cicdhost logs --tail
[2025-06-15 10:23:45] Build started: myapp
[2025-06-15 10:23:47] npm install completed (2.3s)
[2025-06-15 10:23:48] Uploading files...
[2025-06-15 10:23:51] Deploy completed successfully

دستور env

نمایش همه متغیرها:
cicdhost env list
تنظیم متغیر:
cicdhost env set DB_URL postgresql://user:pass@host/db
حذف متغیر:
cicdhost env unset DB_URL

دستور init

تنظیمات تعاملی پروژه — برای پروژه‌هایی که نوع آنها به صورت خودکار شناسایی نمی‌شود.

$ cicdhost init
📋 تنظیمات تعاملی CICDHost
نوع پروژه را انتخاب کنید:
1) PHP (Laravel/Symfony)
2) Node.js (Express/Nest)
3) Python (Django/Flask)
4) Go
5) Rust
6) Java (Spring Boot)
انتخاب [1-6]: 2
سرویس مقصد [nodehosting.ir]: nodehosting.ir
✓ تنظیمات ذخیره شد

مثال‌های عملی

Laravel روی PHPHosting
cd laravel-app && cicdhost deploy

شناسایی خودکار composer.json → PHPHosting → اجرای composer install و migration

Next.js روی NodeHosting
cd next-app && cicdhost deploy --prod

npm run build → PM2 راه‌اندازی مجدد → دیپلوی روی production

Django روی PyHosting + DBHost
cd django-app && cicdhost deploy

pip install → python manage.py migrate → Gunicorn restart

Spring Boot روی JavaHosting
mvn clean package && cicdhost deploy

JAR آپلود → systemctl restart → دیپلوی بدون downtime

تنظیم Cron Job خودکار
echo "0 2 * * * php artisan backup" > .cronjobs && cicdhost deploy

CronHost خودکار job را ثبت می‌کند

Deploy تابع سرورلس
cd functions && cicdhost deploy --service faashost

تابع جدید بدون downtime جایگزین می‌شود

📁 شناسایی خودکار انواع پروژه

نوع پروژهفایل شاخصسرویس مقصددستور Build
PHPcomposer.jsonPHPHostingcomposer install
Node.jspackage.jsonNodeHostingnpm ci
Pythonrequirements.txt / PipfilePyHostingpip install -r requirements.txt
Gogo.modGoHostinggo build
RustCargo.tomlRustHostingcargo build --release
Javapom.xml / build.gradleJavaHostingmvn package

⚙️ فایل تنظیمات .cicdhost.yaml

برای پروژه‌های پیچیده، می‌توانید فایل تنظیمات سفارشی در ریشه پروژه ایجاد کنید.

name: my-app service: nodehosting.ir build_command: npm run build output_dir: ./dist env: NODE_ENV: production API_URL: https://api.example.com migrations: enabled: true command: npm run migrate cronjobs: - schedule: "0 2 * * *" command: "node scripts/backup.js" webhooks: on_success: https://myapp.com/webhook/success on_failure: https://myapp.com/webhook/failure

🎯 سرویس‌های مقصد

phphosting.irPHP + Composer + RSYNC
nodehosting.irNode.js + npm + PM2
pyhosting.irPython + pip + Gunicorn
gohosting.irGo + Supervisor
rusthosting.irRust + Cross-compile
javahosting.irJava + Maven/Gradle + Systemd
dbhost.irMigration خودکار
cronhost.irثبت خودکار Cron Job
faashost.irسرورلس (FaaS)
gpuhosting.irRetraining Pipeline
upalert.irهشدار خطا

عیب‌یابی

خطا: API Key نامعتبر است

راه‌حل: دوباره با cicdhost login --api-key NEW_KEY وارد شوید.

خطا: نوع پروژه شناسایی نشد

راه‌حل: از cicdhost init برای تنظیم دستی استفاده کنید.

خطا: اتصال به سرور برقرار نمی‌شود

راه‌حل: بررسی کنید که SSH Key شما در پنل JavaHost ثبت شده باشد.

سوالات متداول

آیا می‌توانم از CICDHost در CI/CD خودم استفاده کنم؟

بله. CICDHost CLI کاملاً بدون تعامل (non-interactive) کار می‌کند و برای استفاده در GitHub Actions، GitLab CI و Jenkins مناسب است.

چطور می‌توانم دیپلوی را لغو کنم؟

از Ctrl+C استفاده کنید. اگر دیپلوی شروع شده باشد، با cicdhost rollback بازگردید.

هزینه اضافه شدن چقدر است؟

هر deploy اضافی ۵۹۰ تومان است. دیپلوی‌های ناموفق هزینه ندارند.

آیا از دامنه اختصاصی پشتیبانی می‌شود؟

بله. در پنل JavaHost می‌توانید دامنه خود را به سرویس متصل کنید.

CICDHost CLI v1.0.0 | بخشی از اکوسیستم JavaHost

آخرین بروزرسانی: ۱۵ ژوئن ۲۰۲۵