生产环境部署
在生产环境中部署 NocoBase 时,由于不同系统和环境的构建方式存在差异,安装依赖可能较为繁琐。为获得完整功能体验,我们推荐使用 Docker 进行部署。如果系统环境无法使用 Docker,也可以使用 create-nocobase-app 进行部署。
不建议直接在生产环境中使用源码部署。源码依赖较多、体积庞大,且全量编译对 CPU 和内存要求较高。如果确实需要使用源码部署,建议先构建自定义 Docker 镜像,再进行部署。
如果要部署多个彼此独立的 NocoBase 服务,请为每个服务使用不同的 hostname(比如不同的子域名),不要只通过端口区分服务,如 https://example.com:13000 和 https://example.com:14000。
NocoBase 会使用 cookie 维持登录状态和文件访问权限。浏览器发送 cookie 时不会按端口隔离,同一 hostname 下不同端口的服务可能共享同名 cookie,导致登录状态互相覆盖,或出现文件预览、下载鉴权失败等问题。
同一个 NocoBase 部署环境内的子应用不在这个限制范围内。登录 cookie 会按应用名区分,主应用和不同名称的子应用可以共享同一个 hostname。
不过不能据此忽略独立服务之间的隔离。如果在同一 hostname 的另一个端口运行了另一个 NocoBase 服务,并且其中存在同名主应用或子应用,cookie 仍可能冲突。
推荐分别使用 app1.example.com 和 app2.example.com,再通过 Nginx 或 Caddy 反向代理到不同的 NocoBase 服务。
前后端分离 / 跨源访问 API
推荐让页面和 API 保持同源:通过同一域名下的反向代理,把 ${APP_PUBLIC_PATH}api/ 和 ${APP_PUBLIC_PATH}files/ 转发到 NocoBase 服务,API_BASE_URL 留空。
如果页面必须跨源访问 API(配置了指向其他源的 API_BASE_URL),需要把页面来源加入 CORS_ORIGIN_WHITELIST,否则浏览器会忽略 API 响应中的 Set-Cookie,登录 cookie 无法写入,文件稳定 URL 的预览和下载会鉴权失败。
同时注意 cookie 按 hostname 存储:页面与 API 域名完全不同时,从页面域名访问 /files/ 不会携带 API 域名下的登录 cookie,这类部署应改为同源反向代理。详见环境变量。
部署流程
生产环境的部署可参考已有的安装和升级步骤。
全新安装
升级应用
第三方插件的安装与升级
静态资源代理
在生产环境中,建议将静态资源交由代理服务器管理,例如:
常用运维命令
根据不同的安装方式,可以使用以下命令管理 NocoBase 进程:

