前置工作
先克隆仓库:
git clone https://github.com/nagisa77/OpenIsle.git cd OpenIsle
- 后端开发环境
- JDK 17+
- 前端开发环境
- Node.JS 20+
前端极速调试(Docker 全量环境)
想要最快速地同时体验前端和后端,可直接使用仓库提供的 Docker Compose。该方案会一次性拉起数据库、消息队列、搜索、后端、WebSocket 以及前端 Dev Server,适合需要全链路联调的场景。
-
准备环境变量文件:
cp .env.example .env.env.example是模板,可在.env中按需覆盖如端口、密钥等配置。确保NUXT_PUBLIC_API_BASE_URL、NUXT_PUBLIC_WEBSOCKET_URL等仍指向localhost,方便前端直接访问容器映射端口。 -
启动 Dev Profile:
docker compose \ -f docker/docker-compose.yaml \ --env-file .env \ --profile dev builddocker compose \ -f docker/docker-compose.yaml \ --env-file .env \ --profile dev up -d该命令会创建名为
frontend_dev的容器并运行npm run dev,浏览器访问 http://127.0.0.1:3000 即可查看页面。修改代码后,可以强制重新创建所有容器,执行:
docker compose \ -f docker/docker-compose.yaml \ --env-file .env \ --profile dev up -d --force-recreate -
查看服务状态:
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 --profile dev down
如需自定义 Node 依赖缓存、数据库持久化等,可参考 docker/docker-compose.yaml 中各卷的定义进行调整。
启动后端服务
启动后端服务有多种方式,选择一种即可。
[!IMPORTANT]
仅想修改前端的朋友可不用部署后端服务。转到 启动前端服务 章节。
本地 IDEA
cd backend/
IDEA 打开 backend/ 文件夹。
配置环境变量
- 在 IDEA 中配置「Environment file」:将
Run/Debug Configuration的Environment variables指向刚刚复制的.env,即可让 IDE 读取该文件。 - 需要调整端口或功能开关时,优先修改
.env,例如:SERVER_PORT=8081 LOG_LEVEL=DEBUG
也可以修改 src/main/resources/application.properties,但该文件会被 Git 追踪,通常不推荐。

配置 IDEA 参数
- 设置 JDK 版本为 Java 17。
- 设置 VM Option,最好运行在其他端口(例如
8081)。若已经在open-isle.env中调整端口,可省略此步骤。-Dserver.port=8081


完成环境变量和运行参数设置后,即可启动 Spring Boot 应用。

前端连接预发或正式环境
前端默认读取 .env 中的接口地址,可通过修改以下变量快速切换到预发或正式环境:
-
按需覆盖关键变量:
NUXT_PUBLIC_API_BASE_URL=https://www.staging.open-isle.com NUXT_PUBLIC_WEBSOCKET_URL=https://www.staging.open-isle.com将
staging替换为www即可连接正式环境。其他变量(如 OAuth Client ID、站点地址等)可根据需求调整。
其他配置
配置第三方登录以GitHub为例
-
修改
application.properties配置
-
修改
.env配置
-
配置第三方登录回调地址


配置Resend邮箱服务
https://resend.com/emails 创建账号并登录
Domains->Add Domain

- 填写域名

- 等待一段时间后解析成功,创建 key
API Keys->Create API Key,输入名称,设置Permission为Sending access
Key 只能查看一次,务必保存下来



- 修改
.env配置中的RESEND_API_KEY和RESEND_FROM_EMAIL
RESEND_FROM_EMAIL: noreply@域名
RESEND_API_KEY:刚刚复制的 Key

API文档
OpenAPI文档
部署时间线以及文档时效性
我已经将API Docs的部署融合进本站CI & CD中,目前如下
- 每次合入main之后,都会构建预发环境 http://staging.open-isle.com/ ,现在文档是紧随其后进行部署,也就是说代码合入main之后,如果是新增后台接口,就可以立即通过OpenAPI文档页面进行查看和调试,但是如果想通过OpenAPI调试需要选择预发环境的
- 每日凌晨三点会构建并重新部署正式环境,届时当日合入main的新后台API也可以通过OpenAPI文档页面调试

👆如图是合入main之后构建预发+docs的情形,总大约耗时4分钟左右
OpenAPI文档使用
- 预发环境/正式环境切换,以通过如下位置切换API环境

- API分两种,一种是需要鉴权(需登录后的token),另一种是直接访问,可以直接访问的GET请求,直接点击Send即可调试,如下👇,比如本站的推荐流rss: /api/rss: https://docs.open-isle.com/openapi/feed

- 需要登陆的API,比如关注,取消关注,发帖等,则需要提供token,目前在“API与调试”可获取自身token,可点击link看看👉 https://www.open-isle.com/about?tab=api

copy完token之后,粘贴到Bear之后, 即可发送调试, 如下👇,大家亦可自行尝试:https://docs.open-isle.com/openapi/me

OpenAPI文档应用场景
- 方便大部分前端调试的需求,如果有只想做前端/客户端的同学参与本项目,该平台会大大提高效率
- 自动化:有自动化发帖/自动化操作的需求,亦可通过该平台实现或调试
- API文档: https://docs.open-isle.com/openapi
