Skip to content

serverless-plus/serverless-admin-system

Repository files navigation

Serverless Admin System

在线体验

使用 Serverless Components 开发的后台管理系统

  1. 安装 CLI
  2. 初始化项目
  3. 配置
  4. 部署
  5. 开发

安装 CLI

在开始之前需要先安装 Serverless CLI 工具

$ npm i serverless -g

初始化项目

Serverless 命令行工具非常方便,可以直接初始化项目模板:

$ serverless init admin-system

安装项目依赖:

$ npm run bootstrap

项目目录介绍

├── backend         后端服务,Egg.js + PostgreSQL + Redis
├── db              Serverless PG,使用 tencent-postgresql 组件部署创建
├── frontend        前端页面,Vue.js + vue-admin-template,项目模板:https://github.com/PanJiaChen/vue-admin-template
├── package.json
├── scripts         项目脚本,主要含有 bootstrap.js 用来自动安装前后端项目依赖
└── vpc             Serverless VPC,使用 tencent-vpc 组件部署,用来创建腾讯云私有网络

配置

复制项目根目录的 .env.example 文件为 .env,内容如下:

# .env
TENCENT_SECRET_ID=xxx
TENCENT_SECRET_KEY=xxx

REGION=ap-guangzhou
ZONE=ap-guangzhou-2

注意:TENCENT_SECRET_IDTENCENT_SECRET_KEY 可以到 腾讯云 CAM 控制台 获取。

由于后端服务使用 redis 来存储接口鉴权 Token,所以我们还需要给后端项目配置 redis 建连参数,复制 backend 目录的 .env.example.env,然后配置自己的 redis 服务参数:

REDIS_HOST=xxx
REDIS_PORT=xxx
REDIS_PASSWORD=xxx

此项目也支持 Authing 第三方登录,如果你不需要可以直接忽略,如果需要,可以到 Authing 控制台 获取配置,然后添加到 backend/.env 中:

REDIS_HOST=xxx
REDIS_PORT=xxx
REDIS_PASSWORD=xxx

# authing 应用配置
AUTHING_APPID=xxx
AUTHING_APPSECRET=xxx

本地开发

后端服务使用的的数据库均使用本地 Docker 来启动,所以本地开发时,需要先启动 docker 服务:

$ npm run docker:up

启动后端服务

$ npm run dev:be

启动前端开发

$ npm run dev:fe

部署

在部署业务代码之前,我们需要先将后端的 node_modules 文件夹部署为层:

$ npm run deploy:be:layer

注意:在层部署成功后,如果后端项目的 node_modules 没有修改,可以不用再次执行层部署。

部署项目代码:

$ npm run deploy

初始化数据库

部署成功后,我们就可以获得数据库相关参数,其中 postgresql 输出的 public 对象中的参数是用来公网访问的。

在访问服务前,我们还需要同步数据库表结构,修改 database/config.js 中的 production 对象的配置为 postgresql 输出的 public 对象中的参数值,

相关参数对应关系:

postgresql.public 输出 database/config.jsproduction 参数
host host
port post
user username
password password
dbname database

然后我们执行:

$ npm run db:migrate

就可以自动帮助初始化数据库,包括表结构和测试数据。

License

MIT License

Copyright (c) 2020 Serverless Plus