From 4b525f53645bc16d4809c65517e5acd9d37d6e97 Mon Sep 17 00:00:00 2001 From: Ali Najmabadi Date: Mon, 16 Dec 2024 16:47:47 +0330 Subject: [PATCH] docs: add fastapi to python platform --- liara_nginx.conf | 4 ++ src/components/Sidebar/data.js | 21 ++++-- src/pages/paas/docker/getting-started.mdx | 1 - src/pages/paas/python/getting-started.mdx | 2 +- .../related-apps/fastapi.mdx | 68 +++++-------------- 5 files changed, 39 insertions(+), 57 deletions(-) rename src/pages/paas/{docker => python}/related-apps/fastapi.mdx (79%) diff --git a/liara_nginx.conf b/liara_nginx.conf index ed9fd3ef..f133d485 100644 --- a/liara_nginx.conf +++ b/liara_nginx.conf @@ -1949,6 +1949,10 @@ location ~ ^/tv/courses/golang/?$ { return 301 /tv/courses/go/; } +location ~ ^/paas/docker/related-apps/fastapi/?$ { + return 301 /paas/python/related-apps/fastapi/; +} + # Domain diff --git a/src/components/Sidebar/data.js b/src/components/Sidebar/data.js index 70f0ce6b..efb46e7a 100644 --- a/src/components/Sidebar/data.js +++ b/src/components/Sidebar/data.js @@ -2027,6 +2027,22 @@ export default { // // ) // }, + { + hr: true + }, + { + badge: ( +
+ + برنامه‌های مرتبط +
+ ) + }, + { + title: "FastAPI", + icon: , + link: "/paas/python/related-apps/fastapi" + }, ], django: [ { @@ -3190,11 +3206,6 @@ export default { icon: , link: "/paas/docker/related-apps/nginx" }, - { - title: "FastAPI", - icon: , - link: "/paas/docker/related-apps/fastapi" - }, { title: "Streamlit", icon: , diff --git a/src/pages/paas/docker/getting-started.mdx b/src/pages/paas/docker/getting-started.mdx index 89aa9c96..cfcf8b9f 100644 --- a/src/pages/paas/docker/getting-started.mdx +++ b/src/pages/paas/docker/getting-started.mdx @@ -71,7 +71,6 @@ import Head from "next/head"; {[ { alt: 'flutter', platform: 'Flutter', link: "/paas/docker/related-apps/flutter" }, { alt: 'nginx', platform: 'Nginx', link: "/paas/docker/related-apps/nginx" }, - { alt: 'fastapi', platform: 'FastAPI', link: "/paas/docker/related-apps/fastapi" }, // { alt: 'python', platform: 'Python Scripts', link: "/paas/docker/related-apps/python" }, { alt: 'streamlit', platform: 'Streamlit', link: "/paas/docker/related-apps/streamlit" }, { alt: 'arangodb', platform: 'ArangoDB', link: "/paas/docker/related-apps/arangodb" }, diff --git a/src/pages/paas/python/getting-started.mdx b/src/pages/paas/python/getting-started.mdx index 94ec897d..d7624c94 100644 --- a/src/pages/paas/python/getting-started.mdx +++ b/src/pages/paas/python/getting-started.mdx @@ -71,7 +71,7 @@ import Head from "next/head";
{[ - { alt: 'https://one-click-apps.storage.iran.liara.space/jupyter/7388996.png', platform: 'Jupyter Notebook', link: "/one-click-apps/jupyter-notebook/quick-start/" }, + { alt: 'fastapi', platform: 'FastAPI', link: "/paas/python/related-apps/fastapi/" }, ].map(item => diff --git a/src/pages/paas/docker/related-apps/fastapi.mdx b/src/pages/paas/python/related-apps/fastapi.mdx similarity index 79% rename from src/pages/paas/docker/related-apps/fastapi.mdx rename to src/pages/paas/python/related-apps/fastapi.mdx index f42d4f2e..05afa7c4 100644 --- a/src/pages/paas/docker/related-apps/fastapi.mdx +++ b/src/pages/paas/python/related-apps/fastapi.mdx @@ -16,7 +16,7 @@ import Head from "next/head"; مستندات استقرار برنامه‌های FastAPI - لیارا - + # استقرار برنامه‌های FastAPI در لیارا @@ -33,8 +33,7 @@ import Head from "next/head";
-شما می‌توانید برنامه‌های FastAPI خود را با ایجاد برنامه‌های Docker در لیارا، مستقر کنید. -در ابتدا در نظر داشته باشید که دایرکتوری پروژه شما، ساختاری مشابه با ساختار زیر داشته باشد: +{/* در ابتدا در نظر داشته باشید که دایرکتوری پروژه شما، ساختاری مشابه با ساختار زیر داشته باشد:
@@ -55,8 +54,10 @@ import Head from "next/head"; └── .dockerignore # نادیده گرفتن فایل‌های اضافی`}
-
+
*/} +شما می‌توانید برنامه‌های FastAPI خود را با ایجاد برنامه‌های Python در لیارا، مستقر کنید. +حتماً در نظر داشته باشید که در مسیر اصلی پروژه‌تان، فایل requirements.txt شامل پکیج‌های موردنیاز برنامه، وجود داشته باشد. برای ایجاد فایل requirements.txt کافیست تا در محیط مجازی پایتونی خود، دستور زیر را اجرا کنید تا این فایل، برای‌تان ایجاد شود:
@@ -66,7 +67,7 @@ import Head from "next/head";
- +{/* در ادامه، بایستی درون Dockerfile، قطعه کد زیر را، قرار دهید:
@@ -95,17 +96,25 @@ CMD ["uvicorn", "your-app.main:app", "--host", "0.0.0.0", "--port", "80"]`}
-در قطعه کد بالا در دستور CMD، به جای your-app نام دایرکتوری خود را وارد کنید. در انتها با اجرای دستور زیر، برنامه خود را در لیارا، مستقر کنید: +در قطعه کد بالا در دستور CMD، به جای your-app نام دایرکتوری خود را وارد کنید. در انتها با اجرای دستور زیر، برنامه خود را در لیارا، مستقر کنید: */} +در نهایت کافیست تا با اجرای دستور زیر، برنامه FastAPI خود را در لیارا، مستقر کنید:
- {`liara deploy --port 80 --platform docker`} + {`liara deploy --port 80 --platform python`}
-در نظر داشته باشید که اگر در برنامه از ماژول خاصی استفاده می‌کنید یا نیازمند یک پکیج سیستمی هستید که به صورت پیش‌فرض، نصب نیست؛ بایستی دستورات مربوط به نصب آن را در Dockerfile مشخص کنید. +در نظر داشته باشید که اگر در برنامه از ماژول خاصی استفاده می‌کنید یا نیازمند یک پکیج سیستمی هستید که به صورت پیش‌فرض، نصب نیست؛ بایستی دستورات مربوط به نصب آن را با هوک‌ها مشخص کنید. + +
+ +

+یک پروژه FastAPI نمونه آماده استقرار در اینجا قرار دارد که می‌توانید از آن، استفاده کنید. +

+
برای اتصال برنامه خود به دیتابیس MSSQL در لیارا، بایستی در ابتدا، طبق مستندات تنظیم متغیرهای محیطی، متغیرهای محیطی مربوط به دیتابیس خود را، به برنامه، اضافه کنید؛ به عنوان مثال: @@ -142,7 +151,7 @@ DB_PORT=os.getenv("DB_PORT") DB_PASS=os.getenv("DB_PASS") SQLALCHEMY_DATABASE_URL = ( - f"mssql+pyodbc://{DB_USER}:{DB_PASS}@{DB_HOST}:{DB_PORT}/{DB_NAME}?driver=ODBC+Driver+17+for+SQL+Server" + f"mssql+pyodbc://{DB_USER}:{DB_PASS}@{DB_HOST}:{DB_PORT}/{DB_NAME}?driver=ODBC+Driver+18+for+SQL+Server" ) engine = create_engine( @@ -156,45 +165,4 @@ Base = declarative_base()`}
-در نهایت، می‌توانید Dockerfile خود را مانند قطعه کد زیر بنویسید تا تمامی پکیج‌های مربوط به دیتابیس MSSQL، برای‌تان، نصب بشود و در برنامه، با مشکل خاصی مواجه نشوید: - - -
-
- - {`# Dockerfile - -# Using Python base image version 3.11 -FROM python:3.11 - -# Update system packages and install necessary dependencies -RUN apt-get update && apt-get install -y gcc unixodbc-dev - -# Install ODBC driver for SQL Server -RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list && apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17 - -# Upgrade pip -RUN pip install --upgrade pip - -# Create working directory /app -WORKDIR /app - -# Copy all project files to the working directory -COPY . /app - -# Install project dependencies from requirements.txt -RUN pip install -r requirements.txt - -# Set the command to run the project using uvicorn -CMD ["uvicorn", "sql_app.main:app", "--host", "0.0.0.0", "--port", "80"]`} - -
-
- - -

-یک پروژه FastAPI نمونه آماده استقرار در اینجا قرار دارد که می‌توانید از آن، استفاده کنید. -

-
- \ No newline at end of file