RAP2-DELOS 开源社区版本 (后端 API 服务器)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: RAP2-DELOS 开源社区版本 (后端 API 服务器)

RAP2 是在 RAP1 基础上重做的新项目,它能给你提供方便的接口文档管理、Mock、导出等功能,包含两个组件(对应两个 Github Repository)。

rap2-delos: 后端数据 API 服务器,基于 Koa + MySQLlink

rap2-dolores: 前端静态资源,基于 React link

Rap 官方服务站点,无需安装直接体验: rap2.taobao.org

注意:本工具为开发工具,相关API未做任何XSS等安全验证,请勿在生产环境依赖RAP的任何服务!!!

有急事来官方钉钉群,响应更迅速: 11789704

2019-10-31:现已支持 Docker 一键部署,欢迎大家体验&反馈

2019-09-27:更新的用户请注意按照下面指引安装 pandoc 以启用文档导出功能

推荐使用 Docker 快速部署

安装 Docker

国内用户可参考 https://get.daocloud.io/ 安装 Docker 以及 Docker Compose (Linux 用户需要单独安装),建议按照链接指引配置 Docker Hub 的国内镜像提高加载速度。

配置项目

在任意地方建立目录 rap

把本仓库中的 docker-compose.yml 放到 rap 目录中

Rap 前端服务的端口号默认为 3000,你可以在 docker-compose.yml 中按照注释自定义

在 rap 目录下执行下面的命令:

# 拉取镜像并启动
docker-compose up -d
# 启动后,第一次运行需要手动初始化mysql数据库
# ⚠️注意: 只有第一次该这样做
docker-compose exec delos node scripts/init
# 部署成功后 访问
http://localhost:3000 # 前端(可自定义端口号)
http://localhost:38080 # 后端
# 如果访问不了可能是数据库没有链接上,关闭 rap 服务
docker-compose down
# 再重新运行
docker-compose up -d
# 如果 Sequelize 报错可能是数据库表发生了变化,运行下面命令同步
docker-compose exec delos node scripts/updateSchema

注意::第一次运行后 rap 目录下会被自动创建一个 docker 目录,里面存有 rap 的数据库数据,可千万不要删除。

镜像升级

Rap 经常会进行 bugfix 和功能升级,用 Docker 可以很方便地跟随主项目升级

# 拉取一下最新的镜像
docker-compose pull
# 暂停当前应用
docker-compose down
# 重新构建并启动
docker-compose up -d --build
# 有时表结构会发生变化,执行下面命令同步
docker-compose exec delos node scripts/updateSchema
# 清空不被使用的虚悬镜像
docker image prune -f

手动部署

环境要求

  • Node.js 8.9.4+
  • MySQL 5.7+
  • Redis 4.0+
  • pandoc 2.73 (供文档生成使用)

开发模式

安装 MySQL 和 Redis 服务器

请自行查找搭建方法,mysql/redis 配置在 config.*.ts 文件中,在不修改任何配置的情况下, redis 会通过默认端口 + 本机即可正常访问,确保 redis-server 打开即可。

注意:修改 cofig 文件后需要重新 npm run build 才能生效

安装 pandoc

我们使用 pandoc 来生成 Rap 的离线文档,安装 Pandoc 最通用的办法是在 pandoc 的 release 页面下载对应平台的二进制文件安装即可。

其中 linux 版本最好放在/usr/local/bin/pandoc 让终端能直接找到,并执行 chmod +x /usr/local/bin/pandoc 给调用权限。

测试在命令行执行命令 pandoc -h 有响应即可。

启动redis-server

redis-server

后台执行可以使用 nohup 或 pm2,这里推荐使用 pm2,下面命令会安装 pm2,并通过 pm2 来启动 redis 缓存服务

npm install -g pm2
npm run start:redis

先创建创建数据库

mysql -e 'CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci'

初始化

npm install

confirm configurations in /config/config.dev.js (used in development mode),确认/config/config.dev.js 中的配置(.dev.js 后缀表示用于开发模式)。

安装 && TypeScript 编译

npm install -g typescript
npm run build

初始化数据库表

npm run create-db

执行 mocha 测试用例和 js 代码规范检查

npm run check

启动开发模式的服务器 监视并在发生代码变更时自动重启

npm run dev

生产模式

# 1. 修改/config/config.prod.js中的服务器配置
# 2. 启动生产模式服务器
npm start

社区贡献

Author

版权: 阿里妈妈前端团队

作者:

RAP2 2017/10 前版本作者为墨智(@Nuysoft), mockjs的作者。

2017/10 之后版本开发者

霍雍(Bosn),RAP1作者,RAP 最早的创始人。

承虎(alvarto)

池冰(bigfengyu)

Tech Arch

前端架构(rap2-dolores)

React / Redux / Saga / Router

Mock.js

SASS / Bootstrap 4 beta

server: nginx

后端架构(rap2-delos)

Koa

Sequelize

MySQL

Server

server: node

旧版本升级

-数据库数据迁移  RAP2 2.4迁移到2.8
  由于数据库表有主外键,按以下顺序插入数据
  1.Users
  2.Organizations
  3.Repositories
  4.repositories_members(备注:将createdAt、updatedAt两个字段必填去除)
  5.organizations_members
  6.Modules
  7.Interfaces
  8.Loggers
  9.Properties(备注:将数据scope字段的所有''值替换成'String')
  default_val和repositories_collaborators表无数据无需处理
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
28天前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
29天前
|
运维 安全 Linux
2024 主流的开源服务器面板推荐
随着云计算和虚拟专用服务器(VPS)的普及,服务器面板工具成为了企业和个人管理服务器的得力助手。一个优秀的服务器面板不仅可以简化服务器管理任务,还可以提升工作效率和安全性。本文将为您介绍并测评几款2024年全网热门的服务器面板,包括Websoft9、宝塔、cPanel、1Panel等,帮助您找到最适合自己的管理工具。
2024 主流的开源服务器面板推荐
|
1月前
|
监控 安全 API
拥抱开源:下一代API管理工具Kong的崛起
【10月更文挑战第27天】在微服务架构和API经济的推动下,API管理成为软件开发的关键环节。Kong作为开源的API管理平台,凭借其灵活性和强大功能,受到开发者的青睐。本文探讨了Kong的核心特性、使用技巧及其在企业中的应用,帮助读者更好地理解和利用这一工具。
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
392 3
|
29天前
|
Web App开发 人工智能 自然语言处理
WebChat:开源的网页内容增强问答 AI 助手,基于 Chrome 扩展的最佳实践开发,支持自定义 API 和本地大模型
WebChat 是一个基于 Chrome 扩展开发的 AI 助手,能够帮助用户理解和分析当前网页的内容,支持自定义 API 和本地大模型。
65 0
|
2月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
|
2月前
|
弹性计算 Ubuntu Linux
阿里云服务器公共镜像、社区镜像、自定义镜像、共享镜像、云市场镜像区别及选择参考
阿里云服务器镜像有公共镜像、自定义镜像、共享镜像、镜像市场、社区镜像可选,对于新手用户来说,不知道他们之间的区别,因此往往不知道如何选择,本文为大家介绍他们之间的区别以及选择参考。
456 12
|
2月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
443 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
3月前
|
人工智能 Serverless API
一键服务化:从魔搭开源模型到OpenAI API服务
在多样化大模型的背后,OpenAI得益于在领域的先发优势,其API接口今天也成为了业界的一个事实标准。
一键服务化:从魔搭开源模型到OpenAI API服务
下一篇
DataWorks