快速入门

发布时间:

环境准备

  • 操作系统:支持 macOS,Linux,Windows
  • 运行环境:Node.js 建议选择 LTS 版本,最低要求 8.x。Mysq 5.7以上。

项目结构

.
├── LICENSE
├── README.md
├── app
│   ├── contract  #swagger目录 CmsWing自动生成不要手动修改
│   ├── controller #控制器目录
│   │   ├── cms #cms模块目录 如果要同步升级不要修改
│   │   ├── home.js
│   │   ├── mc #会员中心模块目录 如果要同步升级不要修改
│   │   └── sys #CmsWing系统目录 如果要同步升级不要修改
│   ├── core #CmsWing公共文件
│   │   ├── base_controller.js #系统基础控制器,系统内的所有控制器都需要基础该文件
│   │   ├── graphql  #graphql 生成时的基础文件
│   │   ├── initData  #系统安装基础数据
│   │   └── model #模型生成时的基础文件
│   ├── extend #扩展目录
│   │   ├── context.js #Context扩展
│   │   ├── filter.js #nunjucks filter 扩展
│   │   └── helper.js #Helper扩展
│   ├── graphql #graphql目录 CmsWing自动生成不要手动修改
│   ├── middleware #中间件目录
│   │   ├── mc #用户中心中间件目录
│   │   └── sys #后台系统中间件目录
│   ├── model #模型目录 CmsWing自动生成不要手动修改
│   ├── pages #后台前面页面目录 amis 的json文件
│   │   ├── cms #cms后台目录
│   │   ├── index.json #后台首页
│   │   ├── mc #用户中心后台目录
│   │   └── sys #系统后台目录
│   ├── public #静态资源目录
│   │   ├── amis-editor #amis编辑器静态资源
│   │   ├── assets #系统前台静态资源
│   │   ├── cms #cms 模版静态资源
│   │   └── sys #后台系统静态资源
│   ├── router #CmsWing生成路由目录 请勿手动修改
│   │   └── cw_router.js #CmsWing系统自动生成路由配置
│   ├── router.js #用于配置 URL 路由规则 可以手动配置
│   ├── service #用于编写业务逻辑层
│   │   ├── cms #cms模块
│   │   └── sys #后台系统模块
│   └── view #模版文件目录
│       ├── cms #cms 前台模板文件
│       ├── index.html
│       ├── mc #用户中心模版文件
│       └── sys #后台系统入口文件
├── config #配置文件目录
│   ├── config.default.js #默认配置文件
│   ├── objectStorage.config.js #云对象储存配置文件 后台自动生成请勿手动修改
│   ├── plugin.js #egg插件配置
│   ├── sequelize.js #数据库配置
│   ├── swagger.js #swagger配置
│   └── sys.config.js #系统后台配置 系统生成请勿手动修改
├── jsconfig.json
├── package.json
└── test #用于单元测试

 

本地运行

下载源代码 gitee 和 github 代码是同步的,国内推荐使用gitee下载,在您要安装的目录运行 git clone 命令下载源码

git clone https://gitee.com/cmswing/CmsWing.git
或
git clone https://github.com/arterli/CmsWing.git

 

进入项目根目录安装依赖

npm install

 

修改数据库配置

// app/config/sequelize.js
{
  dialect: 'mysql',
  host: '127.0.0.1',
  port: 3306,
  database: 'cmswing2',
  username: 'root',
  password: 'root123456',
}
// 先创建数据库,然后把数据库配置文件的信息修改成你实际的数据库信息。

 

启动项目

npm run dev

 

后台访问

地址:http://127.0.0.1:7001/
账号:admin
密码:123456

线上部署

服务器需要预装 Node.js,框架支持的 Node 版本为 >= 8.0.0

框架内置了 egg-cluster 来启动 Master 进程,Master 有足够的稳定性,不再需要使用 pm2 等进程守护模块。

同时,框架也提供了 egg-scripts 来支持线上环境的运行和停止。

基本上和本地运行的流程一致,先把代码上传到服务器对应目录,进入项目根目录安装依赖,修改数据库配置,然后通过 npm start 和 npm stop 命令启动或停止应用。

宝塔部署(适合新手)

一、在服务器安装宝塔 具体 参考 宝塔安装教程

二、宝塔安装完成后进入宝塔安装 安装 nginx 如果您要把mysql安装到服务器 顺便按 mysql 5.7 版本以上。

三、宝塔内按照nodejs并运行node项目

1.在宝塔内可以通过(1)Node版本管理器 来安装管理nodejs,

2.把项目上传到 /www/wwwroot 目录下,比如/www/wwwroot/CmsWing

在宝塔勇敢(2)添加Nodejs项目 来创建nodejs项目

修改端口


项目 默认的端口 7001 ,如果服务器要安装多个项目,可以修改默认端口,在后台 系统管理->Config配置 中修改。

配置HTTPS

配置域名

开启外网映射

上传证书(宝塔内免费申请的证书有问题,推荐到各大云去申请免费的证书,普通项目完全满足)

手动部署(适合喜欢折腾同学)

第一步安装 nginx 具体安装方法自行百度

第二步安装 nodejs 具体方法自行百度

第三步上传项目代码 启动项目 npm run start   停止项目 npm run stop

第四步 nginx 反向代理

server
{
    listen 80;
    listen 443 ssl http2;
    #你的域名
    server_name www.cmswing.com; 
    index index.html index.htm default.htm default.html;
    #项目目录
    #root /www/wwwroot/CmsWing;

    #SSL-START SSL相关配置
    #error_page 404/404.html;
    #证书路径
    ssl_certificate    /www/server/panel/vhost/cert/CmsWing/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/CmsWing/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    #SSL-END

    #ERROR-PAGE-START  错误页相关配置
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    # HTTP反向代理相关配置开始 >>>
    location ~ /purge(/.*) {
        proxy_cache_purge cache_one $host$request_uri$is_args$args;
    }

    location / {
        #这里的端口号根据你实际配置修改,如果没有配置默认就是7001
        proxy_pass http://127.0.0.1:7001;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        add_header X-Cache $upstream_cache_status;
        proxy_set_header X-Host $host:$server_port;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 30s;
        proxy_read_timeout 86400s;
        proxy_send_timeout 30s;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    # HTTP反向代理相关配置结束 <<<

}

最后更新时间: 2024-03-29 09:21:17