# 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 实践

部署视频:西瓜视频 哔哩哔哩 YouTube

# 安装依赖

# 安装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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 开始部署

  1. 克隆项目到本地
apt-get install git
git clone https://github.com/bihell/Dice.git
1
2
  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
2
3
4
  1. 准备https证书

项目默认开启HTTPS加密访问,请将证书放在./dice-docker/dice-openresty/data目录下,如果没有证书,可以参考我的文档和视频教程申请免费的证书。西瓜视频 哔哩哔哩 YouTube

  1. 注释docker部分配置

注释掉dice-docker/dice-openresty/openresty-Dockerfile文件中以下两行的配置

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
2
  1. 部署项目
cd dice
./depoly.sh
1
2
  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
1

# 恢复数据库

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

# 三、参与开发

注意

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

# 3.1 安装依赖(MacOS)

# Java

brew tap homebrew/cask-versions
brew cask install java11
1
2

# Docker

直接Docker官方下载Docker Desktop

# MySQL

brew install mysql
mysql.server start
1
2

# Redis

brew install redis
brew services start redis
1
2

# OpenResty

brew tap openresty/brew
brew install openresty
1
2

# 3.2 愉快的开发吧

克隆项目到本地

git clone https://github.com/bihell/Dice.git
1

# dice-server Java后台

项目使用lombok插件,如果要在ide中调试要有lombok插件

# 修改相应配置

进入服务端文件夹cd dice-server,修改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
1
2
3
4
5
6

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

# 项目启动

多种启动方式:

  1. 使用Maven命令启动
mvn clean spring-boot:run -Dmaven.test.skip=true
1
  1. 直接运行main方法

直接在IDE中运行Application类的main方法就可以看到项目启动了。

  1. 打包启动
mvn package -Dmaven.test.skip=true
java -jar target/Dice-2.0.jar 
1
2

# dice-front 博客前端

进入前端文件夹cd dice-front,安装依赖并启动服务:

npm install
npm run dev
1
2

# dice-admin 管理前端

进入后端文件夹cd dice-admin,安装依赖和启动服务:

npm install
npm run dev
1
2

# dice-auth openresty (仅开发环境使用)

# 1.安装 openresty

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

注意

1)项目中lua需要用到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;
1
2

# 2.启动openresty

进入dice-auth文件夹启动:

cd Dice/dice-auth
./start.sh
1
2

# 访问前端

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

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

更新时间: 6/10/2020, 2:50:30 PM