فایل liara.json در لیارا


فایل liara.json یک فایل پیکربندی قابل تنظیم در پروژه است که به طور انحصاری و اختصاصی، توسط PaaS لیارا، ارائه می‌شود. شما می‌توانید در برنامه‌هایی که قصد دارید به وسیله ابزار Liara CLI یا Github، در لیارا مستقر کنید؛ از این فایل و قابلیت‌های مخصوص آن، بهره ببرید. در ادامه، به معرفی بیشتر این فایل، فیلدها و بخش‌های درون آن، پرداخته شده است:

نحوه استفاده

برای استفاده از فایل liara.json نیاز به انجام کار خاصی نیست. تنها کافیست تا وارد مسیر اصلی پروژه‌تان شوید و یک فایل خالی با همین نام، یعنی liara.json ایجاد کنید؛ به عنوان مثال، در Linux، می‌توانید دستور زیر را برای ایجاد این فایل، اجرا کنید:

کپی
touch liara.json

پس از ایجاد این فایل و شخصی‌سازی‌های لازم (که در ادامه به آن‌ها، پرداخته شده است)؛ لیارا در حین فرایند استقرار، این فایل را به صورت خودکار، پیدا می‌کند و پارامترهای مختلفی نظیر شناسه برنامه، پورت برنامه و ... را مطابق با این فایل، تنظیم می‌کند.

فیلد app

در این فیلد، شما می‌توانید شناسه برنامه‌تان را انتخاب کنید؛ با انجام این کار، پس از اجرای دستور liara deploy، شناسه برنامه دیگر از شما پرسیده نمی‌شود و برنامه مدنظرتان برای استقرار در لیارا، آماده می‌شود. به عنوان مثال، اگر که شناسه برنامه‌تان my-app است، به شکل زیر، می‌توانید آن را در فایل liara.json، مشخص کنید:

کپی
{
    "app": "my-app"
}

در صورتی که شناسه برنامه را اشتباه وارد کرده باشید و یا به صورت کلی برنامه‌ای با شناسه انتخابی شما در حساب شما، وجود نداشته باشد، عملیات استقرار متوقف شده و به شما ارور داده می‌شود.

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

فیلد platform

شما می‌توانید در فیلد platform، نوع پلتفرمی که قصد دارید در لیارا استفاده کنید؛ مشخص کنید. به عنوان مثال، اگر که برنامه‌تان مبتنی بر NodeJS است، به شکل زیر، می‌توانید در فایل liara.json تعریف کنید که که پلتفرم مقصد شما، NodeJS خواهد بود:

کپی
{
    "platform": "node"
}

البته، ابزار Liara CLI، با توجه به منطق خود، قادر به تشخیص نوع پلتفرم انتخابی شما خواهد بود؛ اما در صورتی که شما قصد استقرار برنامه خاصی مانند Fastify , GatsbyJS یا برنامه‌های دیگر را دارید که ممکن است لیارا در تشخیص آن‌ها، دچار خطا شود؛ می‌توانید از این فیلد استفاده کنید. در ادامه، تمامی مقادیری که این فیلد می‌پذیرد؛ آورده شده است:

کپی
node
next
laravel
php
python
django
flask
dotnet
react
angular
vue
static
docker

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

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

فیلد port

در این فیلد، می‌توانید پورت مورد استفاده برنامه‌تان را مشخص کنید؛ با انجام این کار، پس از اجرای دستور liara deploy،‌ پورت برنامه دیگر از شما پرسیده نمی‌شود و برنامه مدنظرتان برای استقرار در لیارا، آماده می‌شود. به عنوان مثال، اگر پورت مورد استفاده برنامه شما 3000است، به شکل زیر، می‌توانید آن را در فایل liara.json، مشخص کنید:

کپی
{
    "port": 3000
}

درصورتی که پورت را در فایل liara.json مشخص نکرده باشید،‌یک پورت پیش‌فرض برای برنامه شما تنظیم خواهد شد.

استفاده از mirror لیارا

لیارا در جهت افزایش سرعت استقرار برنامه‌تان و نصب پکیج‌ها، کتابخانه‌ها و ابزارهای استفاده شده در پروژه، به جای ثبت درخواست به مخزن اصلی پکیج، از مخزن خود استفاده می‌کند و در صورتی که پکیج موردنظر شما در مخزن نباشد؛ به مخزن اصلی مراجعه می‌کند (و در موارد نادر، ممکن است با خطا مواجه شود). در واقع با انجام این کار، فرایند نصب الزامات پروژه، خیلی سریع‌تر انجام می‌شود. اما در صورتی که الزامات پروژه‌تان جدید هستند و یا به صورت کلی، در mirror لیارا وجود ندارند؛ می‌توانید mirror لیارا را غیر فعال کنید.

به عنوان مثال، لیارا در برنامه‌های NodeJS، برای نصب پکیج‌های npm از mirror خود استفاده می‌کند و شما می‌توانید با قرار دادن قطعه کد زیر در فایل liara.json، این قابلیت را، غیرفعال کنید:

کپی
{
    "node": {
      "mirror": false
  }
}

در ادامه، نحوه غیرفعال کردن این قابلیت در پلتفرم‌های مختلف، قرار گرفته است:

در پلتفرم NodeJS برای نصب پکیج‌های npm:

کپی
{
    "node": {
      "mirror": false
  }
}

تعیین نسخه زبان یا فریم‌ورک

شما می‌توانید در فایل liara.json، نسخه زبان برنامه‌نویسی یا فریم‌ورکی که از آن استفاده می‌کنید را مشخص کنید؛ در ادامه، نحوه انجام این کار در پلتفرم‌های مختلف، آمده است:

در پلتفرم NodeJS برای تعیین نسخه nodejs:

کپی
{
    "node": {
      "version": "22"
  }
}

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

فیلد منطقه زمانی

به صورت پیش‌فرض، منطقه‌ی زمانی برنامه‌تان بر روی Asia/Tehran تنظیم شده است؛ برای تغییر مقدار پیش‌فرض، می‌توانید از پارامتر timezone در فایل liara.json استفاده کنید. در ادامه، یک مثال در پلتفرم‌هایی که شامل این قابلیت هستند، برای شما آورده شده است:

در پلتفرم NodeJS برای تغییر منطقه زمانی به America/Los_Angeles:

کپی
{
    "node": {
      "timezone": "America/Los_Angeles"
  }
}

برای مشاهده لیست کامل مناطق زمانی قابل استفاده در فایل liara.json، می‌توانید در Linux، دستور زیر را اجرا کنید:

کپی
timedatectl list-timezones

تعیین موقعیت build

ممکن است بخواهید پکیج‌هایی که در موقعیت ایران در دسترس نیستند را دانلود کنید یا نیاز داشته باشید که فرایند push کردن ایمیج‌ها به رجیستری خصوصی، با سرعت بیشتری انجام شود. برای این موارد می‌توانید موقعیت build ایمیج برنامه‌تان را با قرار دادن قطعه کد زیر در فایل liara.json، تغییر دهید.

کپی
{
  "build": {
     "location": "germany"
  }
}

به صورت پیش‌فرض، موقعیت build برنامه بر روی Iran، قرار دارد.

تنظیم کرون‌جاب

Cron job یک ابزار در سیستم‌عامل‌های لینوکس است که به شما این امکان را می‌دهد که برنامه‌ها یا اسکریپت‌ها را به صورت خودکار و در زمان‌های مشخص اجرا کنید. به عبارت ساده‌تر، با استفاده از cron job می‌توانید کارهایی مانند پشتیبان‌گیری، ارسال ایمیل یا اجرای اسکریپت‌ها را به صورت زمان‌بندی‌شده انجام دهید. شما می‌توانید مانند شکل زیر، برای پلتفرم‌های زیر، کرون‌جاب‌های مدنظرتان را در فایل liara.json تعریف کنید:

کپی
{
  "cron": [
    "* * * * * curl http://localhost:3000/api/test"
  ]
}

برای اطلاعات بیشتر، می‌توانید به صفحه مربوطه در هر پلتفرم، مراجعه کنید.

بررسی سلامت

بررسی سلامت به این شکل کار می‌کند که شما یک دستور مشخصی را تعریف می‌کنید و لیارا در بازه‌های مشخص، این دستور را در استقرار جدید شما اجرا می‌کند. اگر نتیجه موفقیت‌آمیز باشد، استقرار شما موفق در نظر گرفته می‌شود؛ در غیر این‌صورت، استقرار جدید شما، ناموفق تلقی خواهد شد.

برای ایجاد این تست، کافیست تا در فایل liara.json محتوای زیر را، قرار دهید:

کپی
{
  "healthCheck": {
    "command": "CMD curl --fail http://localhost:3000 || exit 1",
    "interval": 30, 
    "timeout": 15,
    "retries": 2,
    "startPeriod": 5
   }
}

برای اطلاعات بیشتر در مورد این دستور، می‌توانید به مستندات مربوطه مراجعه کنید.

اتصال به دیسک

دیسک‌ها قابلیتی در لیارا هستند که عملکردی شبیه به Volumeها در داکر دارند و برای ذخیره‌سازی دائم اطلاعات یا تغییرات جدید، به کار می‌روند؛ شما می‌توانید در هر پلتفرمی، مانند شکل زیر، برنامه خود را در مسیر مدنظرتان، به دیسک متصل کنید:

کپی
{
    "disks": [
      {
        "name": "media",
        "mountTo": "/uploads/media"
      }
    ]
}

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

فیلدهای مخصوص هر پلتفرم

هر پلتفرم در لیارا، در فایل liara.json، در کنار تمامی فیلدها و ویژگی‌های مشترک، قابلیت‌ها و فیلدهای مخصوص به خودش را نیز، دارد که به شما امکان می‌دهد شخصی‌سازی‌های خیلی بیشتری را بر روی پروژه‌های خود اعمال کنید. در ادامه، یک مثال از تمامی فیلدهای مخصوص هر پلتفرم (فارغ از نتیجه)، برای‌تان آورده شده است:

کپی
{
    "laravel":{
      "npmMirror": true,
      "installDevDependencies": true,
      "configCache": true,
      "routeCache": true,
      "buildAssets": true,
      "ssr": true
    }
}

برای اطلاعات بیشتر در مورد هر پلتفرم، به صفحه استقرار برنامه آن، مراجعه کنید.

فایل liara.json برنامه

پس از ساخت برنامه مدنظرتان در کنسول، می‌توانید در صفحه استقرار جدید، گزینه مربوط به فایل liara.json را ببینید. این فایل به صورت کلی، الزامات درون یک فایل liara.json را در استقرار با Github یا استقرار با Liara CLI به شما نشان می‌دهد و می‌توانید از آن، برای استقرار برنامه مدنظرتان با دو روش فوق، استفاده کنید:

paas-default-liarajson