当用户希望对业务进行应用级别的拆分,但又不希望引入复杂的部署和运维架构时,可以使用共享内存的多应用模式。
在这种模式下,一个 NocoBase 实例中可以同时运行多个应用。每个应用是独立的,可以连接独立的数据库,可以单独创建、启动和停止,但它们共享同一个进程和内存空间,用户仍然只需要维护一个 NocoBase 实例。
在使用多应用功能前,请确保在 NocoBase 启动时设置了以下环境变量:
在系统设置菜单中点击「应用监管器」,进入应用管理页面。

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

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

点击 访问 按钮,会在新标签页中打开该子应用。
默认使用 /apps/:appName/admin/ 访问子应用,例如
同时,也可以为子应用配置独立的域名,需要将域名解析到当前 ip,如果使用了 nginx,也需要在 nginx 配置里添加域名。
点击 停止 按钮可启动子应用。

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

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

其他应用可以使用的插件和主应用一致(包括版本),但是可以独立配置和使用插件。
其他应用可以配置独立的数据库,如果想应用之间进行数据共享,可通过外部数据源实现。
目前在主应用上数据备份不支持包含其他应用的数据(只包含应用基本信息),需手动在其他应用内备份和迁移。
在共享内存模式下,其他应用的版本将自动跟随主应用进行升级,自动保证应用版本一致。