# Dice 前后端分离CMS系统
项目地址:https://github.com/bihell/Dice (opens new window)
# 一、项目结构及依赖
本项目开发环境为 macOS Catalina 10.15.2 部署环境为 Ubuntu 18.04.3 LTS,以下所有步骤均在这两个系统中运行。
.
├── dice-admin
管理前端 -- 基于Vue Element Admin (opens new window)前端管理框架 主要依赖:Vue.js (opens new window)、Element-UI (opens new window)
├── dice-auth
网关 (开发环境) -- 基于 OpenResty (opens new window)和Lua (opens new window) 作为网关和鉴权处理。
├── dice-docker
docker部署脚本 (正式环境) -- 主要依赖:Docker (opens new window)、docker-compose (opens new window)
│ ├── dice-admin
│ ├── dice-mysql
│ ├── dice-openresty
├── dice-front
博客前端 -- 修改自fame-front (opens new window) 项目
├── dice-server
服务后端 -- 基于Spring Boot (opens new window) 全家桶 主要依赖:MySQL (opens new window)、Redis (opens new window)
└── docker-compose.yml
docker-compose (opens new window)镜像配置文件 (正式环境)
# 二、正式部署
正式部署为 Docker 方式,最好能对 Docker 有所了解,可参考我的文章Docker 实践
部署视频:西瓜视频 (opens new window) 哔哩哔哩 (opens new window) YouTube (opens new window)
# 2.1 安装依赖
# 安装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
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
# 2.2 开始部署
- 克隆项目到本地
apt-get install git
git clone https://github.com/bihell/Dice.git
2
- 安装
npm
、node.js
以及maven
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
apt-get install maven
2
3
4
5
- 准备https证书
项目默认开启HTTPS加密访问,请将证书放在./dice-docker/dice-openresty/data
目录下,如果没有证书,可以参考我的文档和视频教程申请免费的证书。西瓜视频 (opens new window) 哔哩哔哩 (opens new window) YouTube (opens new window)
- 注释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
2
- 部署项目
cd dice
./depoly-prod.sh
2
- 访问地址
http://xx.xxx.xx.xx/
为博客前端首页
http://xx.xxx.xx.xx/admin
为管理后台首页
后台默认的账号
- 管理员:dice 密码:123456
- 普通用户:demo 密码:123456
注意
注意项目第一次部署会下载很多依赖包,花费时间较长,请耐心等待。
# 2.3 数据备份恢复
# 备份数据库
docker exec dice-mysql /usr/bin/mysqldump -u root --password=root dice > backup.sql
# 恢复数据库
cat backup.sql | docker exec -i dice-mysql /usr/bin/mysql -u root --password=root dice
# 三、参与开发
注意
请确保系统中已经安装docker
、docker-componse
、nodejs
、npm
、Java9
、Redis
、MySQL
等必须的依赖。
# 3.1 安装依赖(MacOS)
# Java
brew tap homebrew/cask-versions
brew cask install java11
2
# Docker
直接Docker官方下载Docker Desktop (opens new window)
# MySQL
brew install mysql
mysql.server start
2
# Redis
brew install redis
brew services start redis
2
# OpenResty
brew tap openresty/brew
brew install openresty
2
# 3.2 愉快的开发吧
克隆项目到本地
git clone https://github.com/bihell/Dice.git
# 3.2.1 dice-server
Java后台
项目使用lombok插件,如果要在ide中调试要有lombok插件
# 3.2.1.1 修改相应配置
进入服务端文件夹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
2
3
4
5
6
将数据库的用户名和密码修改成对应你数据库的用户名密码
# 3.2.1.2 项目启动
多种启动方式:
- 直接运行main方法
直接在IDE中运行bootstrap
模块的DiceApplication
启动类的main方法就可以看到项目启动了。
- 打包启动
mvn clean package -P docker,release
java -jar bootstrap/target/bootstrap-2.0.jar
2
# 3.2.2 dice-front
博客前端
进入前端文件夹cd dice-front
,安装依赖并启动服务:
npm install
npm run dev
2
# 3.2.3 dice-admin
管理前端
进入后端文件夹cd dice-admin
,安装依赖和启动服务:
npm install
npm run dev
2
# 3.2.4 dice-auth
openresty (仅开发环境使用)
# 3.2.4.1 安装 openresty
可参考我的OpenResty 安装文档,安装环境为 MacOS。
注意
1)项目中lua需要用到Http请求,因此你需要把对应的lua模块添加进来。可以从lua-resty-http (opens new window) 下载http.lua
和http_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;
2
# 3.2.4.2 启动openresty
进入dice-auth文件夹启动:
cd Dice/dice-auth
./start.sh
2
# 3.2.5 访问前端
http://localhost:81
为博客前端首页
http://localhost:81/admin
为管理后台首页