This repository has been archived on 2026-06-21. You can view files and clone it, but cannot push or open issues or pull requests.

Go 1.26 Gin 1.12 GORM 1.31 PostgreSQL AGPL 3.0 status

MetaLab

下一代开源技术社区——为构建者准备的纯粹空间


关于项目

MetaLab 是一个正在开发中的开源技术社区平台,旨在为开发者提供一个平等、纯粹、开放的技术交流空间。

当前状态:开发已暂停

⚠️ 暂停说明

本项目自 2026 年 5 月起暂停开发。主要原因:

  • 编辑器集成问题未解决——作为技术社区的核心功能,尝试了多种富文本/Markdown 编辑器方案,在 SSR + 原生 JS 架构下均无法实现满意的集成效果
  • 优先保证社区上线——经评估,社区早日上线运行的价值高于自建所有基础设施,决定先采用 FlarumMIT 协议)作为社区平台

本仓库代码保留,后续可能继续开发。

核心理念:

  • 🎯 专注技术——代码、架构、逻辑与可验证的事实
  • 🤝 平等交流——没有特权,每个成员权利平等
  • 🔓 开放共享——鼓励开源、协作与知识共享

技术栈

类别 技术 版本
语言 Go 1.26
Web 框架 Gin 1.12
ORM GORM 1.31
数据库 PostgreSQL 16+
认证 JWT (HS256) v5
密码加密 bcrypt (cost=12)
配置 Viper 1.21
前端 SSR 模板 (Gin HTML) + 原生 JS/CSS
架构 分层六边形架构

当前功能

  • 用户系统——注册、登录、登出
  • 双 Token 认证——Access Token15min+ Refresh Token7d session / 30d "记住我"token_version 实时吊销
  • CSRF 保护——全站 CSRF Token自动注入 state-changing 请求
  • 速率限制——API 调用频率控制(账户 + IP 双维度)
  • 安全头——Content-Security-Policy 等安全响应头 + 登录防时序攻击
  • 管理后台——用户管理、角色权限控制
  • 账号注销——用户自助注销7 天冷却期,登录二次确认恢复),站长禁止自删
  • 密码修改——修改后强制所有设备退登
  • IP 审计——记录注册 IP、最后登录 IP 及时间
  • 用户设置页——个人资料修改(用户名、个性签名、头像上传与裁切)
  • 头像处理——JPEG/PNG/WebP 上传方形裁切512×512 WebP 编码 ≤100KB
  • 消息中心——审核通知推送SSR 消息页面,单条/全部标为已读未读数角标1/66/99+
  • 多主题支持——可切换的前端主题系统

计划中

  • 🔲 帖子系统CRUD + Markdown
  • 🔲 话题/分类导航
  • 🔲 邮箱验证
  • 🔲 全文搜索
  • 🔲 回收站(用户数据彻底清理)

快速开始

# 克隆仓库
git clone git@git.metazone.cc:MetaZone/MetaLab.git
cd MetaLab

# 创建 .env 文件
cat > .env << EOF
DATABASE_PASSWORD=your_db_password
JWT_SECRET=your_jwt_secret
EOF

# 确保 PostgreSQL 运行中
# 默认连接: 127.0.0.1:5432, 数据库: metalab_dev

# 运行
go run cmd/server/main.go

启动后访问 http://localhost:8080

项目结构

MetaLab/
├── cmd/server/            # 入口:初始化 → 启动
├── internal/
│   ├── config/            # 配置加载YAML + .env
│   ├── router/            # 路由注册
│   ├── controller/        # 控制器(参数绑定 → 调服务 → 返回)
│   │   └── admin/         # 后台控制器
│   ├── service/           # 业务逻辑层
│   ├── repository/        # 数据访问层DAO
│   ├── model/             # 数据模型 + DTO
│   ├── middleware/        # 中间件(认证/CSRF/限流/安全)
│   ├── common/            # 公共工具(响应/分页/加密)
│   └── theme/             # 主题/模板管理
├── templates/             # 前端模板(多主题)
│   ├── MetaLab-2026/      # 前台主题
│   └── admin/             # 后台模板
└── docs/                  # 开发文档

许可

本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0) 许可。

社区版AGPL-3.0):可自由使用、修改、分发,但修改后通过网络提供服务时必须公开源码。

商业授权:如需闭源部署、私有化修改或商业技术支持,请联系 metazone@foxmail.com 获取商业授权。


© 2024-2026 MetaZone | Built with ❤️ by MetaZone

Description
MetaLab - 下一代开源技术社区
Readme AGPL-3.0 4.7 MiB
Languages
Go 47.6%
HTML 22.3%
JavaScript 15.1%
CSS 15%