用Nuxt express element 开发自动部署管理平台 node auto deploy

栏目: 编程语言 · 发布时间: 5年前

内容简介:开发中各种测试开发环境,开发环境,生产环境。需要多次频繁打包上传项目。当开发的项目过多,容易导致包上错环境,手动scp rm backup 容易出错。本项目提供一次配置多次运行,一键操作,解决重复操作node—auto-deploy 主要目的是代替手动执行 打包项目 上传到运程服务器 数据备份 等命令,使用node child_process模块进行衍生的子进程执行各种命令

开发中各种测试开发环境,开发环境,生产环境。需要多次频繁打包上传项目。当开发的项目过多,容易导致包上错环境,手动scp rm backup 容易出错。

本项目提供一次配置多次运行,一键操作,解决重复操作

node auto deploy

项目技术

  • 后台使用 node express开发
  • 数据库使用mysql
  • 前端使用 Nuxt vue 开发
  • ui 使用 element-ui

核心

node—auto-deploy 主要目的是代替手动执行 打包项目 上传到运程服务器 数据备份 等命令,使用node child_process模块进行衍生的子进程执行各种命令

项目启动

安装

  • 程序需要ssh 要用 password 登录 要装sshpass
yum install -y wget && wget http://sourceforge.net/projects/sshpass/files/sshpass/1.06/sshpass-1.06.tar.gz && tar xvzf sshpass-1.06.tar.gz && cd ./sshpass-1.06 && ./configure && make && make install
复制代码
  • 修改数据库配置 /server/config/index.js
module.exports = {
  mysql:{
    host  : '127.0.0.1',
    user  : 'root',
    password : '123456',
    database : 'auto_deploy',
    port:'3306'
  }
};
复制代码
  • 导入 sql 到数据库 sql文件在 /server/sql/iauto_deploy_2019-04-19.sql

  • 安装依赖 打包

# install dependencies
$ npm install

# serve with hot reload at localhost:3000  // 开发环境 端口可以 nuxt.confing.js 修改
$ npm run dev

# build for production and launch server
$ npm run build

复制代码

For detailed explanation on how things work, checkoutNuxt.js docs.

  • 使用pm2为项目守护启动
# 安装pm2
$ npm install pm2 -g 
# 启动
$ pm2 start npm --name "autodeploy" -- run start
# 重新启动
$ pm2 restart  autodeploy

复制代码

测试地址 http://118.24.156.247:3000/

用户/密码 admin/123456 (执行不了任务)

项目git 地址 <=

欢迎各位大神提出 问题 <=,

开发功能

  • 核心功能自动部署
  • 用户权限
  • 定时任务
  • 支持SVN

欢迎提出您想要的功能 => 入口 <=

项目目录结构

├── README.md
├── api  // 前端接口
│   ├── login.js
│   ├── task.js
│   └── user.js
├── assets // 静态资源
├── components  // 组件
│   ├── Breadcrumb
│   │   └── index.vue
│   ├── Hamburger
│   │   └── index.vue
│   ├── Pagination
│   │   └── index.vue
│   ├── README.md
│   ├── SvgIcon
│   │   └── index.vue
│   ├── downTmp
│   │   └── downTemplate.vue
│   ├── editor.vue
│   ├── history.vue
│   └── taskDetail.vue
├── layouts // ui布局
│   ├── README.md
│   ├── components
│   │   ├── AppMain.vue
│   │   ├── Navbar.vue
│   │   ├── Sidebar
│   │   │   ├── Item.vue
│   │   │   ├── Link.vue
│   │   │   ├── SidebarItem.vue
│   │   │   └── index.vue
│   │   ├── headNav.vue
│   │   └── index.js
│   ├── default.vue
│   ├── empty.vue
│   └── mixin
│       └── ResizeHandler.js
├── log // 日志
├── middleware // 前端中间件
│   ├── README.md
│   └── login.js
├── nuxt.config.js // nuxt 配置
├── package-lock.json
├── package.json
├── pages // 页面
│   ├── 404.vue
│   ├── README.md
│   ├── index.vue
│   ├── login
│   │   └── index.vue
│   └── user.vue
├── plugins  // 插件
│   ├── README.md
│   ├── directive.js
│   ├── element-ui.js
│   ├── icons.js
│   └── socket.js
├── server // 服务器代码
│   ├── config
│   │   └── index.js
│   ├── controllers
│   │   ├── authController.js
│   │   ├── homeController.js
│   │   ├── permissController.js
│   │   ├── settingController.js
│   │   └── userController.js
│   ├── index.js
│   ├── model
│   │   ├── permissions.js
│   │   ├── permissionsSqlMap.js
│   │   ├── task.js
│   │   ├── taskList.js
│   │   ├── taskListSqlMap.js
│   │   ├── taskSqlMap.js
│   │   ├── user.js
│   │   ├── userPermissionsSqlMap.js
│   │   ├── userPrmissions.js
│   │   └── userSqlMap.js
│   ├── plugins
│   │   ├── log4j.js
│   │   └── socket.js
│   ├── routes
│   │   ├── auth.js
│   │   ├── home.js
│   │   ├── index.js
│   │   ├── permiss.js
│   │   ├── setting.js
│   │   └── user.js
│   ├── server
│   │   ├── cmd
│   │   │   ├── README.md
│   │   │   ├── branchListTask.js
│   │   │   ├── deleteDirTask.js
│   │   │   ├── historyTask.js
│   │   │   ├── localTask.js
│   │   │   ├── pullTask.js
│   │   │   ├── remoteTask.js
│   │   │   ├── scpTask.js
│   │   │   ├── startTask.js
│   │   │   └── test.js
│   │   ├── cmd.js
│   │   ├── ssh-pool
│   │   │   ├── Connection.js
│   │   │   ├── ConnectionPool.js
│   │   │   ├── README.md
│   │   │   ├── commands
│   │   │   │   ├── cd.js
│   │   │   │   ├── mkdir.js
│   │   │   │   ├── raw.js
│   │   │   │   ├── rm.js
│   │   │   │   ├── rsync.js
│   │   │   │   ├── scp.js
│   │   │   │   ├── ssh.js
│   │   │   │   ├── tar.js
│   │   │   │   └── util.js
│   │   │   ├── index.js
│   │   │   ├── remote.js
│   │   │   └── util.js
│   │   └── util
│   │       ├── argv.js
│   │       ├── git.js
│   │       ├── local.js
│   │       ├── log4j.js
│   │       ├── remote.js
│   │       └── ws.js
│   ├── sql
│   │   └── auto_deploy_2019-04-19.sql
│   └── util
│       ├── mysql.js
│       ├── startCmd.js
│       └── token.js
├── static // 
│   ├── README.md
│   └── favicon.ico
├── store //数据
│   ├── README.md
│   ├── actions.js
│   ├── app.js
│   ├── index.js
│   ├── mutation-types.js
│   ├── mutations.js
│   └── user.js
└── utils // 工具
    ├── auth.js
    ├── index.js
    ├── request.js
    ├── scrollTo.js
    └── validate.js
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Producter 让产品从0到1

Producter 让产品从0到1

周楷雯 / 人民邮电出版社 / 2016-12-25 / CNY 69.00

这是一本以App Store首页推荐的成功App为例阐述如何完成一款App产品的设计、开发和营销的书。在这本书之后,作者的《一炷香》和《字里行间》两款产品也接连被App Store首页推荐。 《Producter 让产品从0到1》从产品的设计、产品的实现、产品的迭代、产品的营销、产品的进阶等几个角度,全面讲解了产品设计的基本原则、设计的重要性、设计的感觉、实用的设计工具、简单的iOS开发、产......一起来看看 《Producter 让产品从0到1》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具