RAP2 安装

RAP2 一个可视化接口管理工具, 需要部署前后端服务
后端数据API服务器 基于Koa + MySQL
前端静态资源 基于React

部署前准备:

  1. 服务器环境 Centos7, IP地址 192.168.1.18
  2. Node.js
  3. Redis
  4. MySQL
  5. Git
后端服务部署
  1. 获取源代码 git clone https://github.com/thx/rap2-delos.git
  2. 创建数据库 CREATE DATABASE IF NOT EXISTS rap2 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  3. 初始化 npm install
  4. 配置环境 src/config/config.prod.ts (dev 和 local 环境直接配置固定值即可)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #端口配置
    serve: {
    port: (process.env.EXPOSE_PORT && parseInt(process.env.EXPOSE_PORT)) || 8181,
    }

    #数据库连接配置
    db: {
    dialect: 'mysql',
    host: process.env.MYSQL_URL || 'localhost',
    port: (process.env.MYSQL_PORT && parseInt(process.env.MYSQL_PORT)) || 3306,
    username: process.env.MYSQL_USERNAME || 'root',
    password: process.env.MYSQL_PASSWD || 'root',
    database: process.env.MYSQL_SCHEMA || 'rap2',
    }

    #Redis配置
    redis: {
    host: process.env.REDIS_URL || 'localhost',
    port: (process.env.REDIS_PORT && parseInt(process.env.REDIS_PORT)) || 6379,
    auth_pass: process.env.REDIS_PWD || '123456'
    }
  5. 编译 npm run build

  6. 初始化数据库表 npm run create-db
  7. 执行 mocha 测试用例和js代码规范检查 npm run check
  8. 生产模式 npm start
  9. 访问 192.168.1.18:8181, 提示 RAP2后端服务已启动,请从前端服务(rap2-dolores)访问. RAP2 back-end server is started, please visit via front-end service (rap2-dolores).
前端服务部署
  1. 获取源代码 git clone https://github.com/thx/rap2-dolores.git
  2. 初始化 npm install –unsafe-perm
  3. 配置后端服务器地址 src/config/config.prod.js

    1
    2
    3
    4
    5
    6
    7
    module.exports = {
    serve: 'http://192.168.1.18:8181',
    keys: ['some secret hurr'],
    session: {
    key: 'koa:sess'
    }
    }
  4. 编译 npm run build

  5. 服务器配置路由至 build 文件夹作为静态服务器即可, 这里配置的是 8282 端口
  6. 访问 192.168.1.18:8282
  7. 添加伪静态文件 .htaccess
    1
    2
    3
    4
    5
    6
    7
    8
    <IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ /index.html [L]
    </IfModule>
0%