---
sidebar_label: স্থাপना (Deployment)
title: AI Short ডিপ্লয়মেন্ট গাইড - Vercel এবং Docker
description: AI Short সহজেই ডিপ্লয় করুন - Vercel, Docker এবং Cloudflare সমর্থন। সেটআপ, কনফিগারেশন এবং অটো-আপডেট গাইড।
---

# প্রজেক্ট স্থাপনা

## কনফিগারেশন এবং কাস্টমাইজেশন

AI Short একটি ওপেন-সোর্স প্রজেক্ট, যা আপনাকে আপনার প্রয়োজন অনুযায়ী সাইটের শিরোনাম, বিবরণ এবং প্রম্পট সংশোধন করার অনুমতি দেয়। নিচে সাধারণ সংশোধনের বিকল্প এবং নির্দেশাবলী দেওয়া হলো:

- **সাইটের শিরোনাম এবং বিবরণ সংশোধন করুন**
  সাইটের শিরোনাম এবং বিবরণ পরিবর্তন করতে, দয়া করে `docusaurus.config.js` কনফিগারেশন ফাইলটি সম্পাদনা করুন।

- **প্রজেক্ট নির্দেশাবলী এবং পরিচিতি সংশোধন করুন**
  প্রজেক্টের ব্যবহারের নির্দেশাবলী এবং পরিচিতি ফাইলগুলি `docs` ডিরেক্টরিতে অবস্থিত। প্রয়োজনীয় পরিবর্তন করতে এই ডিরেক্টরির প্রাসঙ্গিক ফাইলগুলি খুলুন।

- **হোমপেজ প্রম্পট সংশোধন করুন**
  হোমপেজ প্রম্পটগুলি `src/data/prompt.json` ফাইলে সংরক্ষিত আছে। যদি আপনার নির্দিষ্ট কোনো ভাষার (যেমন বাংলা) জন্য প্রম্পট সংশোধন করার প্রয়োজন হয়, তবে আপনি সরাসরি `src/data/prompt_bn.json` ফাইলটি সম্পাদনা করতে পারেন। নতুন প্রম্পট যোগ করার সময়, ফরম্যাটটি নিম্নরূপ:

  ```json
  {
    "bn": {
      "title": "custom prompt",
      "prompt": "custom prompt",
      "description": "custom description",
      "remark": "custom mark"
    },
    "website": null,
    "tags": ["music"],
    "id": 500,
    "weight": 1
  }
  ```

  **নোট**: `id` ৫০০ এর উপরে সেট করার পরামর্শ দেওয়া হয়। নতুন প্রম্পটের নিজস্ব পৃষ্ঠা এবং মন্তব্য বিভাগ থাকবে না। যদি আপনার প্রম্পটের জন্য একটি উত্সর্গীকৃত পৃষ্ঠা যোগ করার প্রয়োজন হয়, তবে আপনি `src/data/pages/prompt` ডিরেক্টরিতে টেমপ্লেট ফাইলটি অনুলিপি এবং সংশোধন করতে পারেন।

- **কাস্টম ব্যাকএন্ড**
  বর্তমান প্রজেক্ট একটি শেয়ার করা ব্যাকএন্ড সিস্টেমের সাথে সংযুক্ত। আপনি যদি নিজের ব্যাকএন্ড সেট আপ করতে চান, তবে দয়া করে `src/api` ফোল্ডারের ইন্টারফেস নির্দেশাবলী দেখুন।

  API মডিউল গঠন:

  ```
  src/api/
  ├── index.ts       # ইউনিফাইড এক্সপোর্ট এন্ট্রি
  ├── config.ts      # API URL কনফিগারেশন
  ├── client.ts      # Axios ক্লায়েন্ট (অথেন্টিকেশন ইন্টারসেপ্টর সহ)
  ├── auth.ts        # অথেন্টিকেশন API (লগইন/রেজিস্টার/OAuth)
  ├── prompts.ts     # প্রম্পট CRUD + অনুসন্ধান + ভোটিং
  ├── favorites.ts   # পছন্দের অপারেশন
  ├── myspace.ts     # আমার স্পেস ডেটা (মূল ডেটা উৎস)
  ├── comments.ts    # মন্তব্য সিস্টেম
  └── user.ts        # ব্যবহারকারীর তথ্য
  ```

  **ক্যাশিং মেকানিজম**: প্রজেক্ট বুদ্ধিমান ক্যাশিংয়ের জন্য ETag এর সাথে `lscache` ব্যবহার করে। যখন সার্ভার 304 Not Modified ফেরত দেয়, তখন লোকাল ক্যাশ ডেটা সরাসরি পুনরায় ব্যবহার করা হয়, যা ডেটা ট্রান্সমিশন কমায়।

- **মাল্টি-ল্যাঙ্গুয়েজ সাপোর্ট এবং স্থাপনা**
  মাল্টি-ল্যাঙ্গুয়েজ পরিবর্তন সম্পন্ন করার পরে, আপনি ব্যাচ প্রসেসিংয়ের জন্য `CodeUpdateHandler.py` স্ক্রিপ্ট ব্যবহার করতে পারেন। নিম্নলিখিত কমান্ডটি চালান:

  ```bash
  python CodeUpdateHandler.py
  ```

  এই স্ক্রিপ্টটি পূর্বনির্ধারিত নিয়ম অনুযায়ী `prompt.json` ফাইলটি বিভক্ত করবে এবং প্রতিটি ভাষার সংস্করণের জন্য প্রধান পৃষ্ঠা এবং কাস্টম প্রম্পট পৃষ্ঠাগুলির আপডেট সিঙ্ক করবে।

## স্থাপনা নির্দেশাবলী

সিস্টেম প্রয়োজনীয়তা:

- [Node.js 20.0](https://nodejs.org/) বা পরবর্তী সংস্করণ।
- macOS, Windows (WSL সহ), এবং Linux সমর্থিত।

### লোকাল স্থাপনা

নিশ্চিত করুন যে আপনি [Node.js](https://nodejs.org/) ইনস্টল করেছেন।

```shell
# ইনস্টলেশন
yarn

# লোকাল ডেভেলপমেন্ট
yarn start

# বিল্ড: এই কমান্ডটি `build` ডিরেক্টরিতে স্ট্যাটিক কন্টেন্ট তৈরি করে
yarn build

# `docusaurus.config.js` ফাইলে `defaultLocale` আপডেট করুন, তারপর কাঙ্ক্ষিত ভাষার জন্য বিল্ড করুন।
yarn build --locale zh-Hans
yarn build --locale zh-Hant
yarn build --locale en
yarn build --locale ja
yarn build --locale ko
yarn build --locale es
yarn build --locale fr
yarn build --locale de
yarn build --locale it
yarn build --locale ru
yarn build --locale pt
yarn build --locale hi
yarn build --locale ar
yarn build --locale bn

# একাধিক ভাষার জন্য স্থাপন করুন
yarn build --locale zh-Hans && yarn build --locale en
```

### Vercel স্থাপনা

ChatGPT-Shortcut কে Vercel প্ল্যাটফর্মে এক ক্লিকে স্থাপন করতে নিচের বাটনে ক্লিক করুন:

[![Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Frockbenben%2FChatGPT-Shortcut%2Ftree%2Fmain)

**নোট**: অপর্যাপ্ত মেমোরির কারণে Vercel-এর বিনামূল্যের সংস্করণ ব্যর্থ হতে পারে। যদি আপনি এই পরিস্থিতির সম্মুখীন হন, তবে আপনি একক-ভাষা স্থাপনা বেছে নিতে পারেন। নির্দিষ্ট অপারেশনগুলি নিম্নরূপ:

1. সদ্য স্থাপিত Vercel প্রজেক্টে প্রবেশ করুন এবং **Settings** খুলুন।
2. **Build & Deployment** বিভাগে, **Build Command** খুঁজুন, এবং ডানদিকে **Override** এ ক্লিক করুন।
3. স্থাপনা কমান্ড পরিবর্তন করুন। উদাহরণস্বরূপ, যদি আপনার চীনা সংস্করণ স্থাপন করার প্রয়োজন হয়, তবে `yarn build --locale zh-Hans` ব্যবহার করুন; যদি আপনার বাংলা সংস্করণ স্থাপন করার প্রয়োজন হয়, তবে `yarn build --locale bn` ব্যবহার করুন।

### Cloudflare Pages স্থাপনা

নিচের বাটন বা লিঙ্কে ক্লিক করুন, এই প্রজেক্টটি Fork করুন, এবং Cloudflare Pages-এ স্থাপন করার জন্য নির্দেশাবলী অনুসরণ করুন:

👉 [এই প্রজেক্টটি Fork করুন](https://github.com/rockbenben/ChatGPT-Shortcut/fork)

স্থাপনার ধাপ:

1. [Cloudflare Pages](https://pages.cloudflare.com/)-এ লগ ইন করুন, এবং **"Create a project"** নির্বাচন করুন।
2. যে রিপোজিটরিটি আপনি এইমাত্র Fork করেছেন সেটি বাইন্ড করুন।
3. বিল্ড কমান্ড কনফিগার করুন:
   - **Build command**: `yarn build --locale zh-Hans` (স্থাপিত ভাষার জন্য উপযুক্ত locale চয়ন করুন, উদাহরণস্বরূপ: বাংলার জন্য `yarn build --locale bn` ব্যবহার করুন)।
   - **Output directory**: `build`।
4. **Deploy** এ ক্লিক করুন, এবং Cloudflare Pages দ্বারা বিল্ড এবং স্থাপনা সম্পন্ন হওয়ার জন্য অপেক্ষা করুন।

Cloudflare Pages প্রতিবার নতুন কোড পুশ করার সময় স্বয়ংক্রিয়ভাবে বিল্ড এবং স্থাপনা ট্রিগার করবে।

### Docker স্থাপনা

যদি আপনি Docker এর সাথে পরিচিত হন, তবে আপনি নিম্নলিখিত কমান্ডগুলি ব্যবহার করে দ্রুত স্থাপন করতে পারেন:

```bash
# ghcr.io
docker run -d -p 3000:3000 --name chatgpt-shortcut ghcr.io/rockbenben/chatgpt-shortcut:latest

# docker hub
docker run -d -p 3000:3000 --name chatgpt-shortcut rockben/chatgpt-shortcut:latest
```

অথবা, আপনি `docker-compose` ব্যবহার করতে পারেন:

```yml
services:
  chatgpt-shortcut:
    container_name: chatgpt-shortcut
    image: ghcr.io/rockbenben/chatgpt-shortcut:latest
    ports:
      - "3000:3000"
    restart: unless-stopped
```

## স্বয়ংক্রিয় আপডেট সক্ষম করুন

যদি আপনি Vercel-এ এক ক্লিকের মাধ্যমে আপনার প্রজেক্ট স্থাপন করে থাকেন, তবে আপনি একটি সমস্যার সম্মুখীন হতে পারেন যেখানে এটি সর্বদা নির্দেশ করে যে আপডেট উপলব্ধ। এর কারণ হলো Vercel ডিফল্টরূপে আপনার জন্য একটি নতুন প্রজেক্ট তৈরি করে, এই প্রজেক্টটি fork করার পরিবর্তে, যা আপডেটের সঠিক সনাক্তকরণ প্রতিরোধ করে। এই ধাপগুলি অনুসরণ করে পুনরায় স্থাপন করার পরামর্শ দেওয়া হয়:

1. মূল রিপোজিটরিটি মুছে ফেলুন;
2. এই প্রজেক্টটি fork করার জন্য পৃষ্ঠার উপরের ডান কোণায় fork বাটন ব্যবহার করুন;
3. [Vercel নতুন প্রজেক্ট পৃষ্ঠা](https://vercel.com/new)-এ Import Git Repository বিভাগে আপনি যে প্রজেক্টটি এইমাত্র fork করেছেন সেটি পুনরায় নির্বাচন করুন এবং স্থাপন করুন।

### স্বয়ংক্রিয় আপডেট চালু করুন

> যদি আপনি Upstream Sync ত্রুটির সম্মুখীন হন, তবে দয়া করে ম্যানুয়ালি একবার Sync Fork সম্পাদন করুন!

প্রজেক্টটি fork করার পরে, GitHub বিধিনিষেধের কারণে, আপনাকে আপনার fork করা প্রজেক্টের Actions পৃষ্ঠায় ম্যানুয়ালি Workflows সক্ষম করতে হবে, এবং Upstream Sync Action সক্ষম করতে হবে। একবার সক্ষম হলে, আপডেটগুলি প্রতিদিন স্বয়ংক্রিয়ভাবে সম্পাদিত হবে:

![স্বয়ংক্রিয় আপডেট](https://img.newzone.top/2023-05-19-11-57-59.png?imageMogr2/format/webp)

![স্বয়ংক্রিয় আপডেট সক্ষম করুন](https://img.newzone.top/2023-05-19-11-59-26.png?imageMogr2/format/webp)

### ম্যানুয়াল কোড আপডেট

যদি আপনি ম্যানুয়ালি অবিলম্বে আপডেট করতে চান, তবে আপনি [GitHub ডকুমেন্টেশন](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) দেখতে পারেন যে কীভাবে fork করা প্রজেক্টকে আপস্ট্রিম কোডের সাথে সিঙ্ক করবেন।

আপনি এই প্রজেক্টটিকে স্টার/ওয়াচ করতে পারেন, অথবা লেখকের অনুসরণ করতে পারেন যাতে নতুন ফিচারের আপডেটের বিজ্ঞপ্তি সময়মতো পাওয়া যায়।
