diff --git a/docs/docs/cn/get-started/_meta.json b/docs/docs/cn/get-started/_meta.json index 8ef99840799..b7334b92603 100644 --- a/docs/docs/cn/get-started/_meta.json +++ b/docs/docs/cn/get-started/_meta.json @@ -69,6 +69,22 @@ "label": "生产环境部署", "link": "/get-started/deployment/production" }, + { + "type": "custom-link", + "label": "内网部署", + "items": [ + { + "type": "custom-link", + "label": "Docker", + "link": "/get-started/deployment/intranet/docker" + }, + { + "type": "custom-link", + "label": "create-nocobase-app", + "link": "/get-started/deployment/intranet/create-nocobase-app" + } + ] + }, { "type": "custom-link", "label": "静态资源代理", diff --git a/docs/docs/cn/get-started/deployment/intranet/create-nocobase-app.mdx b/docs/docs/cn/get-started/deployment/intranet/create-nocobase-app.mdx new file mode 100644 index 00000000000..c943a6d3da8 --- /dev/null +++ b/docs/docs/cn/get-started/deployment/intranet/create-nocobase-app.mdx @@ -0,0 +1,380 @@ +# 内网环境安装和升级 NocoBase(create-nocobase-app 方式) + +内网环境无法直接访问 npm 官方源,需要在外网环境中创建项目并安装依赖,再将完整项目打包迁移到内网服务器部署。 + +**整体流程**:外网创建项目 → 安装依赖并打包 → 拷贝到内网 → 解压配置并启动 + +:::tip 前提条件 + +- 外网、内网机器均需安装 **Node.js 20+**、**Yarn 1.22.x** +- 数据库:MySQL 8.0.17+、MariaDB 10.9+、PostgreSQL 10+ 任选其一(可部署在内网或外网) +- 外网和内网机器的 **Node.js 版本、操作系统架构** 需一致,否则 `node_modules` 中部分原生模块可能不兼容 +- 外网和内网的项目 **安装路径必须相同**(如均为 `/app/my-nocobase-app`),否则迁移后无法运行 + +::: + +## 外网环境 + +在有外网的环境中创建项目并安装依赖。 + +### 首次安装 + +#### 1. 在外网环境创建项目 + +在可访问 npm 的机器上执行。**重要**:请先切换到目标父目录(如 `cd /app`),确保项目创建后路径为 `/app/my-nocobase-app`,以便与内网部署路径一致。 + + + + + + + + +```bash +yarn create nocobase-app my-nocobase-app -d postgres \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=5432 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +yarn create nocobase-app my-nocobase-app -d mysql \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +yarn create nocobase-app my-nocobase-app -d mariadb \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + + + + + + + +```bash +npx create-nocobase-app@beta my-nocobase-app -d postgres \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=5432 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +npx create-nocobase-app@beta my-nocobase-app -d mysql \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +npx create-nocobase-app@beta my-nocobase-app -d mariadb \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + + + + + + + +```bash +npx create-nocobase-app@alpha my-nocobase-app -d postgres \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=5432 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +npx create-nocobase-app@alpha my-nocobase-app -d mysql \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +npx create-nocobase-app@alpha my-nocobase-app -d mariadb \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + + + + +:::warning 参数说明 + +- `--skip-dev-dependencies` 跳过开发依赖的安装(生产环境部署时,为了减少体积,可以只安装必要的依赖) +- `APP_ENV=production` 设置应用环境为生产环境 +- `TZ` 用于设置应用的时区,默认为操作系统时区 +- `DB_*` 为数据库相关配置,请根据实际情况修改为你的数据库连接信息 + +::: + +#### 2. 切换目录 + +```bash +cd my-nocobase-app +``` + +#### 3. 安装依赖 + +```bash +yarn install +``` + +:::tip 商业插件(可选) + +以下步骤 4-7 仅用于下载商业插件。若仅使用开源版,可跳过步骤 4-7,直接执行步骤 8 打包。 + +::: + +#### 4. 安装 NocoBase + +```bash +yarn nocobase install +``` + +#### 5. 运行 NocoBase + +```bash +yarn start +``` + +#### 6. 填写 License Key + +访问: + +``` +http://<外网服务器IP>:13000/admin/settings/license-settings +``` + +#### 7. 下载商业插件 + +```bash +yarn nocobase pkg download-pro +``` + +#### 8. 打包项目 + +```bash +# 在 my-nocobase-app 目录内执行,压缩包将生成在上级目录 +# 排除 .env(含敏感信息),仅打包 storage/plugins(商业插件等) +tar -czf ../nocobase-app.tar.gz \ + --exclude='./.env' \ + --exclude='./storage' \ + . \ + ./storage/plugins +``` + +### 应用升级 + +#### 1. 升级应用代码和插件 + +```bash +yarn nocobase upgrade +``` + +#### 2. 重新打包项目 + +```bash +tar -czf ../nocobase-app.tar.gz \ + --exclude='./.env' \ + --exclude='./storage' \ + . \ + ./storage/plugins +``` + +## 内网环境 + +再将完整项目打包迁移到内网服务器。 + +### 首次安装 + +#### 1. 上传应用代码和插件 + +将 `nocobase-app.tar.gz` 通过 U 盘、内网文件共享等方式拷贝到内网服务器后,执行解压(若 tar.gz 不在当前目录,请使用完整路径): + +```bash +mkdir -p /app/my-nocobase-app +tar -xzf nocobase-app.tar.gz -C /app/my-nocobase-app +``` + +#### 2. 切换目录 + +```bash +cd /app/my-nocobase-app +``` + +#### 3. 配置 .env 文件 + +在项目根目录创建 `.env` 文件,参考外网环境的配置,**重点修改**: + +- `DB_HOST`:改为内网数据库地址(若数据库在内网其他服务器) +- `DB_PORT`、`DB_DATABASE`、`DB_USER`、`DB_PASSWORD`:与内网数据库实际配置一致 +- `APP_KEY`:建议与外网保持一致,否则已有 token 将失效 + +可在外网项目根目录执行 `cat .env` 查看完整配置,复制后按内网环境修改。 + +#### 4. 安装 NocoBase + +```bash +yarn nocobase install +``` + +#### 5. 启动 NocoBase + +```bash +yarn start -d +``` + +#### 6. 登录 NocoBase + +访问 `http://<内网服务器IP>:13000` 使用初始化账号登录。 + +#### 7. 填写 License Key + +商业版用户需填写 License Key。访问: + +``` +http://<内网服务器IP>:13000/admin/settings/license-settings +``` + +### 升级应用 + +#### 1. 停止应用 + +```bash +cd /app/my-nocobase-app +yarn nocobase pm2-stop +``` + +#### 2. 覆盖应用代码和插件 + +将 `nocobase-app.tar.gz` 通过 U 盘、内网文件共享等方式拷贝到内网服务器后,执行解压: + +```bash +tar -xzf nocobase-app.tar.gz -C /app/my-nocobase-app +``` + +#### 3. 升级应用 + +```bash +cd /app/my-nocobase-app +yarn nocobase upgrade --skip-code-update +``` + +#### 4. 重启应用 + +```bash +yarn start -d +``` + +#### 5. 填写 License Key(如授权有变更) + +若 License 授权有变更,需重新填写。访问: + +``` +http://<内网服务器IP>:13000/admin/settings/license-settings +``` + +## 常见问题 + +**Q:内网启动报错,提示找不到模块或二进制文件?** + +A:检查外网、内网的 Node.js 版本和操作系统架构是否一致(如均为 Linux x64、Node 20.x)。不一致时需在相同环境下重新执行 `yarn install` 并打包。 + +**Q:解压后运行报错,提示路径相关错误?** + +A:确保内网解压路径与外网创建路径一致(如均为 `/app/my-nocobase-app`)。可在 `tar -xzf` 时指定 `-C` 到相同路径。 + +**Q:数据库连接失败?** + +A:确认 `.env` 中 `DB_HOST` 已改为内网可访问的数据库地址,端口、防火墙规则正确。 diff --git a/docs/docs/cn/get-started/deployment/intranet/docker.mdx b/docs/docs/cn/get-started/deployment/intranet/docker.mdx new file mode 100644 index 00000000000..adb27dedd6c --- /dev/null +++ b/docs/docs/cn/get-started/deployment/intranet/docker.mdx @@ -0,0 +1,6 @@ +# 内网环境安装和升级 NocoBase(Docker 方式) + + +:::tip +内容待补充 +::: \ No newline at end of file diff --git a/docs/docs/en/get-started/_meta.json b/docs/docs/en/get-started/_meta.json index 15fb3fd7e40..40f39c732b7 100644 --- a/docs/docs/en/get-started/_meta.json +++ b/docs/docs/en/get-started/_meta.json @@ -69,6 +69,22 @@ "label": "Production Environment Deployment", "link": "/get-started/deployment/production" }, + { + "type": "custom-link", + "label": "Intranet Deployment", + "items": [ + { + "type": "custom-link", + "label": "Docker", + "link": "/get-started/deployment/intranet/docker" + }, + { + "type": "custom-link", + "label": "create-nocobase-app", + "link": "/get-started/deployment/intranet/create-nocobase-app" + } + ] + }, { "type": "custom-link", "label": "Static Resource Proxy", diff --git a/docs/docs/en/get-started/deployment/intranet/create-nocobase-app.mdx b/docs/docs/en/get-started/deployment/intranet/create-nocobase-app.mdx new file mode 100644 index 00000000000..aa1407892b3 --- /dev/null +++ b/docs/docs/en/get-started/deployment/intranet/create-nocobase-app.mdx @@ -0,0 +1,380 @@ +# Install and Upgrade NocoBase in Intranet (create-nocobase-app) + +Intranet environments cannot directly access the npm registry. You need to create the project and install dependencies in an internet-connected environment, then package the complete project and migrate it to the intranet server for deployment. + +**Overall flow**: Create project on internet → Install dependencies and package → Copy to intranet → Extract, configure, and start + +:::tip Prerequisites + +- Both internet and intranet machines need **Node.js 20+** and **Yarn 1.22.x** installed +- Database: MySQL 8.0.17+, MariaDB 10.9+, or PostgreSQL 10+ (can be deployed on intranet or internet) +- **Node.js version and OS architecture** must match between internet and intranet machines; otherwise some native modules in `node_modules` may be incompatible +- Project **installation path must be identical** on both sides (e.g., `/app/my-nocobase-app`), otherwise it will not run after migration + +::: + +## Internet Environment + +Create the project and install dependencies in an internet-connected environment. + +### First-time Installation + +#### 1. Create Project on Internet + +Run the following on a machine with npm access. **Important**: First switch to the target parent directory (e.g., `cd /app`) so the project path is `/app/my-nocobase-app`, matching the intranet deployment path. + + + + + + + + +```bash +yarn create nocobase-app my-nocobase-app -d postgres \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=5432 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +yarn create nocobase-app my-nocobase-app -d mysql \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +yarn create nocobase-app my-nocobase-app -d mariadb \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + + + + + + + +```bash +npx create-nocobase-app@beta my-nocobase-app -d postgres \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=5432 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +npx create-nocobase-app@beta my-nocobase-app -d mysql \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +npx create-nocobase-app@beta my-nocobase-app -d mariadb \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + + + + + + + +```bash +npx create-nocobase-app@alpha my-nocobase-app -d postgres \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=5432 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +npx create-nocobase-app@alpha my-nocobase-app -d mysql \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + +```bash +npx create-nocobase-app@alpha my-nocobase-app -d mariadb \ + --skip-dev-dependencies \ + -e APP_ENV=production \ + -e DB_HOST=localhost \ + -e DB_PORT=3306 \ + -e DB_DATABASE=nocobase \ + -e DB_USER=nocobase \ + -e DB_PASSWORD=nocobase \ + -e TZ=Asia/Shanghai +``` + + + + + + + + +:::warning Parameter notes + +- `--skip-dev-dependencies` skips dev dependencies (for production deployment to reduce size) +- `APP_ENV=production` sets the app to production mode +- `TZ` sets the application timezone (defaults to system timezone) +- `DB_*` are database settings; update them to match your database + +::: + +#### 2. Change Directory + +```bash +cd my-nocobase-app +``` + +#### 3. Install Dependencies + +```bash +yarn install +``` + +:::tip Commercial Plugins (Optional) + +Steps 4–7 below are only for downloading commercial plugins. If you only use the open-source version, skip steps 4–7 and go directly to step 8 to package. + +::: + +#### 4. Install NocoBase + +```bash +yarn nocobase install +``` + +#### 5. Run NocoBase + +```bash +yarn start +``` + +#### 6. Enter License Key + +Visit: + +``` +http://:13000/admin/settings/license-settings +``` + +#### 7. Download Commercial Plugins + +```bash +yarn nocobase pkg download-pro +``` + +#### 8. Package the Project + +```bash +# Run from inside my-nocobase-app; the archive is created in the parent directory +# Excludes .env (sensitive); only packages storage/plugins (commercial plugins, etc.) +tar -czf ../nocobase-app.tar.gz \ + --exclude='./.env' \ + --exclude='./storage' \ + . \ + ./storage/plugins +``` + +### Application Upgrade + +#### 1. Upgrade Application Code and Plugins + +```bash +yarn nocobase upgrade +``` + +#### 2. Repackage the Project + +```bash +tar -czf ../nocobase-app.tar.gz \ + --exclude='./.env' \ + --exclude='./storage' \ + . \ + ./storage/plugins +``` + +## Intranet Environment + +Migrate the packaged project to the intranet server. + +### First-time Installation + +#### 1. Upload Application Code and Plugins + +Copy `nocobase-app.tar.gz` to the intranet server (e.g., via USB or file share), then extract (use the full path if the tar.gz is not in the current directory): + +```bash +mkdir -p /app/my-nocobase-app +tar -xzf nocobase-app.tar.gz -C /app/my-nocobase-app +``` + +#### 2. Change Directory + +```bash +cd /app/my-nocobase-app +``` + +#### 3. Configure .env File + +Create a `.env` file in the project root. Refer to the internet environment config and **update these**: + +- `DB_HOST`: Change to the intranet database address (if the database is on another intranet server) +- `DB_PORT`, `DB_DATABASE`, `DB_USER`, `DB_PASSWORD`: Match the actual intranet database configuration +- `APP_KEY`: Keep the same as the internet environment if possible; otherwise existing tokens will be invalidated + +You can run `cat .env` in the internet project root to view the full config, then copy and adjust for the intranet. + +#### 4. Install NocoBase + +```bash +yarn nocobase install +``` + +#### 5. Start NocoBase + +```bash +yarn start -d +``` + +#### 6. Log in to NocoBase + +Visit `http://:13000` and log in with the initial account. + +#### 7. Enter License Key + +Commercial users need to enter the License Key. Visit: + +``` +http://:13000/admin/settings/license-settings +``` + +### Upgrade Application + +#### 1. Stop the Application + +```bash +cd /app/my-nocobase-app +yarn nocobase pm2-stop +``` + +#### 2. Overwrite Application Code and Plugins + +Copy `nocobase-app.tar.gz` to the intranet server, then extract: + +```bash +tar -xzf nocobase-app.tar.gz -C /app/my-nocobase-app +``` + +#### 3. Upgrade Application + +```bash +cd /app/my-nocobase-app +yarn nocobase upgrade --skip-code-update +``` + +#### 4. Restart Application + +```bash +yarn start -d +``` + +#### 5. Enter License Key (if authorization changed) + +If the License authorization has changed, enter it again. Visit: + +``` +http://:13000/admin/settings/license-settings +``` + +## FAQ + +**Q: Intranet startup fails with "module or binary not found"?** + +A: Ensure Node.js version and OS architecture match between internet and intranet (e.g., both Linux x64, Node 20.x). If they differ, run `yarn install` again in the same environment and repackage. + +**Q: Path-related errors after extraction?** + +A: Ensure the intranet extraction path matches the internet creation path (e.g., both `/app/my-nocobase-app`). Use the `-C` option with `tar -xzf` to specify the same path. + +**Q: Database connection failed?** + +A: Confirm `DB_HOST` in `.env` points to a database address reachable from the intranet, and that the port and firewall rules are correct. diff --git a/docs/docs/en/get-started/deployment/intranet/docker.mdx b/docs/docs/en/get-started/deployment/intranet/docker.mdx new file mode 100644 index 00000000000..3d1869b45cb --- /dev/null +++ b/docs/docs/en/get-started/deployment/intranet/docker.mdx @@ -0,0 +1,5 @@ +# Install and Upgrade NocoBase in Intranet (Docker) + +:::tip +Content to be added +:::