不知道是否你也有这种感觉,一开始只想搭一个博客,但是过一段时间后,又想搭一个论坛,然后再过段时间后又想整一个商城一类的,我就是这样的人,喜欢折腾,但是也不会轻易放弃,只是说更新的周期会随着时间慢慢变长

如果你想搭建我上面所说的东西之外,还想借鉴学习一下,那么下面我推荐的这一套源码(冰激凌内容管理系统),绝对适合你

先上截图

什么是冰激凌内容管理系统

是一款实现MacWK资源站,社区图片视频圈子CMS,支持网页端移动端小程序适合做:资讯商城,社区论坛,聊天交友 社区,博客,圈子,论坛,图片,视频,社交

可以说是一款综合性比较强的项目了,该项目一直在更新中,目前有一些问题也在持续处理,不过整体架子没什么问题

架构

基于Spring Boot + Vue前后端分离的内容管理系统

后端

基于 JDK8 开发,8以上要添加依赖:

1
2
3
4
5
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>

目录结构

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
iceCMS/
├── HELP.md
├── IceCMS-java.iml
├── IceCMS-main --java主程序启动入口
│ ├── IceCMS-main.iml
│ ├── main.iml
│ ├── pom.xml
│ ├── src
│ └── target
├── IcePay-ment --java支付模块
│ ├── IcePay-ment.iml
│ ├── pom.xml
│ ├── src
│ └── target
├── IceWk-ment --java前端api模块
│ ├── IceWk-ment.iml
│ ├── pom.xml
│ ├── src
│ └── target
├── IceWk-uniApp --h5Uniapp模块
│ ├── App.vue
│ ├── LICENSE
│ ├── components
│ ├── main.js
│ ├── manifest.json
│ ├── nPro
│ ├── package-lock.json
│ ├── package.json
│ ├── pages
│ ├── pages.json
│ ├── static
│ ├── store
│ ├── subPage
│ ├── template.h5.html
│ ├── theme
│ ├── uni.scss
│ ├── uni_modules
│ ├── utils
│ └── vue.config.js
├── IceWk-vues --前端vue模块
│ ├── LICENSE
│ ├── README.md
│ ├── babel.config.js
│ ├── build
│ ├── dist
│ ├── jest.config.js
│ ├── jsconfig.json
│ ├── node_modules
│ ├── package-lock.json
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ ├── serverless.yml
│ ├── src
│ ├── vue.config.js
│ └── yarn.lock
├── README.md
├── bin
│ ├── clean.bat
│ ├── package.bat
│ └── run.bat
├── doc
│ └── IceCMS环境使用手册.docx
├── mvnw
├── mvnw.cmd
├── pom.xml
└── sql --项目sql文件
├── icecms5.6.sql
└── icecms8.0.sql

前端

核心框架:Vue2.x、Vue Router、Vuex

Vue 项目基于@vue/cli4.x构建

JS 依赖及参考的css:axios、moment、nprogress、v-viewer、prismjs、APlayer、MetingJS、lodash、mavonEditor、echarts、tocbot、iCSS

ElementUI:部分使用,一些小组件,更改了ui样式,便于快速实现效果

应用端

应用端有:前端、后端、Uni-app、H5

前端地址
后端地址账号:admin 密码:123123

快速运行

MySQL JDK1.8或以上 Maven Nodejs 微信开发者工具

  1. Mysql创建数据库:IceCMS,执行/sql/IceCMS.sql初始化
  2. 修改配置文件IceCMS-main/src/main/resources/application.yml
  3. 配置Redis,不使用也可以
  4. 启动iceCMS-main管理后台的后端服务
  5. 运行前端(进入iceCMS-vues目录)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 克隆项目
    git clone https://github.com/PanJiaChen/vue-admin-template.git

    # 进入项目目录
    cd IceWk-VUE

    # 安装依赖
    npm install

    # 建议不要直接使用 cnpm 安装以来,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
    npm install --legacy-peer-deps --registry=https://registry.npm.taobao.org
    # 启动服务
    npm run dev
  6. 运行uniapp(HbuilderX中打开IceWK-uniApp)

部署

前端部署

1
2
3
4
5
# 构建测试环境
npm run build:stage

# 构建生产环境
npm run build:prod

后端部署

打开命令行,输入以下命令

1
2
3
4
5
cd iceCMS
mvn install
mvn clean package
java -Dfile.encoding=UTF-8 -jar iceCMS/iceCMS-main/target/iceCMS.jar
#在iceCMS.jar目录输入 java -jar iceCMS.jar

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
30
31
32
33
34
35
36
37
38
39
40
41
42
# 未安装docker的请先安装docker,已经安装的跳过此步
yum install docker-ce -y
#启动docker
systemctl start docker
# 配置国内源
# 创建docker目录
sudo mkdir -p /etc/docker
# 创建配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
# 加载新的配置文件
sudo systemctl daemon-reload
# 重启docker服务
sudo systemctl restart docker

main-命令执行
Ps:按顺序执行

1. 运行Mysql容器
docker run -d -p 0:3389 \
--name ice-sql \
--restart always \
thecosy/icemysql:v2.2.0

2. 运行Spring容器
docker run -d -p 8181:8181 \
--name ice-api \
--restart always \
--link ice-sql:db \
thecosy/icecms:v2.2.0

3. 运行Vue容器
docker run -d -p 3000:80 \
--name ice-vue \
--restart always \
--link ice-api:iceApi \
thecosy/icevue:v2.2.0

#访问前端地址http://ip:3000

访问

前端地址:http://localhost:9528
后端地址:http://localhost:9528/admin

注意事项

  • MySQL 确保数据库字符集为utf8mb4的情况下通常没有问题(”站点设置”及”文章详情”等许多表字段需要utf8mb4格式字符集来支持emoji表情,否则在导入sql文件时,即使成功导入,也会有部分字段内容不完整,导致前端页面渲染数据时报错)
  • 确保 Maven 能够成功导入现版本依赖,请勿升级或降低依赖版本
  • 数据库中默认用户名密码为root,123123,因为是个人项目,没打算做修改密码的页面,可在top.naccl.util.HashUtils下的main方法手动生成密码存入数据库
  • 注意修改IceCMS-main目录下的application-dev.properties的配置信息
  • Redis 若没有密码,留空即可
  • 注意修改token.secretKey,否则无法保证 token 安全性

总体上来说还不错,只不过有些细节待优化完善,不过供个人学习研究足够了

官网地址
IceCMS使用文档
演示