Files
mce/README.md

122 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p align="center">
<img src="https://img.shields.io/badge/Go-1.26-00ADD8?style=flat-square&logo=go" alt="Go 1.26">
<img src="https://img.shields.io/badge/Gin-1.12-0096D6?style=flat-square&logo=go" alt="Gin 1.12">
<img src="https://img.shields.io/badge/GORM-1.31-7A6F5D?style=flat-square" alt="GORM 1.31">
<img src="https://img.shields.io/badge/PostgreSQL-16-4169E1?style=flat-square&logo=postgresql&logoColor=white" alt="PostgreSQL">
<img src="https://img.shields.io/badge/Redis-7-DC382D?style=flat-square&logo=redis&logoColor=white" alt="Redis">
<img src="https://img.shields.io/badge/license-AGPL--3.0-blue?style=flat-square" alt="AGPL 3.0">
</p>
<h1 align="center">MetaZone Community Engine</h1>
<p align="center"><strong>MCE</strong> — 下一代开源社区引擎,为 BBS 3.0 而生</p>
---
## 关于项目
MCE 是 **MetaZone Community Engine** 的缩写,是 MetaZone 品牌下的社区平台核心引擎。构建于 **MetaGenesis** 体系之上,定位为通用型社区/BBS 平台,面向下一个十年。
**核心理念:**
- 🌊 **流式社区**——告别传统板块制,内容以信息流自然流动
- 🤝 **平等参与**——去中心化讨论,每个成员权利平等
- 🧩 **模块可组装**——MetaGenesis 框架层提供通用基础能力,引擎层专注社区体验
- 🔓 **开放共享**——AGPL 开源,鼓励二次开发与生态共建
## 技术栈
| 类别 | 技术 | 版本 |
|------|------|------|
| 语言 | **Go** | 1.26 |
| Web 框架 | **Gin** | 1.12 |
| ORM | **GORM** | 1.31 |
| 数据库 | **PostgreSQL** | 16+ |
| 缓存 | **Redis** | 7+ |
| 密码加密 | **bcrypt** (cost=12) | — |
| 编辑器 | **Tiptap** (WYSIWYG) | — |
| 前端 | **SSR 模板** (Gin HTML) + 原生 JS/CSS | — |
| 架构 | 分层架构 (Controller → Service → Repository) | — |
## 当前功能
-**用户系统**——注册、登录、登出,会话管理
-**安全认证**——CSRF 保护、速率限制(账户 + IP、安全响应头
-**管理后台**——用户管理、角色权限控制、审核面板
-**账号注销**——用户自助注销7 天冷却期,登录二次确认恢复),站长禁止自删
-**密码修改**——修改后强制所有设备退登
-**IP 审计**——记录注册 IP、最后登录 IP 及时间
-**用户设置页**——个人资料修改(用户名、个性签名、头像上传与裁切)
-**头像处理**——JPEG/PNG/WebP 上传方形裁切512×512 WebP 编码
-**消息中心**——通知推送SSR 消息页面,已读/未读管理,未读数角标
-**@提及系统**——@用户搜索、通知推送、通知点击定位高亮
-**用户空间**——个人主页 `/space/:uid`,关注/取关,关注列表
-**帖子系统**——Markdown 发布/编辑/删除Tiptap 所见即所得编辑器
-**代码高亮**——highlight.js 60+ 主题,支持 30+ 编程语言
-**Shortcode 卡片**——`[zone:event:ID]` 活动/游戏/投票/资源等可扩展卡片
-**草稿自动保存**——localStorage 草稿,自动保存
-**审核工作流**——帖子 draft → pending → approved/rejected
-**多主题支持**——可切换的前端主题系统
-**赋值(赋能)系统**——社区互动激励,赋能溢出截断 + 防自赋能
-**收藏功能**——文章收藏,收藏夹管理
## 计划中
- 🔲 话题/分类导航
- 🔲 评论系统
- 🔲 邮箱验证
- 🔲 全文搜索
- 🔲 回收站(用户数据彻底清理)
- 🔲 Redis 会话 & 缓存层深度集成
## 快速开始
```bash
# 克隆仓库
git clone git@git.metazone.cc:MetaZone/mce.git
cd mce
# 配置数据库和 Redis
cp .env.example .env
# 编辑 .env 填入 PostgreSQL 和 Redis 连接信息
# 运行
go run cmd/server/main.go
```
启动后访问 `http://localhost:8080`
## 项目结构
```
mce/
├── cmd/server/ # 入口:初始化 → 启动
├── internal/
│ ├── config/ # 配置加载YAML + .env
│ ├── router/ # 路由注册
│ ├── controller/ # 控制器(参数绑定 → 调服务 → 返回)
│ ├── service/ # 业务逻辑层
│ ├── repository/ # 数据访问层DAO
│ ├── model/ # 数据模型 + DTO
│ ├── middleware/ # 中间件(认证/CSRF/限流/安全)
│ ├── common/ # 公共工具(响应/分页/加密)
│ └── theme/ # 主题/模板管理
├── templates/ # 前端模板(多主题)
│ ├── MetaLab-2026/ # 前台主题
│ └── admin/ # 后台模板
└── docs/ # 开发文档
```
## 许可
本项目采用 **[GNU Affero General Public License v3.0 (AGPL-3.0)](https://www.gnu.org/licenses/agpl-3.0.html)** 许可。
**社区版**AGPL-3.0):可自由使用、修改、分发,但修改后通过网络提供服务时必须公开源码。
**商业授权**:如需闭源部署、私有化修改或商业技术支持,请联系 [metazone@foxmail.com](mailto:metazone@foxmail.com) 获取商业授权。
---
<p align="center">
<sub>Built on <a href="#">MetaGenesis</a> | &copy; 2024-2026 <a href="https://metazone.cc">MetaZone</a></sub>
</p>