Coder Social home page Coder Social logo

qingbo9527 / rap2-delos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thx/rap2-delos

0.0 0.0 0.0 471 KB

阿里妈妈前端团队出品的开源接口管理工具RAP第二代

Home Page: http://rap2.taobao.org

License: MIT License

JavaScript 11.71% HTML 0.86% AppleScript 0.84% TypeScript 80.93% Dockerfile 0.36% TSQL 5.31%

rap2-delos's Introduction

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

Build Status

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

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表无数据无需处理

rap2-delos's People

Contributors

bosn avatar paul-wiz avatar irvingzhao avatar atarismio avatar topcatv avatar 5aaee9 avatar codefine avatar ganl avatar hanreew avatar sea13502 avatar shangwenhe avatar stpice avatar charmfocus avatar zhcsyncer avatar youngjuning avatar llitfkitfk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.