From 9633f31754e0d6e4d5e5b4cea260998fafcc6d61 Mon Sep 17 00:00:00 2001 From: Ali Najmabadi Date: Sun, 24 Nov 2024 16:29:27 +0330 Subject: [PATCH] docs: add liara.json official page --- src/components/Sidebar/data.js | 153 +++++++++ src/pages/paas/liarajson.mdx | 612 +++++++++++++++++++++++++++++++++ 2 files changed, 765 insertions(+) create mode 100644 src/pages/paas/liarajson.mdx diff --git a/src/components/Sidebar/data.js b/src/components/Sidebar/data.js index 0392f382..8c3ecdc1 100644 --- a/src/components/Sidebar/data.js +++ b/src/components/Sidebar/data.js @@ -5,6 +5,7 @@ import { GoGear, GoRead, GoLock, + GoFile, GoDatabase, GoDiff, GoVideo, @@ -295,6 +296,11 @@ export default { icon: , link: "/paas/cicd/about" }, + { + title: "فایل liara.json", + icon: , + link: "/paas/liarajson" + }, { hr: true }, @@ -427,6 +433,11 @@ export default { icon: , link: "/paas/cicd/about" }, + { + title: "فایل liara.json", + icon: , + link: "/paas/liarajson" + }, { hr: true }, @@ -559,6 +570,148 @@ export default { icon: , link: "/paas/cicd/about" }, + { + title: "فایل liara.json", + icon: , + link: "/paas/liarajson" + }, + { + hr: true + }, + { + title: "به‌روزرسانی پلتفرم", + icon: , + link: "/paas/update" + }, + { + title: "انتقال پلتفرم", + icon: , + link: "/paas/move" + } + ], + liarajson: [ + { + badge: ( +
+ + پلتفرم +
+ ) + }, + { + title: "برگشت به خانه", + icon: , + link: "/" + }, + { + title: "درباره سرویس پلتفرم", + icon: , + link: "/paas/about" + }, + { + hr: true + }, + { + badge: "پلتفرم‌های قابل ارائه" + }, + { + title: "NodeJS", + icon: , + link: "/paas/nodejs/getting-started" + }, + { + title: "NextJS", + icon: , + link: "/paas/nextjs/getting-started" + }, + { + title: "Laravel", + icon: , + link: "/paas/laravel/getting-started" + }, + { + title: "PHP", + icon: , + link: "/paas/php/getting-started" + }, + { + title: "Python", + icon: , + link: "/paas/python/getting-started" + }, + { + title: "Django", + icon: , + link: "/paas/django/getting-started" + }, + { + title: "Flask", + icon: , + link: "/paas/flask/getting-started" + }, + { + title: "NET.", + icon: , + link: "/paas/dotnet/getting-started" + }, + { + title: "React", + icon: , + link: "/paas/react/getting-started" + }, + { + title: "Angular", + icon: , + link: "/paas/angular/getting-started" + }, + { + title: "Vue", + icon: , + link: "/paas/vue/getting-started" + }, + { + title: "Static", + icon: , + link: "/paas/static/getting-started" + }, + // { + // title: "Golang", + // icon: , + // link: "/paas//getting-started" + // }, + { + title: "Docker", + icon: , + link: "/paas/docker/getting-started" + }, + { + hr: true + }, + { + title: "جزئیات پلتفرم", + icon: , + link: "/paas/details/about" + }, + { + title: "مدیریت دیسک‌", + icon: , + link: "/paas/disks/about" + }, + { + title: "مدیریت دامنه‌", + icon: , + link: "/paas/domains/about" + }, + { + title: "قابلیت CI/CD", + icon: , + link: "/paas/cicd/about" + }, + { + title: "فایل liara.json", + icon: , + link: "/paas/liarajson" + }, { hr: true }, diff --git a/src/pages/paas/liarajson.mdx b/src/pages/paas/liarajson.mdx new file mode 100644 index 00000000..ec64982d --- /dev/null +++ b/src/pages/paas/liarajson.mdx @@ -0,0 +1,612 @@ +import Layout from "@/components/Layout"; +import Button from "@/components/Common/button"; +import Section from "@/components/Common/section"; +import Alert from "@/components/Common/alert"; +import Tabs from "@/components/Common/tab"; +import Step from "@/components/Common/step"; +import Card from "@/components/Common/card"; +import Important from "@/components/Common/important"; +import Highlight from "@/components/Common/highlight"; +import Link from "next/link"; +import PlatformIcon from "@/components/Common/icons"; +import { + GoArrowLeft, +} from "react-icons/go"; + +import Head from "next/head"; + + + +مستندات آشنایی با فایل liara.json - لیارا + + + + +# فایل liara.json در لیارا + +
+فایل liara.json یک فایل پیکربندی قابل تنظیم در پروژه است +که به طور انحصاری و اختصاصی، توسط PaaS لیارا، ارائه می‌شود. +شما می‌توانید در برنامه‌هایی که قصد دارید به وسیله ابزار Liara CLI یا Github، در لیارا مستقر کنید؛ از این فایل و قابلیت‌های مخصوص آن، بهره ببرید. +در ادامه، به معرفی بیشتر این فایل، فیلدها و بخش‌های درون آن، پرداخته شده است: + +
+برای استفاده از فایل liara.json نیاز به انجام کار خاصی نیست. +تنها کافیست تا وارد مسیر اصلی پروژه‌تان شوید و یک فایل خالی با همین نام، یعنی liara.json +ایجاد کنید؛ به عنوان مثال، در Linux، می‌توانید دستور زیر را برای ایجاد این فایل، اجرا کنید: + +
+
+ +{`touch liara.json`} + +
+
+ +پس از ایجاد این فایل و شخصی‌سازی‌های لازم (که در ادامه به آن‌ها، پرداخته شده است)؛ لیارا در حین فرایند استقرار، +این فایل را به صورت خودکار، پیدا می‌کند و پارامترهای مختلفی نظیر شناسه برنامه، پورت برنامه و ... را مطابق با این فایل، تنظیم می‌کند. + +
+در این فیلد، شما می‌توانید شناسه برنامه‌تان را انتخاب کنید؛ با انجام این کار، پس از اجرای دستور liara deploy، +شناسه برنامه دیگر از شما پرسیده نمی‌شود و برنامه مدنظرتان برای استقرار در لیارا، آماده می‌شود. +به عنوان مثال، اگر که شناسه برنامه‌تان my-app است، به شکل زیر، می‌توانید آن را در فایل liara.json، مشخص کنید: + +
+
+ +{`{ + "app": "my-app" +}`} + +
+
+ +در صورتی که شناسه برنامه را اشتباه وارد کرده باشید و یا به صورت کلی برنامه‌ای با شناسه انتخابی شما +در حساب شما، وجود نداشته باشد، عملیات استقرار متوقف شده و به شما ارور داده می‌شود. + +
+ +

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

+
+ +
+شما می‌توانید در فیلد 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، نباید این فیلد را به کار ببرید. +

+
+ +
+لیارا در جهت افزایش سرعت استقرار برنامه‌تان و نصب پکیج‌ها، کتابخانه‌ها و ابزارهای +استفاده شده در پروژه، به جای ثبت درخواست به مخزن اصلی پکیج، از مخزن خود استفاده می‌کند و در صورتی که +پکیج موردنظر شما در مخزن نباشد؛ به مخزن اصلی مراجعه می‌کند (و در موارد نادر، ممکن است با خطا مواجه شود). +در واقع با انجام این کار، فرایند نصب الزامات پروژه، خیلی سریع‌تر انجام می‌شود. +اما در صورتی که الزامات پروژه‌تان جدید هستند و +یا به صورت کلی، در mirror لیارا وجود ندارند؛ می‌توانید mirror لیارا را غیر فعال کنید. + +به عنوان مثال، لیارا در برنامه‌های NodeJS، برای نصب +پکیج‌های npm از mirror خود استفاده می‌کند و شما می‌توانید با قرار دادن قطعه کد زیر +در فایل liara.json، این قابلیت را، غیرفعال کنید: + +
+
+ +{`{ + "node": { + "mirror": false + } +}`} + +
+
+ +در ادامه، نحوه غیرفعال کردن این قابلیت در پلتفرم‌های مختلف، قرار گرفته است: + + +

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

+
+
+ +{`{ + "node": { + "mirror": false + } +}`} + +
+
+ , + <> +

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

+
+
+ +{`{ + "next": { + "mirror": false + } +}`} + +
+
+ , + <> +

+ در پلتفرم Laravel برای نصب پکیج‌های composer: +

+
+
+ +{`{ + "laravel": { + "composerMirror": false + } +}`} + +
+
+ , + <> +

+ در پلتفرم PHP برای نصب پکیج‌های composer: +

+
+
+ +{`{ + "php": { + "composerMirror": false + } +}`} + +
+
+ , + <> +

+ در پلتفرم python برای نصب پکیج‌های pip: +

+
+
+ +{`{ + "python": { + "mirror": false + } +}`} + +
+
+ , + <> +

+ در پلتفرم django برای نصب پکیج‌های pip: +

+
+
+ +{`{ + "django": { + "mirror": false + } +}`} + +
+
+ , + <> +

+ در پلتفرم Flask برای نصب پکیج‌های pip: +

+
+
+ +{`{ + "flask": { + "mirror": false + } +}`} + +
+
+ , + <> +

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

+
+
+ +{`{ + "react": { + "mirror": false + } +}`} + +
+
+ , + <> +

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

+
+
+ +{`{ + "angular": { + "mirror": false + } +}`} + +
+
+ , + <> +

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

+
+
+ +{`{ + "vue": { + "mirror": false + } +}`} + +
+
+ , + ]} +/> + +
+شما می‌توانید در فایل liara.json، نسخه زبان برنامه‌نویسی یا فریم‌ورکی که +از آن استفاده می‌کنید را مشخص کنید؛ در ادامه، نحوه انجام این کار در پلتفرم‌های مختلف، آمده است: + + +

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

+
+
+ +{`{ + "node": { + "version": "22" + } +}`} + +
+
+ , + <> +

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

+
+
+ +{`{ + "next": { + "nodeVersion": "22" + } +}`} + +
+
+ , + <> +

+ در پلتفرم Laravel برای تعیین نسخه php: +

+
+
+ +{`{ + "laravel": { + "phpVersion": "8.2" + } +}`} + +
+
+ , + <> +

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

+
+
+ +{`{ + "php": { + "version": "8.2" + } +}`} + +
+
+ , + <> +

+ در پلتفرم Python برای تعیین نسخه python: +

+
+
+ +{`{ + "python": { + "version": "3.12" + } +}`} + +
+
+ , + <> +

+ در پلتفرم Django برای تعیین نسخه python: +

+
+
+ +{`{ + "django": { + "pythonVersion": "3.12" + } +}`} + +
+
+ , + <> +

+ در پلتفرم Flask برای تعیین نسخه python: +

+
+
+ +{`{ + "flask": { + "pythonVersion": "3.12" + } +}`} + +
+
+ , + <> +

+ در پلتفرم NET. برای تعیین نسخه dotnet: +

+ +
+
+ +{`{ + "dotnet": { + "version": "8.0" + } +}`} + +
+
+ , + + ]} +/> +در نظر داشته باشید که نمی‌توانید مقادیری به جز نسخه‌های قابل ارائه در لیارا، به عنوان نسخه انتخابی، در فیلد فوق، قرار دهید. +نسخه‌های قابل ارائه مربوط به هر پلتفرم را می‌توانید در صفحه مخصوص به خودشان مشاهده بفرمایید. + +
+به صورت پیش‌فرض، منطقه‌ی زمانی برنامه‌تان بر روی Asia/Tehran تنظیم شده است؛ برای تغییر مقدار پیش‌فرض، می‌توانید از پارامتر timezone در فایل liara.json استفاده کنید. +در ادامه، یک مثال در پلتفرم‌هایی که شامل این قابلیت هستند، برای شما آورده شده است: + + +

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

+
+
+ +{`{ + "node": { + "timezone": "America/Los_Angeles" + } +}`} + +
+
+ , + <> +

+ در پلتفرم Laravel برای تغییر منطقه زمانی به Asia/Istanbul: +

+
+
+ +{`{ + "laravel": { + "timezone": "Asia/Istanbul" + } +}`} + +
+
+ , + <> +

+ در پلتفرم PHP برای تغییر منطقه زمانی به Australia/Hobart: +

+
+
+ +{`{ + "php": { + "timezone": "Australia/Hobart" + } +}`} + +
+
+ , + <> +

+ در پلتفرم Python برای تغییر منطقه زمانی به Canada/Eastern: +

+
+
+ +{`{ + "python": { + "timezone": "Canada/Eastern" + } +}`} + +
+
+ , + <> +

+ در پلتفرم Django برای تغییر منطقه زمانی به Cuba: +

+
+
+ +{`{ + "django": { + "timezone": "Cuba" + } +}`} + +
+
+ , + <> +

+ در پلتفرم Flask برای تغییر منطقه زمانی به Europe/Berlin: +

+
+
+ +{`{ + "flask": { + "timezone": "Europe/Berlin" + } +}`} + +
+
+ , + <> +

+ در پلتفرم NET. برای تغییر منطقه زمانی به Greenwich: +

+
+
+ +{`{ + "dotnet": { + "timezone": "Greenwich" + } +}`} + +
+
+ , + + ]} +/> + +برای مشاهده لیست کامل مناطق زمانی قابل استفاده در فایل liara.json، می‌توانید در Linux، دستور زیر را اجرا کنید: + +
+
+ +{`timedatectl list-timezones`} + +
+
+ +
+ +ممکن است بخواهید پکیج‌هایی که در موقعیت ایران در دسترس نیستند را دانلود کنید یا نیاز داشته باشید که فرایند push کردن ایمیج‌ها به رجیستری خصوصی، با سرعت بیشتری انجام شود. برای این موارد می‌توانید موقعیت build ایمیج برنامه‌تان را با +قرار دادن قطعه کد زیر در فایل liara.json، تغییر دهید. + +
+
+ +{`{ + "build": { + "location": "germany" + } +}`} + +
+
+ +به صورت پیش‌فرض، موقعیت build برنامه بر روی Iran، قرار دارد. + + \ No newline at end of file