---
sidebar_label: Развертывание
title: Развертывание AI Short - Гайд для Vercel, Docker и Cloudflare
description: Разверните AI Short легко - Поддержка Vercel, Docker и Cloudflare. Инструкции по настройке и автообновлению.
---

# Развертывание проекта

## Настройка и персонализация

AI Short — это проект с открытым исходным кодом, который позволяет вам свободно изменять название веб-сайта, описание, подсказки и другой контент в соответствии с вашими потребностями. Ниже приведены общие параметры модификации и инструкции по эксплуатации:

- **Изменить название и описание веб-сайта**
  Чтобы изменить название и описание веб-сайта, отредактируйте файл конфигурации `docusaurus.config.js`.

- **Изменить инструкции по использованию и введение в проект**
  Инструкции по использованию и файлы введения в проект находятся в директории `docs`. Откройте соответствующие файлы в этой директории, чтобы внести необходимые изменения.

- **Изменить подсказки на главной странице**
  Подсказки на главной странице хранятся в файле `src/data/prompt.json`. Если вам нужно изменить подсказки для определенного языка, например китайского, вы можете напрямую отредактировать файл `src/data/prompt_es.json`. При добавлении новой подсказки формат следующий:

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

  **Примечание**: Рекомендуется устанавливать `id` равным 500 или выше. Новые добавленные подсказки не будут иметь отдельной страницы или раздела комментариев. Если вам нужно добавить отдельную страницу для подсказки, вы можете скопировать файл шаблона в директории `src/data/pages/prompt` для его изменения.

- **Пользовательский бэкенд**
  Текущий проект подключен к общей системе бэкенда. Если вы хотите создать свой собственный бэкенд, вы можете ознакомиться с инструкциями интерфейса в папке `src/api`.

  Структура модуля API:

  ```
  src/api/
  ├── index.ts       # Единый вход экспорта
  ├── config.ts      # Конфигурация URL API
  ├── client.ts      # Клиент Axios (включая перехватчики аутентификации)
  ├── auth.ts        # API аутентификации (Вход/Регистрация/OAuth)
  ├── prompts.ts     # CRUD подсказок + Поиск + Голосование
  ├── favorites.ts   # Операции с избранным
  ├── myspace.ts     # Данные Моего Пространства (Основной источник данных)
  ├── comments.ts    # Система комментариев
  └── user.ts        # Информация о пользователе
  ```

  **Механизм кэширования**: Проект использует `lscache` в сочетании с ETag для реализации интеллектуального кэширования. Когда сервер возвращает 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

# Обновите `defaultLocale` в файле `docusaurus.config.js`, затем выполните сборку для желаемого языка.
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 pt`.

### Развертывание на Cloudflare Pages

Нажмите кнопку или ссылку ниже, чтобы сделать Fork этого проекта, затем следуйте инструкциям для развертывания на Cloudflare Pages:

👉 [Сделать Fork этого проекта](https://github.com/rockbenben/ChatGPT-Shortcut/fork)

Шаги развертывания:

1. Войдите в [Cloudflare Pages](https://pages.cloudflare.com/) и выберите **"Create a project"**.
2. Привяжите репозиторий, который вы только что форкнули.
3. Настройте команды сборки:
   - **Build command**: `yarn build --locale zh-Hans` (Выберите подходящую локаль в зависимости от языка развертывания, например: для португальского используйте `yarn build --locale pt`).
   - **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 создает новый проект для вас по умолчанию вместо того, чтобы форкнуть этот проект, что приводит к сбою обнаружения обновлений. Рекомендуется повторно развернуть, следуя этим шагам:

1. Удалите исходный репозиторий;
2. Используйте кнопку fork в правом верхнем углу страницы, чтобы форкнуть этот проект;
3. Повторно выберите проект, который вы только что форкнули, в разделе Import Git Repository на [странице нового проекта Vercel](https://vercel.com/new) и разверните.

### Включить автоматическое обновление

> Если вы столкнулись с ошибкой выполнения Upstream Sync, пожалуйста, выполните Sync Fork вручную один раз!

После форка проекта из-за ограничений GitHub вам необходимо вручную включить Workflows на странице Actions вашего форкнутого проекта и включить действие Upstream Sync. После включения обновления будут выполняться автоматически каждый день:

![Автоматическое обновление](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), чтобы узнать, как синхронизировать форкнутый проект с исходным кодом.

Вы можете поставить звезду (star)/следить (watch) за этим проектом или подписаться на автора, чтобы вовремя получать уведомления о новых обновлениях функций.
