2025-07-04 16:04:40 +08:00
2025-07-02 18:17:32 +08:00
2025-07-02 21:09:20 +08:00
2025-07-01 10:18:53 +08:00
2025-07-02 14:18:30 +08:00

OpenIsle

高效的开源社区后端平台

💡 简介

OpenIsle 基于 Spring Boot 构建,提供社区后台常见的注册、登录、文章与评论等能力,适合用作二次开发的起点,完全开源。

动机

  • 下一代的可扩展的社区或论坛应用
  • 提供清晰的代码示例和简单易懂的配置

特性

  • 用户体系:注册、登录,密码使用 BCrypt 加密
  • JWT 认证:登录后获得 Token接口通过 Authorization: Bearer 认证
  • 邮件通知:抽象 EmailSender,默认实现基于 Resend
  • 角色权限:内置 ADMINUSER,管理员接口以 /api/admin/** 提供
  • 文章与评论:支持分类、评论及多级回复
  • 标签管理:普通用户只能查看标签,创建或删除仅限管理员
  • 图片上传ImageUploader 可接入不同云存储,示例中实现了腾讯云 COS
  • 灵活配置:数据库、邮件、存储及密码强度均可通过环境变量或 application.properties 设置
  • 简洁架构:业务、持久化与安全配置清晰分层,便于扩展

🚀 快速开始

环境要求

  • Java 17+
  • Maven 3+
  • MySQL 数据库

运行

  1. 按需修改 src/main/resources/application.properties 或设置以下环境变量:
    • MYSQL_URL:数据库连接 URLjdbc:mysql://localhost:3306/openisle
    • MYSQL_USER:数据库用户名
    • MYSQL_PASSWORD:数据库密码
    • RESEND_API_KEYResend 邮件服务 API Key
    • COS_BASE_URL:腾讯云 COS 访问域名
    • JWT_SECRETJWT 签名密钥
    • JWT_EXPIRATIONJWT 过期时间(毫秒)
    • PASSWORD_STRENGTH密码强度LOW、MEDIUM、HIGH
    • CAPTCHA_ENABLED是否启用验证码true/false
    • RECAPTCHA_SECRET_KEYGoogle reCAPTCHA 密钥
    • CAPTCHA_REGISTER_ENABLED:注册是否需要验证码
    • CAPTCHA_LOGIN_ENABLED:登录是否需要验证码
    • CAPTCHA_POST_ENABLED:发帖是否需要验证码
    • CAPTCHA_COMMENT_ENABLED:评论是否需要验证码
  2. 启动项目:
mvn spring-boot:run

启动后可访问主要接口:

  • POST /api/auth/register:注册新用户
  • POST /api/auth/login:登录并获取 Token
  • GET /api/config:查看验证码开关配置
  • 需要认证的接口示例:GET /api/hello(需 Authorization 头)
  • 管理员接口示例:GET /api/admin/hello

🏘️ 社区

欢迎通过 Issues 交流反馈。

📄 授权

本项目以 MIT License 发布,欢迎自由使用与修改。

🙏 鸣谢

Description
完全开源的社区平台
Readme MIT 58 MiB
Languages
Java 52.9%
Vue 34.1%
JavaScript 5.5%
Python 4.1%
TypeScript 2.1%
Other 1.3%