---
pkg: '@nocobase/plugin-app-supervisor'
---

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

## Введение

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

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

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

### Конфигурация переменных окружения

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

```bash
APP_DISCOVERY_ADAPTER=local
APP_PROCESS_ADAPTER=local
```

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

В меню системных настроек нажмите «Регулятор приложений» (App Supervisor), чтобы перейти на страницу управления приложениями.

![](https://static-docs.nocobase.com/202512291056215.png)

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

![](https://static-docs.nocobase.com/202512291057696.png)

#### Описание параметров конфигурации

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

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

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

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

![](https://static-docs.nocobase.com/202512291121065.png)

### Доступ к приложению

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

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

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

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

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

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

![](https://static-docs.nocobase.com/202512291122113.png)

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

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

![](https://static-docs.nocobase.com/202512291122339.png)

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

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

![](https://static-docs.nocobase.com/202512291122178.png)

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

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

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

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

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

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

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

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

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

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

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