# Dice 前后端分离CMS系统

项目地址:https://github.com/bihell/Dice

# 项目结构及依赖

本项目开发环境为 macOS Catalina 10.15.2 部署环境为 Ubuntu 18.04.3 LTS,以下所有步骤均在这两个系统中运行。

. ├── dice-admin 管理前端 -- 基于Vue Element Admin前端管理框架 主要依赖:Vue.jsElement-UI ├── dice-auth 网关 (开发环境) -- 基于 OpenRestyLua 作为网关和鉴权处理。 ├── dice-docker docker部署脚本 (正式环境) -- 主要依赖:Dockerdocker-compose │   ├── dice-admin │   ├── dice-mysql │   ├── dice-openresty ├── dice-front 博客前端 -- 修改自fame-front 项目 ├── dice-server 服务后端 -- 基于Spring Boot 全家桶 主要依赖:MySQLRedis └── docker-compose.yml docker-compose镜像配置文件 (正式环境)

# 部署

正式部署为 Docker 方式,最好能对 Docker 有所了解,可参考我的文章Docker 实践

# 安装依赖

# 安装CA证书
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

# 安装 `GPG`密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 向`source.list`中添加Docker软件源
# 以下命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# 安装 Docker CE
apt-get update
apt-get install docker-ce

# 安装 docker-compose
curl -L https://github.com/docker/compose/releases/download/v1.25.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# 启动 Docker CE
systemctl enable docker
systemctl start docker

# 开始部署

  1. 克隆项目到本地
apt-get install git
git clone https://github.com/bihell/Dice.git
  1. 安装npmnode.js

考虑到每次构建镜像的效率,自 V2.0(权限系统)完成之后,不再将所有服务都做成容器。

apt-get install npm 
# node.js 源参考 https://github.com/nodesource/distributions/blob/master/README.md
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs
  1. 部署项目
cd dice
./depoly.sh

注意

  • 如果你使用https,请不要忘记生成dice-docker/dice-openresty/conf.d/prod.conf中https的证书。可参考我的B站视频文档

  • 如果你不使用https,请把dice-docker/dice-openresty/conf.d/prod.conf中https的配置注释掉。

  • 任何情况下请根据自己的实际情况更换域名和对应端口,并把openresty-Dockerfile文件中的以下几行注释掉

COPY ./dice-docker/dice-openresty/data /data  # 这是作者Https证书的路径,请酌情修改。
COPY ./dice-docker/dice-openresty/bigdata /usr/local/openresty/nginx/html/bigdata
COPY ./dice-docker/dice-openresty/conf.d/bigdata.conf /etc/nginx/conf.d/bigdata.conf
  1. 访问地址

http://xx.xxx.xx.xx/ 为博客前端首页

http://xx.xxx.xx.xx/admin 为管理后台首页

后台默认的账号

  • 管理员:dice 密码:123456
  • 普通用户:demo 密码:123456

注意

注意项目第一次部署会下载很多依赖包,花费时间较长,请耐心等待。

# 数据库备份恢复

# 备份数据库

docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql

# 恢复数据库

cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE

# 开发

注意

请确保系统中已经安装dockerdocker-componsenodejsnpmJava 9RedisMySQL等必须的依赖。

  1. 克隆项目到本地

    git clone https://github.com/bihell/Dice.git
    
  2. dice-server Java后台 (项目使用lombok插件,如果要在ide中调试要有lombok插件)

    2.1 进入服务端文件夹

     `cd dice-server`
    

    2.2 修改spring-boot配置文件

    vi src/main/resources/application-dev.properties

    spring:
          datasource:
            driverClassName: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://localhost:3306/dice?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
            username: root
            password: root
    

    将数据库的用户名和密码修改成对应你数据库的用户名密码

    2.3 启动dice-server

    mvn clean spring-boot:run -Dmaven.test.skip=true

  3. dice-front博客前端

    3.1 进入前端文件夹

    cd dice-front

    3.2 安装依赖和启动服务

    npm install
    npm run dev
    
  4. dice-admin管理前端

    4.1 进入后端文件夹

    cd dice-admin

    4.2 安装依赖和启动服务

    npm install
    npm run dev
    
  5. dice-auth openresty (仅开发环境使用)

    5.1 安装 openresty

    可参考我的OpenResty 安装文档,安装环境为 MacOS。

    注意

    1)项目中需要用到Http请求,因此你需要把对应的lua模块添加进来。可以从lua-resty-http 下载http.luahttp_headers.lua。并放到/usr/local/Cellar/openresty/1.15.8.3_1/lualib/resty目录中。

    2)如果你的MySQL版本较新,可能会碰到无法连接的错误。可以重新设置一下账号权限,方式如下:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
    flush privileges;
    

    5.2 进入dice-auth 文件夹启动 openresty

    cd Dice/dice-auth
    ./start.sh
    
  6. 访问前端

    http://localhost:81 为博客前端首页

    http://localhost:81/admin 为管理后台首页

更新时间: 3/30/2020, 2:43:05 PM