Режим общей памяти

Супервизор приложенийEnterprise Edition+

Введение

Когда пользователям нужно разделить бизнес‑домены на уровне приложений, не вводя при этом сложное развёртывание и сопровождение, можно использовать режим мультиприложений с общей памятью.

В этом режиме несколько приложений работают в рамках одного экземпляра NocoBase. Каждое приложение независимо, может подключаться к собственной базе данных и может создаваться, запускаться и останавливаться отдельно. Однако все они разделяют один и тот же процесс и область памяти, поэтому достаточно сопровождать только один экземпляр NocoBase.

Руководство пользователя

Переменные окружения

Перед использованием возможностей мультиприложений убедитесь, что при запуске NocoBase заданы следующие переменные окружения:

APP_DISCOVERY_ADAPTER=local
APP_PROCESS_ADAPTER=local

Создание приложения

В разделе Системные настройки нажмите Супервизор приложений, чтобы перейти на страницу управления приложениями.

Нажмите Добавить, чтобы создать новое приложение.

Параметры конфигурации

ОпцияОписание
Отображаемое имя приложенияИмя приложения, отображаемое в интерфейсе
Идентификатор приложенияИдентификатор приложения, глобально уникальный
Режим запуска- Запуск при первом посещении: приложение запускается при первом обращении по URL
- Запуск вместе с основным приложением: приложение запускается вместе с основным (увеличивает время запуска)
ОкруженияВ режиме общей памяти доступна только локальная среда (local)
База данныхНастройка основного источника данных. Поддерживаются варианты:
- Новая база данных: повторно использовать текущий сервис БД и создать отдельную базу
- Новое подключение: подключиться к другому сервису БД
- Новая схема: при использовании PostgreSQL создать отдельную схему
ОбновлениеАвтоматически ли обновлять данные NocoBase более низкой версии до текущей
JWT-секретАвтоматически генерирует отдельный JWT‑секрет для изоляции сессий от основного приложения и других приложений
Пользовательский доменНастройка выделенного домена доступа для приложения

Запуск приложения

Нажмите Запустить, чтобы запустить приложение.

Если при создании была выбрана опция Запуск при первом посещении, приложение будет автоматически запущено при первом обращении.

Открытие приложения

Нажмите Перейти, чтобы открыть приложение в новой вкладке.

По умолчанию доступ к приложениям осуществляется по пути /apps/:appName/admin/, например:

http://localhost:13000/apps/a_7zkxoarusnx/admin/

Также можно настроить отдельный домен. Домен должен указывать на текущий IP‑адрес, а при использовании Nginx домен необходимо добавить в конфигурацию Nginx.

Остановка приложения

Нажмите Остановить, чтобы остановить приложение.

Статус приложения

Текущий статус каждого приложения отображается в списке.

Удаление приложения

Нажмите Удалить, чтобы удалить приложение.

Часто задаваемые вопросы

1. Управление плагинами

Приложения могут использовать те же плагины (и версии), что и основное приложение, но конфигурация и использование плагинов изолированы по приложениям.

2. Изоляция баз данных

Приложения могут использовать отдельные базы данных. Для обмена данными между приложениями используйте внешние источники данных.

3. Резервное копирование и миграция данных

В данный момент резервные копии, создаваемые в основном приложении, не включают данные других приложений (только базовые метаданные приложений). Данные нужно резервировать и переносить отдельно внутри каждого приложения.

4. Развёртывание и обновления

В режиме общей памяти версии приложений автоматически следуют версии основного приложения, что гарантирует согласованность версий.

5. Сессии приложений

  • Если приложение использует отдельный JWT‑секрет, его сессия изолирована от основного приложения и других приложений. При доступе к нескольким приложениям по подпутям одного и того же домена токены, хранящиеся в локальном хранилище браузера (LocalStorage), требуют повторного входа при переключении приложений. Для лучшей изоляции сессий рекомендуется использовать отдельные домены для приложений.
  • Если приложение не использует отдельный JWT‑секрет, оно разделяет сессию с основным приложением. Пользователи могут переключаться между приложениями в одном браузере без повторного входа. Однако это создаёт риски безопасности: при пересечении идентификаторов пользователей между приложениями возможно несанкционированное перекрёстное обращение.