← همه مقالات
CLIدیپلویCI/CDترمینال

دیپلوی از ترمینال: راهنمای کامل CLI وب‌لاینز

با دستورِ weblines از ترمینال وارد شوید، دیپلو کنید، لاگِ build را تا آخر ببینید، متغیرها را تنظیم کنید و همین را در GitHub Actions، GitLab و همگیت خودکار کنید. بدونِ کپیِ کلید.

اگر بیشترِ روزتان در ترمینال می‌گذرد، باز کردنِ پنل فقط برای زدنِ یک دکمه‌ی دیپلو حواس را پرت می‌کند. کد را push می‌کنید، به مرورگر می‌روید، سرویس را پیدا می‌کنید، دیپلو می‌زنید و منتظرِ لاگ می‌مانید.

CLI وب‌لاینز همین چرخه را به ترمینال می‌آورد. با دستورِ weblines دیپلو می‌کنید، لاگِ build را تا پایان همان‌جا می‌بینید، لاگِ زنده را دنبال می‌کنید و متغیرهای محیطی را تنظیم می‌کنید. همین دستورها در CI هم کار می‌کنند، پس دیپلویِ خودکار بعد از تست هم با چند خط درست می‌شود.

نصب در یک دقیقه#

CLI به Node.js نسخه‌ی ۱۸.۱۷ یا جدیدتر نیاز دارد و هیچ وابستگیِ دیگری ندارد:

bash
npm install -g weblines
weblines --version

اگر npm شما روی یک آینه‌ی داخلی تنظیم است و پکیج را پیدا نمی‌کند، رجیستریِ اصلی را بدهید:

bash
npm install -g weblines --registry=https://registry.npmjs.org

کدِ CLI متن‌باز است: github.com/weblines-cloud/cli.

ورود بدونِ کپیِ کلید#

bash
weblines login

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

ورود در ~/.config/weblines/config.json ذخیره می‌شود و فقط کاربرِ خودتان می‌تواند آن را بخواند. هر وقت خواستید، weblines logout ورود را باطل می‌کند. فهرستِ اتصال‌های فعال را هم در پنل، بخشِ Settings → API keys → Connected apps می‌بینید و از همان‌جا قطع می‌کنید.

اولین دیپلو از ترمینال#

اول ببینید چه سرویس‌هایی دارید:

bash
weblines ps

خروجی یک جدول است با نام، نوع، وضعیت و اندازه‌ی هر سرویس. حالا پوشه‌ی پروژه را یک بار به سرویسش وصل کنید:

bash
cd my-app
weblines link my-app

این دستور یک فایلِ کوچکِ .weblines.json می‌سازد. از این به بعد، داخلِ همین پوشه لازم نیست نامِ سرویس را بنویسید:

bash
weblines deploy

دیپلو شروع می‌شود و لاگِ build زنده در ترمینال می‌آید تا وقتی تمام شود. اگر build شکست بخورد، دستور با کدِ خروجِ 1 تمام می‌شود. این برای اسکریپت و CI مهم است، چون شکستِ دیپلو را می‌فهمند.

دو گزینه‌ی کاربردی:

  • weblines deploy --force: build بدونِ cache. فقط وقتی وابستگی‌ها یا Dockerfile عوض شده‌اند؛ کندتر است.
  • weblines deploy --no-wait: دیپلو را شروع می‌کند و منتظرِ پایان نمی‌ماند.

یک نکته‌ی مهم: weblines deploy فایل‌های پوشه‌ی شما را آپلود نمی‌کند. سرویس از همان منبعی build می‌شود که در وب‌لاینز برایش تنظیم شده، مثلاً ریپو و برنچِ گیت. پس اول git push کنید، بعد دیپلو. اگر کد روی گیت نیست، از ساخت با فایل ZIP در پنل استفاده کنید.

لاگ، وضعیت و کنترلِ سرویس#

بعد از دیپلو، برای دیدنِ لاگِ اجرای اپ:

bash
weblines logs -f

-f لاگ را زنده دنبال می‌کند. با -n 500 یا -n 2000 خط‌های بیشتری از گذشته می‌گیرید.

بقیه‌ی دستورهای روزمره:

دستورکار
weblines statusوضعیتِ سرویس و آدرس‌هایش، همراهِ وضعیتِ SSL
weblines openآدرسِ وبِ سرویس
weblines restartری‌استارت
weblines stop / weblines startخاموش و روشن کردن

یادتان باشد سرویسِ خاموش هزینه‌ی CPU و RAM ندارد و فقط دیسکش حساب می‌شود. پس weblines stop برای محیطِ تست در آخرِ هفته راهِ ساده‌ای برای صرفه‌جویی است. (کیف پول و هزینه‌ها)

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

bash
weblines env ls
weblines env set NODE_ENV=production API_URL=https://api.example.com
weblines env unset OLD_FLAG
weblines deploy

env ls فقط نامِ متغیرها را نشان می‌دهد، نه مقدارشان. مقدارِ رمزها هیچ‌وقت در ترمینال چاپ نمی‌شود، پس اسکرین‌شات یا لاگِ ترمینال چیزی را لو نمی‌دهد. بعد از تغییرِ متغیرها یک بار دیپلو کنید تا اپ مقدارهای تازه را بگیرد.

دیپلویِ خودکار در CI#

روی سرورِ CI کسی نیست که در مرورگر تأیید کند. آن‌جا به‌جای ورود، یک کلیدِ API بسازید:

  1. در پنل: Settings → API keys → New key، فقط با دسترسیِ read و deploy.
  2. کلید را به‌عنوانِ secret با نامِ WEBLINES_TOKEN در CI ذخیره کنید. هیچ‌وقت در ریپو commit نکنید.

GitHub Actions#

اکشنِ آماده‌ی وب‌لاینز همه‌ی کار را می‌کند. این فایل را در .github/workflows/deploy.yml بگذارید:

yaml
name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: weblines-cloud/deploy-action@v1
        with:
          app: my-app
          token: ${{ secrets.WEBLINES_TOKEN }}

لاگِ build در خودِ job دیده می‌شود و اگر دیپلو شکست بخورد، pipeline هم قرمز می‌شود.

GitLab و همگیت#

yaml
deploy:
  stage: deploy
  image: node:20-alpine
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
  before_script:
    - npm install -g https://codeload.github.com/weblines-cloud/cli/tar.gz/v0.1.1
  script:
    - weblines deploy my-app

اگر runner شما به GitHub دسترسی ندارد (بعضی runnerهای داخلِ ایران)، به‌جای CLI از Deploy Hook استفاده کنید. یک curl است و چیزی نصب نمی‌خواهد. نمونه‌های کامل در مستنداتِ دیپلوی از CI هست.

اگر اپ با GitHub وصل‌شده ساخته شده و «دیپلوی با هر push» روشن است، وقتی CI را راه انداختید آن را خاموش کنید. وگرنه هر push دو بار دیپلو می‌شود و اپ قبل از گذشتنِ تست‌ها هم بالا می‌آید.

امنیت: CLI چه کارهایی نمی‌کند#

  • حذف ندارد. هیچ سرویسی را نمی‌شود از CLI پاک کرد؛ حذف فقط از پنل است.
  • مقدارِ رمزها را نمی‌خواند. فقط نامِ متغیرها را می‌بیند.
  • کلید در CI با کمترین دسترسی. کلیدِ read + deploy نمی‌تواند سرویس بسازد یا متغیر عوض کند.
  • همه‌چیز ثبت می‌شود. هر دیپلو در Activity سازمان با نامِ کلید یا اتصال ثبت می‌شود.

محدودیت‌های نسخه‌ی فعلی#

صادقانه بگوییم CLI هنوز چه کارهایی را نمی‌کند:

  • ساختِ سرویسِ تازه از ترمینال نیست؛ سرویس را یک بار از پنل بسازید.
  • env pull نداریم، چون مقدارِ متغیرها عمداً خوانده نمی‌شود.
  • ترمینالِ کانتینر و شِلِ دیتابیس فعلاً فقط در پنل هستند.

CLI یا دستیارِ هوش مصنوعی؟#

هر دو یک کار را از دو راه انجام می‌دهند. CLI برای وقتی است که خودتان دستور می‌دهید یا اسکریپت و CI دارید. اگر ترجیح می‌دهید به زبانِ عادی بنویسید «لاگ را بخوان و بگو چرا خطا می‌دهد»، وب‌لاینز را به Claude Code، Cursor یا Gemini CLI وصل کنید. خیلی‌ها هر دو را کنارِ هم استفاده می‌کنند.

سؤال‌های رایج#

روی ویندوز کار می‌کند؟ بله. CLI با Node.js اجرا می‌شود و روی ویندوز، مک و لینوکس یکسان است.

چند سازمان دارم. CLI با کدام کار می‌کند؟ با همان سازمانی که موقعِ weblines login در صفحه‌ی تأیید انتخاب کردید. برای سازمانِ دیگر، دوباره وارد شوید.

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

از کجا شروع کنیم؟#

اگر هنوز سرویسی روی وب‌لاینز ندارید، اول ریپوی GitHub را دیپلو کنید یا اولین اپ Docker را بالا بیاورید. بعد CLI را نصب کنید، weblines login بزنید و دیپلوی بعدی را از ترمینال انجام دهید. فهرستِ کاملِ دستورها در مستنداتِ CLI است.

مقالات مرتبط