基础介绍
Umo Editor Server 是为了增强 Umo Editor Next 的部分功能,如多用户在线协作编辑、文档批注(评论)、文档导入导出等功能而开发的配套服务器端软件,如果您已经购买了 Umo Editor Next 的商业许可,那您可以在遵守Umo Team 商业软件许可协议的基础上,免费使用 Umo Editor Server。
Umo Editor Server 是一款 Nodejs 的服务器端软件,基于 Express 实现,其主要功能和作用是,通过 http 或 websocket 接口的形式,增强 Umo Editor Next 的能力,支持私有化部署。
Umo Editor Server 不以 NPM 包的形式发行,在获得商业许可后,您可以直接拉取私有仓库的源代码按照实际需要进行修改和部署。
启动项目
1. 克隆官方仓库
git clone <Umo Editor Server 官方私有仓库路径>
2. 安装 NPM 依赖
npm install
3. 配置环境变量
Umo Editor Server 并不提供统一的配置项,部分敏感配置通过环境变量的形式配置。延续了 Umo Editor 开箱即用的思路,您只需要在项目根目录下添加 .env
文件并添加环境变量信息即可快速启动,以下是一个环境变量的示例:
.env
NODE_ENV = development
## 服务相关
PORT = 1235
SERVER_NAME = Umo Editor Server
## 日志相关
LOG_DIR = ./logs
## 数据库相关
SQLITE_DB_PATH = ./db
SQLITE_DB_NAME = umo-editor-server.sqlite
## 协作相关
DOC_SAVE_INTERVAL = 5000 # 单位为毫秒
## AI相关
DEEPSEEK_API_KEY = your-api-key
DEEPSEEK_API_URL = https://api.deepseek.com/v1
OPENAI_API_KEY = your-api-key
OPENAI_API_URL = https://api.openai.com/v1
MOONSHOT_API_KEY = your-api-key
MOONSHOT_API_URL = https://api.moonshot.cn/v1
## 白名单
WHITE_LIST = 127.0.0.1, 0.0.0.0, localhost
您也可以直接从 .env.example
中复制这些信息。
4. 启动项目
npm run dev
5. 一切就绪
通过上述操作,您已经成功启动了 Umo Editor Server,访问 http://127.0.0.1:1235/docs 即可查看 Swagger 文档。
白名单配置
Umo Editor Server 提供了白名单配置的能力,如果配置了白名单,不在白名单中的访问请求将会被拒绝访问。
您可以在 .env
文件中添加 WHITE_LIST
环境变量,该环境变量的值为一个以 ,
分隔的字符串,每个字符串代表一个 IP 地址或域名(URL hostname 格式,不需要访问协议和端口),例如:
.env
WHITE_LIST = 127.0.0.1, 0.0.0.0, localhost, example.com
开发说明
- 对于多人协作编辑、文档批注(评论)等场景,Umo Editor Server 提供了详尽的配置和钩子方法,默认采用 SQLite 存储数据(不同文档请使用不同的文档 id),您可以通过
database
、redis
、sqlite
、webhook
等扩展和现有业务系统对接或通信,详细说明见代码注释; - 您可以将 Umo Editor Server 单独作为一个服务进行部署,通过网关、数据库、HTTP 请求等实现和其他业务系统的对接或通信。Umo Editor Server 目前不包含鉴权的实现(但提供了实现思路和示例代码,见鉴权说明),如果有需要,请自行实现;
- 如果需要二次开发,源代码中提供了大量详尽的注释应该会对您非常有帮助。
部署说明
- 在支持
nodejs
的环境中,您可以直接使用npm run production
运行项目,此命令提供了通过[pm2](https://pm2.io/)
守护进程的能力和记录日志的能力。 - 也可以直接将项目部署到
docker
容器中,您可以根据实际需要修改Dockerfile
。