项目源码|OpenIsle 开源社区平台|Spring Boot + Vue 3 · Docker

项目源码|OpenIsle 开源社区平台|Spring Boot + Vue 3 · Docker-远影归灯
项目源码|OpenIsle 开源社区平台|Spring Boot + Vue 3 · Docker
此内容为付费资源,请付费后查看
80积分
付费资源

想做一套能看、能玩的社区/论坛,又不想只改通用后台模板的增删改查?OpenIsle 是面向社区站点的前后端分离项目:用户可以登录、发帖、写嵌套评论、点赞,也有分类标签、消息通知、私信聊天和积分。它更像一个可自托管的小型技术社区,而不是又一套 RBAC 中后台。

适合拿来做「社区论坛/社交站点/内容互动平台」一类课设或二次开发:前台信息流适合截图,业务闭环也完整——登录、发帖、评论、看主页、改设置都能当场演示。后端 Spring Boot,前端 Vue 3(Nuxt);本机用 Docker Compose 把 MySQL、Redis、RabbitMQ、后端、WebSocket 和前端一起拉起来即可。站内资源页提供源码包,积分约 80(以站内为准)。

能做什么

  • 社区信息流:登录后看首页动态,按分类/标签筛选
  • 发帖与评论:选分类/标签发帖,详情页支持嵌套评论与互动
  • 消息与活动:私信聊天、活动/通知页
  • 个人中心:用户主页、个人设置、积分页
  • 关于/统计:站点介绍与基础统计

相对「只有用户表 + 帖子表」的课设,本文更强调前台社区闭环:信息流、发帖评论、私信与积分都能在本机串成可截图链路。

技术栈一览

层级 技术
后端 Java 17、Spring Boot、JPA、JWT
前端 Vue 3、Nuxt、Node 20
数据/中间件 MySQL 8、Redis 7、RabbitMQ
实时 独立 WebSocket 服务
编排 Docker Compose(dev profile)

本机能看到什么

以下截图全部来自本机 http://127.0.0.1:3000,不是官方演示站。种子数据带有测试分类/标签,但没有示例帖——登录后需先发一篇纯文本测试帖,再截信息流与详情。图片上传默认走腾讯云 COS,没配 Key 就不要演示插图。

登录页
登录页 /login
注册页
注册页 /signup(默认白名单模式,演示请用种子账号,勿卡在注册)
社区首页信息流
登录后社区首页信息流 /
发帖页
发帖页 /new-post(选测试分类/标签,纯文本即可)
帖文详情与嵌套评论
帖文详情与嵌套评论 /posts/{id}
分类或标签筛选
分类或标签筛选后的列表
消息私信页
消息/私信页 /message(可用 admin 与 user1 互发一条)
活动通知页
活动/通知页 /activities
用户主页
用户主页 /users/1(admin)
个人设置
个人设置 /settings
积分页
积分页 /points
关于页
关于页 /about(或统计 /about/stats)

Docker Compose 怎么跑

建议可用内存 ≥ 6 GiB(MySQL + Redis + RabbitMQ + 两个 Java 应用 + Node)。本机需 Docker/Docker Compose;走 dev profile 时 Java 与 Node 都在容器里跑,宿主机主要准备 Docker 即可。

  1. 解压源码包,进入项目根目录(含 docker/docker-compose.yaml、.env.example)。
  2. 复制并编辑环境文件:
cp .env.example .env
  1. 务必在 .env 增补(或确认):
SEARCH_ENABLED=false

说明:Compose 里 OpenSearch 整段已被注释,但后端默认仍可能去连 opensearch:9200;只改 OPENSEARCH_ENABLED 无效,要改的是 SEARCH_ENABLED。

  1. 保持本机 URL,不要改成外部演示域名:
NUXT_PUBLIC_API_BASE_URL=http://localhost:8080
NUXT_PUBLIC_WEBSOCKET_URL=http://localhost:8082
NUXT_PUBLIC_WEBSITE_BASE_URL=http://localhost:3000
WEBSITE_URL=http://localhost:3000
  1. 启动(常规写法):
docker compose \
  -f docker/docker-compose.yaml \
  --env-file .env \
  --profile dev up -d

本机若遇 Docker bridge/容器互访受限,可改用 host 网络覆盖文件再起(一笔带过;多数读者按上面常规 Compose 即可)。

  1. 浏览器打开 http://127.0.0.1:3000。健康检查:http://localhost:8080/actuator/health。看状态与日志:
docker compose -f docker/docker-compose.yaml --env-file .env ps
docker compose -f docker/docker-compose.yaml --env-file .env logs -f frontend_dev
docker compose -f docker/docker-compose.yaml --env-file .env logs -f springboot

端口一览

服务 地址
前端 http://127.0.0.1:3000
后端 API http://localhost:8080
WebSocket http://localhost:8082
MySQL 3306(库/账号/密码均为 openisle)
Redis 6379
RabbitMQ 5672,管理台 15672

端口冲突时改 .env 对应变量即可。

演示账号

默认 REGISTER_MODE=WHITELIST,公开注册走白名单/审核——不要卡在注册页。直接用种子账号(密码均为弱口令 123456,截图请打码):

  • admin(ADMIN)
  • user1(普通用户)
  • user2(普通用户)

默认 POST_PUBLISH_MODE=DIRECT,测试帖会直接发布,方便截图。登录后先发一篇纯文本帖,再截详情、评论和首页信息流。

首次启动注意

dev profile 会在容器内 apt-get、Maven 编译和 npm install,首次很久,且依赖外网(Maven Central/npm;国内可提前配镜像加速)。后端 healthcheck 的 start_period 偏短,第一次容易显示「不健康」——请看日志等到 Started、前端就绪后再截图,不要误判失败后去截官方站。

初始化 SQL 只在 MySQL 数据卷首次创建时执行;要重新灌种子需 docker compose ... --profile dev down -v(会清空数据卷)。

实测踩坑

  1. 必须 SEARCH_ENABLED=false
    Compose 已关 OpenSearch;只改 OPENSEARCH_ENABLED 读不到,后端仍可能连搜索节点。
  2. 默认白名单注册
    演示用 admin/user1/user2,别在注册页空耗。
  3. 无示例帖 + 无 COS
    种子只有分类/标签;发纯文本帖即可演示信息流与评论。没配腾讯云 COS 时插图/上传可能失败。
  4. 首次编译假不健康
    看 springboot/frontend_dev 日志等 Started,而不是只盯 healthcheck 红灯。
  5. 外网可选能力可跳过
    Google/GitHub 等 OAuth、Resend 邮箱、OpenAI Markdown 润色、WebPush 都不是本地闭环必需;密码登录即可。
  6. 弱口令与占位 JWT
    库口令、RabbitMQ、JWT 默认都是演示值,演示后立刻改,勿原样上公网。

安全与合规提醒

  • 默认弱口令:演示账号、数据库、消息队列、JWT 占位密钥均偏弱;截图打码,切勿裸奔公网
  • 生产或公网场景:强密码、反代 + HTTPS、收紧端口暴露面
  • 协议为 MIT:自用与写教程通常没问题;再分发请保留 LICENSE 与版权声明
  • 本帖截图均来自本机 http://127.0.0.1:3000,不是官方/预发演示站
  • COS/OAuth/邮件/AI 润色等第三方能力未配置时不要强行演示

小结

若你需要一份「社区前台 + 发帖评论 + 私信积分 + Docker 一键」的课设素材,OpenIsle 的主界面是信息流与互动,而不是再套一层中后台权限脚手架。按「复制 .env → 关闭搜索 → Compose 启动 → 种子账号登录 → 发纯文本测试帖」验收即可。要上公网请自行做安全加固;本文定位就是本机练手与答辩演示。

源码压缩包可在本文下载,需 80 积分。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容