---
sidebar_label: Офлайн-версия (корпоративная сеть)
title: Офлайн-развёртывание AI Short | Корпоративная интрасеть без внешнего сервера
description: Офлайн-версия AI Short разработана для компаний и команд без доступа во внешний интернет. Без бэкенд-сервера, без регистрации аккаунта, данные хранятся локально в браузере — разверните один раз, и команда готова к работе.
---

# Офлайн-развёртывание

> **Целевая аудитория**: ИТ-администраторы и технические руководители, отвечающие за развёртывание. Обычным пользователям достаточно открыть внутренний адрес, который предоставит администратор, — читать эту страницу им не требуется.

**Когда это нужно**: корпоративные интрасети, сети государственных учреждений, банки и финансовые организации с требованиями локализации персональных данных (152-ФЗ), закрытые контуры и объекты КИИ, изолированные от интернета сегменты, кампусные сети и любые другие среды, где **доступ во внешний интернет отсутствует или ограничен**.

Без бэкенда, без регистрации — все данные хранятся локально в браузере. После развёртывания сотрудникам достаточно открыть браузер, и можно сразу работать.

## Как работать в команде

Офлайн-версия — это полностью статический сайт. После развёртывания на внутреннем сервере участники команды открывают внутренний адрес в браузере:

1. **Администратор** разворачивает офлайн-версию на внутреннем сервере (например, `http://192.168.1.100:3000`)
2. **Участники команды** открывают этот адрес в браузере и могут просматривать, искать и копировать промпты
3. **Коллекции и собственные промпты** каждого пользователя хранятся в его собственном браузере и полностью изолированы друг от друга
4. Регистрация не нужна, устанавливать ничего не требуется — открыли и пользуетесь

```
Внутренний сервер (развёрнута офлайн-версия)
   ├── Данные библиотеки промптов (общие для всех, статический JSON)
   │
   ├── Браузер пользователя A → localStorage (коллекции и промпты A)
   ├── Браузер пользователя B → localStorage (коллекции и промпты B)
   └── Браузер пользователя C → localStorage (коллекции и промпты C)
```

:::tip Подсказка
Библиотека промптов (отобранные промпты) — это статические данные, упакованные на этапе сборки, поэтому все пользователи видят одинаковое содержимое. Коллекции, собственные промпты, порядок сортировки и теги каждого пользователя хранятся в localStorage его браузера и полностью независимы.
:::

## Отличия от онлайн-версии

| Возможность | Онлайн-версия | Офлайн-версия |
| ----------- | ------------- | ------------- |
| Просмотр, поиск и фильтрация промптов | Да | Да |
| Копирование промптов | Да | Да |
| Управление коллекциями | Хранение на сервере | Локальное хранилище браузера |
| Собственные промпты | Хранение на сервере | Локальное хранилище браузера |
| Моя коллекция (сортировка перетаскиванием, теги) | Да | Да |
| Поддержка многоязычности (18 языков) | Да | Да |
| Импорт и экспорт данных | Да | Да (форматы совместимы) |
| Страницы детальной информации о промптах | Да | Да (статические данные, без комментариев) |
| Регистрация и вход пользователей | Да | Нет (аккаунты не нужны) |
| Список промптов сообщества и голосование | Да | Нет |
| Комментарии и обратная связь | Да | Нет |

## Хранение данных

Данные каждого пользователя сохраняются в localStorage **его собственного браузера** независимо от какого-либо сервера:

| Данные | Ключ хранилища | Описание |
| ------ | -------------- | -------- |
| Список коллекции | `local_favorites` | Массив идентификаторов сохранённых промптов |
| Собственные промпты | `local_user_prompts` | Данные промптов, созданных пользователем |
| Порядок отображения | `local_myspace_order` | Порядок карточек в «Моей коллекции» |
| Пользовательские теги | `local_custom_tags` | Определения тегов и их назначения |

:::caution Внимание
- Локальное хранилище браузера ограничено примерно 5 МБ — для обычного использования этого достаточно.
- Очистка данных браузера приведёт к потере персональных данных пользователя — рекомендуйте регулярно делать резервные копии через «Настройки → Экспорт данных».
- При смене компьютера или браузера данные потребуется импортировать заново.
:::

## Развёртывание

Офлайн-версия живёт в ветке `offline`. После однократного развёртывания администратором участникам команды не нужно выполнять никаких дополнительных действий.

### Развёртывание через Docker (рекомендуется)

Самый простой способ — одна команда поднимает сервис на любом внутреннем сервере:

```bash
# Использовать готовый образ офлайн-версии
docker run -d -p 3000:3000 --name aishort-offline ghcr.io/rockbenben/chatgpt-shortcut:offline

# Или загрузить с Docker Hub
docker run -d -p 3000:3000 --name aishort-offline rockben/chatgpt-shortcut:offline
```

После развёртывания участники команды обращаются по адресу `http://<IP-сервера>:3000`.

С использованием `docker-compose`:

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

### Сборка из исходного кода

Если вам нужно настроить содержимое промптов или изменить конфигурацию:

```bash
# Клонировать ветку offline
git clone -b offline https://github.com/rockbenben/ChatGPT-Shortcut.git
cd ChatGPT-Shortcut

# Установить зависимости
yarn

# Локальная разработка
yarn start

# Собрать одноязычную версию (русский)
yarn build --locale ru

# Собрать все языки
yarn build
```

Результат сборки находится в каталоге `build/` и может быть размещён на любом веб-сервере для статических файлов (Nginx, Apache, Caddy и т. п.).

### Пример конфигурации Nginx

```nginx
server {
    listen 3000;
    server_name _;
    root /path/to/build;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}
```

### Развёртывание на платформах

При развёртывании на Vercel, Cloudflare Pages и подобных платформах достаточно выбрать ветку `offline` — остальные шаги совпадают с онлайн-версией. Подробнее см. [Развёртывание проекта](../deploy).

## Импорт и экспорт данных

### Экспорт

Перейдите в «Настройки → Экспорт данных», чтобы сохранить ваши коллекции и собственные промпты в JSON-файл.

### Импорт

Поддерживаются следующие форматы JSON-файлов:

- **Файлы, экспортированные из офлайн-версии**: полностью восстанавливают коллекции, промпты, порядок сортировки и теги
- **Файлы, экспортированные из онлайн-версии**: автоматически преобразуются для совместимости
  - Пользовательские промпты → объединяются локально (дедупликация по заголовку)
  - Отобранные коллекции (card) → объединяются с локальной коллекцией
  - Коллекции сообщества (community) → автоматически конвертируются в локальные собственные промпты
  - Порядок MySpace → восстанавливается локально
  - Пользовательские теги → добавляются (существующие теги не перезаписываются)

### Миграция из онлайн-версии

1. Экспортируйте данные на странице «Мой аккаунт» в онлайн-версии (aishort.top)
2. Импортируйте этот JSON-файл на странице «Настройки» в офлайн-версии
3. Коллекции сообщества автоматически преобразуются в локальные промпты, отобранные коллекции синхронизируются как обычно

## Частые вопросы

### Как команде работать после развёртывания?

После того как администратор развернул сервис на внутреннем сервере, передайте сотрудникам адрес доступа (например, `http://192.168.1.100:3000`). Каждый открывает его в браузере — без установки и регистрации.

### Будут ли данные пользователей пересекаться?

Нет. Коллекции и собственные промпты каждого пользователя хранятся в localStorage его собственного браузера и полностью изолированы. На сервере находится только общая библиотека промптов (только для чтения).

### Могут ли данные потеряться?

К потере персональных данных пользователя приведут следующие действия:

- Очистка данных или кэша браузера
- Использование приватного режима или режима «инкогнито»
- Переход на другой компьютер или браузер

Рекомендуем регулярно создавать резервные копии важных данных в виде JSON-файла через «Настройки → Экспорт данных».

### Можно ли делиться собственными промптами внутри команды?

Да. Один сотрудник экспортирует JSON-файл, а остальные импортируют его через «Настройки → Импорт данных» — дубликаты обрабатываются автоматически.

### Как обновлять библиотеку промптов?

Библиотека промптов — это статические данные, упакованные на этапе сборки. Чтобы обновить её:

1. Администратор подтягивает последнюю версию кода из ветки `offline`
2. Пересобирает и переразворачивает сервис (или скачивает свежий Docker-образ)
3. Участникам команды достаточно обновить страницу в браузере, чтобы увидеть новое содержимое, — персональные данные при этом не затрагиваются

### Совместим ли формат данных офлайн-версии с онлайн-версией?

Да. Экспортируемый JSON-формат одинаков, и файл можно импортировать в обоих направлениях. Идентификаторы промптов различаются (онлайн-версия использует серверные ID, офлайн-версия — ID на основе временной метки), но импорт делает дедупликацию по заголовку, поэтому конфликтов не возникает.
