{"id":14973004,"url":"https://github.com/thecosy/icecms","last_synced_at":"2025-05-14T12:10:31.849Z","repository":{"id":60322006,"uuid":"471867001","full_name":"Thecosy/IceCMS","owner":"Thecosy","description":"🌈冰激凌内容管理系统🍦,实现MacWK资源站，社区图片视频圈子CMS，支持网页端移动端小程序🌟适合做 资讯商城，社区论坛，聊天交友 社区，博客，圈子，论坛，图片，视频，社交。","archived":false,"fork":false,"pushed_at":"2025-02-17T13:58:23.000Z","size":221918,"stargazers_count":1757,"open_issues_count":15,"forks_count":258,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-11T18:19:19.842Z","etag":null,"topics":["java","mybatis","shiro","spring-boot","springboot","uniapp","vue"],"latest_commit_sha":null,"homepage":"https://www.icecms.cn","language":"PLpgSQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Thecosy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-20T03:13:35.000Z","updated_at":"2025-04-11T00:42:56.000Z","dependencies_parsed_at":"2025-02-27T20:22:28.914Z","dependency_job_id":"c065758c-9cad-4bbe-82ce-e7b59a920d26","html_url":"https://github.com/Thecosy/IceCMS","commit_stats":{"total_commits":151,"total_committers":3,"mean_commits":"50.333333333333336","dds":0.1589403973509934,"last_synced_commit":"3d1de84c70c9c29662befba99fdf65d824a6be22"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thecosy%2FIceCMS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thecosy%2FIceCMS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thecosy%2FIceCMS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thecosy%2FIceCMS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thecosy","download_url":"https://codeload.github.com/Thecosy/IceCMS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140766,"owners_count":22021220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","mybatis","shiro","spring-boot","springboot","uniapp","vue"],"created_at":"2024-09-24T13:47:55.478Z","updated_at":"2025-05-14T12:10:31.793Z","avatar_url":"https://github.com/Thecosy.png","language":"PLpgSQL","readme":"简体中文 | [English](README_en.md)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.icecmspro.com\" target=\"_blank\"\u003e\n    \u003cimg alt=\"logo\" style=\"height: 120px\" src=\"https://res.cloudinary.com/dxl1idlr5/image/upload/v1700470902/logo_s4maqv.svg\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e  \n\n \u003cp align=\"center\"\u003e\n\t\u003cimg style=\"padding: 4px;\" alt=\"Label\" src=\"https://img.shields.io/badge/JDK-1.8+-orange\"\u003e\n\t\u003cimg style=\"padding: 4px;\" alt=\"Label\" src=\"https://img.shields.io/badge/SpringBoot-2.2.7.RELEASE-brightgreen\"\u003e\n\t\u003cimg style=\"padding: 4px;\" alt=\"Label\" src=\"https://img.shields.io/badge/MyBatis-3.5.5-red\"\u003e\n\t\u003cimg style=\"padding: 4px;\" alt=\"Label\" src=\"https://img.shields.io/badge/Vue-2.6.11-brightgreen\"\u003e\n\t\u003cimg style=\"padding: 4px;\" alt=\"Label\" src=\"https://img.shields.io/badge/license-MIT-blue\"\u003e\n\t\u003cimg style=\"padding: 4px;\" alt=\"Label\" src=\"https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FNaccl%2FNBlog\u0026count_bg=%2344CC11\u0026title_bg=%23555555\u0026icon=notist.svg\u0026icon_color=%231296DB\u0026title=hits\u0026edge_flat=false\"\u003e\n\u003c/p\u003e\n\n\n## 简介\n\n基于 Spring Boot + Vue 前后端分离的内容管理系统\n\n演示: （[www.icecmspro.com](https://www.icecmspro.com/)）\n后台:（[admin.icecmspro.com](https://admin.icecmspro.com/)）\n\n官网: （[www.icecms.cn](https://doc.icecms.cn)）\n\nIceCMS 文档： （[http://www.icecms.cn](https://www.icecms.cn)）\n\n内容管理：文章、图片、资源等多种类型的内容管理；\n\n栏目管理：自定义栏目，对栏目进行增删改查等操作；\n\n用户管理：管理后台用户，包括添加、删除、修改、权限分配等功能；\n\n数据统计：对网站访问量、用户行为等进行统计分析；\n\n模板管理：自定义网站模板，方便快速搭建网站；\n\nSEO优化：网站标题、关键词、描述等SEO优化功能。\n\n## 预览地址：\n\n前台：[www.icecmspro.com](https://www.icecmspro.com)\n\nuniapp移动端：[uni.icecmspro.com](https://m.www.icecmspro.com)\n\n后台：[admin.icecmspro.com](https://admin.icecmspro.com) 账号`admin`密码`admin123`\n\nAPI文档：[api.icecmspro.com/doc.html](https://api.icecmspro.com/doc.html)\n\n## PC端\n\u003cdiv class = \"half\"\u003e\n  \u003cimg alt=\"describe\" src = \"https://res.cloudinary.com/dxl1idlr5/image/upload/v1689828922/63d19ee5a6c55_xu7ex3.png\"  width = \"50%\"\u003e\n    \u003cimg alt=\"describe\" src = \"https://res.cloudinary.com/dxl1idlr5/image/upload/v1689829049/63d19ee456c4b_fhibyf.png\"  width = \"50%\"\u003e\n\u003c/div\u003e\n\u003cdiv class = \"half\"\u003e\n  \u003cimg alt=\"describe\" src = \"https://res.cloudinary.com/dxl1idlr5/image/upload/v1689829099/63d19ee6e070e_meudqj.png\"  width = \"50%\"\u003e\n    \u003cimg alt=\"describe\" src = \"https://res.cloudinary.com/dxl1idlr5/image/upload/v1689829121/63d19ee4b609d_pt54fj.png\"  width = \"50%\"\u003e\n\u003c/div\u003e\n\n\n## 后台\n\u003cdiv class = \"half\"\u003e\n  \u003cimg alt=\"describe\" src = \"https://res.cloudinary.com/dxl1idlr5/image/upload/v1710237058/Screenshot_2024-03-12_at_17.48.51_el9tcs.png\"  width = \"50%\"\u003e\n    \u003cimg alt=\"describe\" src = \"https://res.cloudinary.com/dxl1idlr5/image/upload/v1710237057/Screenshot_2024-03-12_at_17.49.02_eioj84.png\"  width = \"50%\"\u003e\n\n\u003c/div\u003e\n\u003cdiv class = \"half\"\u003e\n  \u003cimg alt=\"describe\" src = \"https://res.cloudinary.com/dxl1idlr5/image/upload/v1710237060/Screenshot_2024-03-12_at_17.49.12_x7aotb.png\"  width = \"50%\"\u003e\n\u003c/div\u003e\n\n\n## UniApp H5、小程序移动端\n\u003cimg alt=\"describe\" src=\"https://i0.hdslb.com/bfs/album/354a1caa29bfd8bc9571be67b18db13227bea80f.png\" width=\"280\" height=\"405\"\u003e\n\n\n## 后端\n\n1. 核心框架：[Spring Boot](https://github.com/spring-projects/spring-boot)\n2. 安全框架：[Spring Security](https://github.com/spring-projects/spring-security)\n3. Token 认证：[jjwt](https://github.com/jwtk/jjwt)\n4. 持久层框架：[MyBatis](https://github.com/mybatis/spring-boot-starter)\n5. 分页插件：[PageHelper](https://github.com/pagehelper/Mybatis-PageHelper)\n6. NoSQL缓存：[Redis](https://github.com/redis/redis)\n7. Markdown 转 HTML：[commonmark-java](https://github.com/commonmark/commonmark-java)\n8. 离线 IP 地址库：[ip2region](https://github.com/lionsoul2014/ip2region)\n\n基于 JDK8 开发，8以上要添加依赖：\n\n  ```xml\n  \u003cdependency\u003e\n  \u003cgroupId\u003ejavax.xml.bind\u003c/groupId\u003e\n  \u003cartifactId\u003ejaxb-api\u003c/artifactId\u003e\n  \u003cversion\u003e2.3.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## 前端\n\n核心框架：Vue2.x、Vue Router、Vuex\n\nVue 项目基于 @vue/cli4.x 构建\n\nJS 依赖及参考的 css：[axios](https://github.com/axios/axios)、[moment](https://github.com/moment/moment)、[nprogress](https://github.com/rstacruz/nprogress)、[v-viewer](https://github.com/fengyuanchen/viewerjs)、[prismjs](https://github.com/PrismJS/prism)、[APlayer](https://github.com/DIYgod/APlayer)、[MetingJS](https://github.com/metowolf/MetingJS)、[lodash](https://github.com/lodash/lodash)、[mavonEditor](https://github.com/hinesboy/mavonEditor)、[echarts](https://github.com/apache/echarts)、[tocbot](https://github.com/tscanlin/tocbot)、[iCSS](https://github.com/chokcoco/iCSS)\n\n### 后台 UI\n\n后台 CMS 部分基于 [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template)\n\nUI 框架为 [Element UI](https://github.com/ElemeFE/element)\n\n\n### 前台 UI\n\n[Element UI](https://github.com/ElemeFE/element)：部分使用，一些小组件，更改了ui样式，便于快速实现效果\n\n\n## 最近更新\n\n增加标签功能\n\n完善部分ui\n\ndocker 前端部署方式\n\ndocker compose 一键部署\n\n\n# 快速开始\nDocker部署方式(推荐,可用于快速上线或测试)\n\n    # 未安装docker的请先安装docker，已经安装的跳过此步\n    yum install docker-ce -y\n    #启动docker\n    systemctl start docker\n    # 配置国内源\n    # 创建docker目录\n    sudo mkdir -p /etc/docker\n    # 创建配置文件\n    sudo tee /etc/docker/daemon.json \u003c\u003c-'EOF'\n    {\n    \"registry-mirrors\": [\"https://mirror.ccs.tencentyun.com\"]\n    }\n    EOF\n    # 加载新的配置文件\n    sudo systemctl daemon-reload\n    # 重启docker服务\n    sudo systemctl restart docker\n    \n    main-命令执行\n    Ps:按顺序执行\n\n    1.运行Mysql容器\n    docker run -d -p 0:3389 \\\n    --name ice-sql \\\n    --restart always \\\n    thecosy/icemysql:v2.2.0\n    \n    2.运行Spring容器\n    docker run -d -p 8181:8181 \\\n    --name ice-api \\\n    --restart always \\\n    --link ice-sql:db \\\n    thecosy/icecms:v2.2.0\n    \n    3.运行Vue容器\n    docker run -d -p 3000:80 \\\n    --name ice-vue \\\n    --restart always \\\n    --link  ice-api:iceApi \\\n    thecosy/icevue:v2.2.0\n    \n    #访问前端地址http://ip:3000\n\n## 目录结构\n    iceCMS/\n    ├── HELP.md\n    ├── IceCMS-java.iml\n    ├── IceCMS-main             --java主程序启动入口\n    │   ├── IceCMS-main.iml\n    │   ├── main.iml\n    │   ├── pom.xml\n    │   ├── src\n    │   └── target\n    ├── IcePay-ment             --java支付模块\n    │   ├── IcePay-ment.iml\n    │   ├── pom.xml\n    │   ├── src\n    │   └── target\n    ├── IceWk-ment              --java前端api模块\n    │   ├── IceWk-ment.iml\n    │   ├── pom.xml\n    │   ├── src\n    │   └── target\n    ├── IceWk-uniApp            --h5Uniapp模块\n    │   ├── App.vue\n    │   ├── LICENSE\n    │   ├── components\n    │   ├── main.js\n    │   ├── manifest.json\n    │   ├── nPro\n    │   ├── package-lock.json\n    │   ├── package.json\n    │   ├── pages\n    │   ├── pages.json\n    │   ├── static\n    │   ├── store\n    │   ├── subPage\n    │   ├── template.h5.html\n    │   ├── theme\n    │   ├── uni.scss\n    │   ├── uni_modules\n    │   ├── utils\n    │   └── vue.config.js\n    ├── IceWk-vues                --前端vue模块\n    │   ├── LICENSE\n    │   ├── README.md\n    │   ├── babel.config.js\n    │   ├── build\n    │   ├── dist\n    │   ├── jest.config.js\n    │   ├── jsconfig.json\n    │   ├── node_modules\n    │   ├── package-lock.json\n    │   ├── package.json\n    │   ├── postcss.config.js\n    │   ├── public\n    │   ├── serverless.yml\n    │   ├── src\n    │   ├── vue.config.js\n    │   └── yarn.lock\n    ├── README.md\n    ├── bin\n    │   ├── clean.bat\n    │   ├── package.bat\n    │   └── run.bat\n    ├── doc\n    │   └── IceCMS环境使用手册.docx\n    ├── mvnw\n    ├── mvnw.cmd\n    ├── pom.xml\n    └── sql                        --项目sql文件\n    ├── icecms5.6.sql\n    └── icecms8.0.sql\n\n## \u003cstrong\u003e配置最小开发环境\u003c/strong\u003e\n\n1.环境配置\n\nMySQL\nJDK1.8或以上\nMaven\nNodejs\n微信开发者工具\n\n### \u003cstrong\u003e后端部署\u003c/strong\u003e\n\n2.创建 MySQL 数据库`IceCMS`，并执行`/sql/IceCMS.sql`初始化表数据\n\n3.启动iceCMS-main管理后台的后端服务\n\n3.1.修改配置信息`IceCMS-main/src/main/resources/application.yml`配置数据库连接\n\n3.2.安装 Redis 并启动(不用的话不影响)\n\n3.3.打开命令行，输入以下命令\n\n    cd iceCMS\n    mvn install\n    mvn clean package\n    java -Dfile.encoding=UTF-8 -jar iceCMS/iceCMS-main/target/iceCMS.jar\n    #在iceCMS.jar目录输入 java -jar iceCMS.jar\n\n### \u003cstrong\u003e前端部署\u003c/strong\u003e\n\n4.进入iceCMS-vues目录\n\n打开命令行，输入以下命令\n\n```bash\n# 克隆项目\ngit clone https://github.com/PanJiaChen/vue-admin-template.git\n\n# 进入项目目录\ncd IceWk-VUE\n\n# 安装依赖\nnpm install\n\n# 建议不要直接使用 cnpm 安装以来，会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题\nnpm install --legacy-peer-deps --registry=https://registry.npm.taobao.org\n# 启动服务\nnpm run dev\n```\n### 发布\n\n```bash\n# 构建测试环境\nnpm run build:stage\n\n# 构建生产环境\nnpm run build:prod\n```\n\n5.启动前端\n\n浏览器打开，访问 [http://localhost:9528](http://localhost:9528)\n, 此时进入前端页面。\n\n启动前端后台（后台地址http://localhost:9528/admin）\n\n6.启动uniapp移动端\n\n下载HBuilderX\n\n进入（[https://ext.dcloud.net.cn/plugin?id=9261](https://ext.dcloud.net.cn/plugin?id=9261)）uniapp移动端插件目录，点击导入，然后即可导入到本地。\n\n也可在本地打开IceCMS-uniapp项目\n\n打开`IceWK-uniApp`目录,进行编译打包\n\n## 注意事项\n\n一些常见问题：\n\n- MySQL 确保数据库字符集为`utf8mb4`的情况下通常没有问题（”站点设置“及”文章详情“等许多表字段需要`utf8mb4`格式字符集来支持 emoji 表情，否则在导入 sql 文件时，即使成功导入，也会有部分字段内容不完整，导致前端页面渲染数据时报错）\n- 确保 Maven 能够成功导入现版本依赖，请勿升级或降低依赖版本\n- 数据库中默认用户名密码为`root`，`123123`，因为是个人项目，没打算做修改密码的页面，可在`top.naccl.util.HashUtils`下的`main`方法手动生成密码存入数据库\n- 注意修改IceCMS-main目录下的`application-dev.properties`的配置信息\n  - Redis 若没有密码，留空即可\n  - 注意修改`token.secretKey`，否则无法保证 token 安全性\n\n[//]: # (  - `spring.mail.host`及`spring.mail.port`的默认配置为阿里云邮箱，其它邮箱服务商参考关键字`spring mail 服务器`（邮箱配置用于接收评论提醒）)\n\n\n\n[//]: # (## 隐藏功能)\n\n[//]: # ()\n[//]: # (- 在前台访问`/login`路径登录后，可以以博主身份（带有博主标识）回复评论，且不需要填写昵称和邮箱即可提交)\n\n[//]: # (- 在 Markdown 中加入`\u003cmeting-js server=\"netease\" type=\"song\" id=\"歌曲id\" theme=\"#25CCF7\"\u003e\u003c/meting-js\u003e` （注意以正文形式添加，而不是代码片段）可以在文章中添加 [APlayer]\u0026#40;https://github.com/DIYgod/APlayer\u0026#41; 音乐播放器，`netease`为网易云音乐，其它配置及具体用法参考 [MetingJS]\u0026#40;https://github.com/metowolf/MetingJS\u0026#41;)\n\n[//]: # (- 提供了两种隐藏文字效果：在 Markdown 中使用`@@`包住文字，文字会被渲染成“黑幕”效果，鼠标悬浮在上面时才会显示；使用`%%`包住文字，文字会被“蓝色覆盖层”遮盖，只有鼠标选中状态才会反色显示。例如：`@@隐藏文字@@`，`%%隐藏文字%%`)\n\n[//]: # (- 大部分个性化配置可以在后台“站点设置”中修改，小部分由于考虑到首屏加载速度（如首页大图）需要修改前端源码)\n\n\n## QQ交流群\n\nQQ交流群：（[951286996](https://qm.qq.com/cgi-bin/qm/qr?k=XLX0hSw6GGuOgNbC53r-Pc7Lrubwcm4q\u0026authKey=AaNuGPfAWTSyaN6MR5yGYFQ0+4AKsZQq7kI0uRASo+v5ttyrc6xvh7gfNEMQ7UDR\u0026noverify=0)）\n\nTg群组：[https://t.me/+1rau4SBwFyE1OTA1](https://t.me/+1rau4SBwFyE1OTA1）\n\n该群是一个学习交流群，如果是程序相关问题，请直接提交issues\n\n## 软著\n\n\u003cdiv class = \"half\"\u003e\n  \u003cimg alt=\"describe\" style=\"width:420px\" src = \"https://res.cloudinary.com/dxl1idlr5/image/upload/v1689829207/%E7%99%BB%E8%AE%B0%E8%AF%81%E4%B9%A6_2023R11L0135975__mosaic_wgmw6p.jpg\"  width = \"50%\"\u003e\n\u003c/div\u003e\n\n## 开源协议\nGPL-3.0 license © pipipi-pikachu\n\n## 商业用途\n* 如果你希望将本项目商用盈利，我希望你能严格遵循 GPL-3.0 协议；\n* 如果你真的需要闭源商用，无法执行 GPL-3.0 协议，可以选择：\n* 成为项目的贡献者，大致包括：\n* 你的代码被本项目作为依赖引用；\n* 你提交的 PR 被本项目合并（仅限有价值的，不包括简单的错别字或拼写错误修改等）；\n* 你参与过本项目的设计、实现（也包括对各种功能/模块的实现或Bug的修复提供了有价值的思路）；\n* 联系作者付费商用\n\n\n## Thanks\n\n感谢 [JetBrains](https://www.jetbrains.com/) 提供的非商业开源软件 License\n\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Thecosy/IceCMS\u0026type=Date)](https://star-history.com/#Thecosy/IceCMS\u0026Date)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecosy%2Ficecms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecosy%2Ficecms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecosy%2Ficecms/lists"}