专业的研发团队协作平台。
从上周六开始,NEI每天被DDOS攻击数十小时,一度导致服务不可用,我们已经向公司申请了很多资源来尝试防止,发现成本比想像中要大很多,NEI是一款免费的开源产品,我们决定不再向公司申请更多的资源来解决这种无耻的攻击。
为此,我们不会保证免费在线版本的稳定性,请大家尽快私有化部署NEI。大家的数据都完好无损,我们近期会尽快研发导出工具,帮大家将数据导出,敬请期待。
本代码仓库为 NEI 的源代码,大家可以下载进行私有部署。由于大家无法使用网易公司的网易通行证,所以登录功能需要自行接入你们公司的帐号系统,代码需要自己开发。为了功能演示方便,本仓库代码增加了站内帐号,同时去掉了网易通行证登录功能,此外,也去掉了所有和网易公司相关的基础设施,比如邮箱服务、IP 查询服务等等功能,大家视各自情况添加自己公司提供的服务即可。
因为有服务依赖,所以需要做容器编排,如果你使用的是 docker-compose,可以直接通过 docker-compose up -d
部署,默认服务运行在本地 8082
端口,你也可以加入 Caddy 或者 Nginx 编排用于实际生产环境。
- Node.js
>=6.9.2
。
如果安装完 Node.js 后,没有自动安装 NPM,则需要手动安装。
- Redis
>=2.8
。 - MySQL
>=5.7.12
,初始化脚本为 install.sql。 - MongoDB
>=3.4
。
在项目根目录依次执行下述命令,并确保没有错误发生:
npm install nej -g
npm install
npm run build
上述过程一般都是自动化执行的,请结合你们公司的部署平台编写自动化脚本。
注意,
npm install
的速度可能比较慢,可以使用淘宝源,比如npm install --registry=https://registry.npm.taobao.org
。
部署前,请确认应用的配置是否都填写正确,比如数据库的连接配置等。配置文件都放在 server/config
目录下面,其中 develop.js
、test.js
和online.js
分别为本地环境
、测试环境
、线上环境
的配置文件。配置文件中的参数含义应该比较清晰直白,这里就不再展开介绍。然后,运行下述命令可启动应用:
npm start
默认情况下,应用会运行在 8082
端口上,所以如果想将应用绑定到特定域名,一般需要 Nginx 服务器,参考配置。
npm stop
- NEI 没有提供恢复已被删资源的功能,根据实际经验,会存在不小心删除接口、数据模型等情形,一旦发生损失就会很严重。建议给重要的数据库表(比如
interface
、datatype
、parameter
等)添加删除操作的触发器,将删除的数据写入备份数据库,保证在误删除操作时可以找回数据。 - 为了安全,请给所有可以设置密码的软件添加密码,比如 Redis 等。
- 考虑到研发成本,NEI 只兼容 Chrome 浏览器。
- 由于打包工具的限制,NEI 的前端 JavaScript 不支持绝大多数的 ES6 语法,不然会构建失败。
- 部署时很有可能会遇到各种各样的环境问题,最好是让专业的运维人员来操作。
- 如果是可以复现的问题,很可能会被很多人遇到,所以优先推荐在 issues 中进行搜索是否有相同问题。
NEI 的前端使用的是 NEJ 和 Regularjs,后端使用的是 Koa 框架。如果想对项目进行改造,需要学习上述技术。
首次运行需要先安装依赖:
npm install
运行下面的命令可以启动本地开发:
npm run dev