Офлайн-развёртывание
Целевая аудитория: ИТ-администраторы и технические руководители, отвечающие за развёртывание. Обычным пользователям достаточно открыть внутренний адрес, который предоставит администратор, — читать эту страницу им не требуется.
Когда это нужно: корпоративные интрасети, сети государственных учреждений, банки и финансовые организации с требованиями локализации персональных данных (152-ФЗ), закрытые контуры и объекты КИИ, изолированные от интернета сегменты, кампусные сети и любые другие среды, где доступ во внешний интернет отсутствует или ограничен.
Без бэкенда, без регистрации — все данные хранятся локально в браузере. После развёртывания сотрудникам достаточно открыть браузер, и можно сразу работать.
Как работать в команде
Офлайн-версия — это полностью статический сайт. После развёртывания на внутреннем сервере участники команды открывают внутренний адрес в браузере:
- Администратор разворачивает офлайн-версию на внутреннем сервере (например,
http://192.168.1.100:3000) - Участники команды открывают этот адрес в браузере и могут просматривать, искать и копировать промпты
- Коллекции и собственные промпты каждого пользователя хранятся в его собственном браузере и полностью изолированы друг от друга
- Регистрация не нужна, устанавливать ничего не требуется — открыли и пользуетесь
Библиотека промптов (отобранные промпты) — это статические данные, упакованные на этапе сборки, поэтому все пользователи видят одинаковое содержимое. Коллекции, собственные промпты, порядок сортировки и теги каждого пользователя хранятся в localStorage его браузера и полностью независимы.
Отличия от онлайн-версии
| Возможность | Онлайн-версия | Офлайн-версия |
|---|---|---|
| Просмотр, поиск и фильтрация промптов | Да | Да |
| Копирование промптов | Да | Да |
| Управление коллекциями | Хранение на сервере | Локальное хранилище браузера |
| Собственные промпты | Хранение на сервере | Локальное хранилище браузера |
| Моя коллекция (сортировка перетаскиванием, теги) | Да | Да |
| Поддержка многоязычности (18 языков) | Да | Да |
| Импорт и экспорт данных | Да | Да (форматы совместимы) |
| Страницы детальной информации о промптах | Да | Да (статические данные, без комментариев) |
| Регистрация и вход пользователей | Да | Нет (аккаунты не нужны) |
| Список промптов сообщества и голосование | Да | Нет |
| Комментарии и обратная связь | Да | Нет |
Хранение данных
Данные каждого пользователя сохраняются в localStorage его собственного браузера независимо от какого-либо сервера:
| Данные | Ключ хранилища | Описание |
|---|---|---|
| Список коллекции | local_favorites | Массив идентификаторов сохранённых промптов |
| Собственные промпты | local_user_prompts | Данные промптов, созданных пользователем |
| Порядок отображения | local_myspace_order | Порядок карточек в «Моей коллекции» |
| Пользовательские теги | local_custom_tags | Определения тегов и их назначения |
- Локальное хранилище браузера ограничено примерно 5 МБ — для обычного использования этого достаточно.
- Очистка данных браузера приведёт к потере персональных данных пользователя — рекомендуйте регулярно делать резервные копии через «Мой аккаунт → Управление данными → Экспорт».
- При смене компьютера или браузера данные потребуется импортировать заново.
Развёртывание
Офлайн-версия живёт в ветке offline. После однократного развёртывания администратором участникам команды не нужно выполнять никаких дополнительных действий.
Развёртывание через Docker (рекомендуется)
Самый простой способ — одна команда поднимает сервис на любом внутреннем сервере:
# Использовать готовый образ офлайн-версии
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:
services:
aishort-offline:
container_name: aishort-offline
image: ghcr.io/rockbenben/chatgpt-shortcut:offline
ports:
- "3000:3000"
restart: unless-stopped
Сборка из исходного кода
Если вам нужно настроить содержимое промптов или изменить конфигурацию:
# Клонировать ветку 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
server {
listen 3000;
server_name _;
root /path/to/build;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
Развёртывание на платформах
При развёртывании на Vercel, Cloudflare Pages и подобных платформах достаточно выбрать ветку offline — остальные шаги совпадают с онлайн-версией. Подробнее см. Развёртывание проекта.
Импорт и экспорт данных
Экспорт
Перейдите в «Мой аккаунт → Управление данными → Экспорт», чтобы сохранить ваши коллекции и собственные промпты в JSON-файл.
Импорт
Поддерживаются следующие форматы JSON-файлов:
- Файлы, экспортированные из офлайн-версии: полностью восстанавливают коллекции, промпты, порядок сортировки и теги
- Файлы, экспортированные из онлайн-версии: автоматически преобразуются для совместимости
- Пользовательские промпты → объединяются локально (дедупликация по заголовку)
- Отобранные коллекции (card) → объединяются с локальной коллекцией
- Коллекции сообщества (community) → автоматически конвертируются в локальные собственные промпты
- Порядок MySpace → восстанавливается локально
- Пользовательские теги → добавляются (существующие теги не перезаписываются)
Миграция из онлайн-версии
- Экспортируйте данные на странице «Мой аккаунт» в онлайн-версии (aishort.top)
- Импортируйте этот JSON-файл через «Мой аккаунт → Управление данными → Импорт» в офлайн-версии
- Коллекции сообщества автоматически преобразуются в локальные промпты, отобранные коллекции синхронизируются как обычно
Частые вопросы
Как команде работать после развёртывания?
После того как администратор развернул сервис на внутреннем сервере, передайте сотрудникам адрес доступа (например, http://192.168.1.100:3000). Каждый открывает его в браузере — без установки и регистрации.
Будут ли данные пользователей пересекаться?
Нет. Коллекции и собственные промпты каждого пользователя хранятся в localStorage его собственного браузера и полностью изолированы. На сервере находится только общая библиотека промптов (только для чтения).
Могут ли данные потеряться?
К потере персональных данных пользователя приведут следующие действия:
- Очистка данных или кэша браузера
- Использование приватного режима или режима «инкогнито»
- Переход на другой компьютер или браузер
Рекомендуем регулярно создавать резервные копии важных данных в виде JSON-файла через «Мой аккаунт → Управление данными → Экспорт».
Можно ли делиться собственными промптами внутри команды?
Да. Один сотрудник экспортирует JSON-файл, а остальные импортируют его через «Мой аккаунт → Управление данными → Импорт» — дубликаты обрабатываются автоматически.
Как обновлять библиотеку промптов?
Библиотека промптов — это статические данные, упакованные на этапе сборки. Чтобы обновить её:
- Администратор подтягивает последнюю версию кода из ветки
offline - Пересобирает и переразворачивает сервис (или скачивает свежий Docker-образ)
- Участникам команды достаточно обновить страницу в браузере, чтобы увидеть новое содержимое, — персональные данные при этом не затрагиваются
Совместим ли формат данных офлайн-версии с онлайн-версией?
Да. Экспортируемый JSON-формат одинаков, и файл можно импортировать в обоих направлениях. Идентификаторы промптов различаются (онлайн-версия использует серверные ID, офлайн-версия — ID на основе временной метки), но импорт делает дедупликацию по заголовку, поэтому конфликтов не возникает.