logologo
开始
手册
开发
插件
API
首页
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
开始
手册
开发
插件
API
首页
logologo

多应用

概述
共享内存模式
多环境模式
多空间
Previous Page概述
Next Page多环境模式

#共享内存模式

🚀 即将发布

#介绍

当用户希望对业务进行应用级别的拆分,但又不希望引入复杂的部署和运维架构时,可以使用共享内存的多应用模式。

在这种模式下,一个 NocoBase 实例中可以同时运行多个应用。每个应用是独立的,可以连接独立的数据库,可以单独创建、启动和停止,但它们共享同一个进程和内存空间,用户仍然只需要维护一个 NocoBase 实例。

#使用手册

#环境变量配置

在使用多应用功能前,请确保在 NocoBase 启动时设置了以下环境变量:

APP_DISCOVERY_ADAPTER=local
APP_PROCESS_ADAPTER=local

#应用创建

在系统设置菜单中点击「应用监管器」,进入应用管理页面。

点击「新增」按钮,创建一个新应用。

#配置项说明

配置项说明
应用名称应用在界面中显示的名称
应用标识应用标识,全局唯一
启动方式- 首次访问时启动:当用户首次通过 URL 访问该子应用时才启动
- 随主应用一同启动:在主应用启动时同时启动子应用(会增加主应用启动时间)
环境在共享内存模式下,只有本地环境可用,即 local
数据库连接用于配置应用的主数据源,支持以下三种方式:
- 新数据库:复用当前数据库服务,创建独立数据库
- 新的数据连接:连接到其他数据库服务
- Schema 模式:当前主数据源为 PostgreSQL 时,为应用创建独立的 Schema
升级若连接的数据库中存在低版本的 NocoBase 应用数据时,是否允许自动升级到当前应用版本
JWT 密钥为应用自动生成独立的 JWT 密钥,确保应用会话独立于主应用及其他应用
自定义域名为应用配置独立访问域名

#应用启动

点击 启动 按钮可启动子应用。

如果在创建时勾选了 “首次访问时启动”,则首次访问时会自动启动。

#应用访问

点击 访问 按钮,会在新标签页中打开该子应用。

默认使用 /apps/:appName/admin/ 访问子应用,例如

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

同时,也可以为子应用配置独立的域名,需要将域名解析到当前 ip,如果使用了 nginx,也需要在 nginx 配置里添加域名。

#应用停止

点击 停止 按钮可启动子应用。

#应用状态

在列表中可以查看每个应用的当前状态。

#应用删除

点击 删除 按钮可移除应用。

#常见问题

#1. 插件管理

其他应用可以使用的插件和主应用一致(包括版本),但是可以独立配置和使用插件。

#2. 数据库隔离

其他应用可以配置独立的数据库,如果想应用之间进行数据共享,可通过外部数据源实现。

#3. 数据备份和迁移

目前在主应用上数据备份不支持包含其他应用的数据(只包含应用基本信息),需手动在其他应用内备份和迁移。

#4. 部署与更新

在共享内存模式下,其他应用的版本将自动跟随主应用进行升级,自动保证应用版本一致。

#5. 应用会话

  • 若应用使用独立的 JWT 密钥,则应用会话独立于主应用及其他应用。如果通过同一域名的子路径访问不同应用,由于应用 TOKEN 缓存在 LocalStorage 中,在不同应用间切换时需要重新登录。建议为不同应用配置独立的域名,以实现更好的会话隔离。
  • 若应用未使用独立的 JWT 密钥,则会共享主应用的会话,在同一浏览器访问其他应用后返回主应用无需重新登录。但存在安全隐患,如果不同应用的用户 ID 重复,可能导致用户越权访问其他应用的数据。