不知道是否你也有这种感觉,一开始只想搭一个博客,但是过一段时间后,又想搭一个论坛,然后再过段时间后又想整一个商城一类的,我就是这样的人,喜欢折腾,但是也不会轻易放弃,只是说更新的周期会随着时间慢慢变长
如果你想搭建我上面所说的东西之外,还想借鉴学习一下,那么下面我推荐的这一套源码(冰激凌内容管理系统),绝对适合你
先上截图
什么是冰激凌内容管理系统
是一款实现MacWK资源站,社区图片视频圈子CMS,支持网页端移动端小程序适合做:资讯商城,社区论坛,聊天交友 社区,博客,圈子,论坛,图片,视频,社交
可以说是一款综合性比较强的项目了,该项目一直在更新中,目前有一些问题也在持续处理,不过整体架子没什么问题
架构
基于 Spring Boot + Vue 前后端分离的内容管理系统
后端
- 核心框架:Spring Boot
- 安全框架:Spring Security
- Token 认证:jjwt
- 持久层框架:MyBatis
- 分页插件:PageHelper
- NoSQL缓存:Redis
- Markdown 转 HTML:commonmark-java
- 离线 IP 地址库:ip2region
- 后台 CMS 部分基于 vue-admin-template
- UI 框架为 Element UI
基于 JDK8 开发,8以上要添加依赖:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
目录结构
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
快速运行
MySQL JDK1.8或以上 Maven Nodejs 微信开发者工具
- Mysql创建数据库:IceCMS,执行/sql/IceCMS.sql初始化
- 修改配置文件IceCMS-main/src/main/resources/application.yml
- 配置Redis,不使用也可以
- 启动iceCMS-main管理后台的后端服务
运行前端(进入iceCMS-vues目录)
# 克隆项目 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
- 运行uniapp(HbuilderX中打开IceWK-uniApp)
部署
前端部署
# 构建测试环境
npm run build:stage
# 构建生产环境
npm run build:prod
后端部署
打开命令行,输入以下命令
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部署
# 未安装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:按顺序执行
- 运行Mysql容器
docker run -d -p 0:3389 \
--name ice-sql \
--restart always \
thecosy/icemysql:v2.2.0
- 运行Spring容器
docker run -d -p 8181:8181 \
--name ice-api \
--restart always \
--link ice-sql:db \
thecosy/icecms:v2.2.0
- 运行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 安全性
总体上来说还不错,只不过有些细节待优化完善,不过供个人学习研究足够了
发表评论