🚧 项目正在建设中 🚧
::: tip 小孩子不懂事写着玩的 :::
一个 Monorepo 全栈个人博客应用,采用 Go + SvelteKit 技术栈构建
- 🏗️ Monorepo 架构 - 统一管理前后端代码和依赖
- 🎨 现代化设计 - 基于 SvelteKit 的响应式前端界面
- ⚡ 高性能后端 - Go 语言构建的 POST-only API 服务
- 🔐 用户认证与授权 - JWT 双 token 刷新、RBAC 权限体系
- 📝 完整内容管理 - 文章 CRUD、发布归档、分类标签、评论互动
- 🖼️ 媒体资源管理 - 文件上传、哈希秒传去重、本地存储
- ⚙️ 站点运营 - 系统设置、友情链接、站点统计、站内通知
- 🔧 智能开发工具 - 自动化环境检查、热更新和健康监控
- 📏 代码质量保证 - 集成 ESLint、Prettier、golangci-lint
- 🐙 Git Hooks - 自动代码检查和提交规范验证
MyBlog/ # Monorepo 根目录
├── apps/ # 前端应用
│ ├── web/ # 前台应用(SvelteKit,公开博客 + demo + i18n)
│ └── admin/ # 后台应用(SvelteKit,管理控制台 + 登录页)
├── packages/ # 公共包
│ ├── shared/ # 纯工具与通用类型
│ ├── http/ # HTTP 请求器(ky 封装)
│ ├── api/ # 后端接口模块
│ └── ui/ # shadcn-svelte 基础组件(stock)
├── server/ # Go 后端服务
│ ├── cmd/myblog/ # 应用程序入口
│ ├── internal/ # 内部业务逻辑
│ │ ├── handler/ # HTTP 请求处理层
│ │ ├── service/ # 业务逻辑层
│ │ ├── repository/ # 数据访问层
│ │ ├── config/ # 配置管理
│ │ └── database/ # 数据库连接
│ ├── pkg/ # 公共包和工具
│ ├── configs/ # 配置文件
│ └── scripts/ # 后端专用脚本
├── scripts/ # 跨项目构建脚本(Node.js + tsx)
├── .husky/ # Git hooks 配置
└── docs/ # 项目文档
- Go 1.23+ - 高性能后端语言
- Gin - 轻量级 Web 框架
- GORM - ORM 数据库操作
- MySQL - 关系型数据库
- Viper - 配置管理
- SvelteKit - 现代化前端框架
- TypeScript - 类型安全的 JavaScript
- TailwindCSS - 实用优先的 CSS 框架
- Vite - 快速构建工具
- Node.js + tsx - JavaScript 运行时与 TypeScript 执行器
- Husky - Git hooks 管理
- lint-staged - 暂存文件代码检查
- commitlint - 提交信息规范验证
# 克隆项目
git clone https://github.com/idleRain/MyBlog.git
cd MyBlog
# 自动环境设置 (推荐)
pnpm run setup# 智能启动 (推荐) - 包含环境检查、端口检查、健康监控
pnpm run dev
# 分别启动服务(同样经过环境与端口检查)
pnpm run dev:server # 仅 Go 后端
pnpm run dev:web # 仅前台应用
pnpm run dev:admin # 仅后台应用- 前台应用: http://localhost:8899 (可配置)
- 后台应用: http://localhost:9988/admin (基准路径 /admin,可配置)
- 后端 API: http://localhost:3000 (可配置)
- API 健康检查: http://localhost:3000/api/health
# 环境和依赖管理
pnpm run setup # 初始化开发环境
# 开发和构建
pnpm run dev # 启动开发环境 (智能模式)
pnpm run build # 构建生产版本
pnpm run test # 运行所有测试
# 代码质量
pnpm run check # 前后台 SvelteKit 类型检查
pnpm run lint # 代码检查
pnpm run format # 代码格式化
pnpm run quality # 完整质量检查 (格式化 + 检查 + 测试)# 前端专用
pnpm run typecheck:web # 前后台应用类型检查(尚无前端测试,暂以类型检查代替)
pnpm run check # 与 typecheck:web 相同,前后台类型检查
cd apps/web && pnpm run check # 前台 SvelteKit 类型检查
cd apps/admin && pnpm run check # 后台 SvelteKit 类型检查
# 后端专用
pnpm run test:server # 后端测试
cd server && go test -v ./... # 详细测试输出
# Go 工具链
pnpm run go:lint-install # 安装 Go 代码检查工具
pnpm run go:quality # Go 完整质量检查- 后端配置:
server/configs/config.yaml- 数据库连接、服务器端口、日志级别等
- 前端环境:
apps/web/.env(前台,端口 8899)与apps/admin/.env(后台,端口 9988)- API 地址、应用端口等
# server/configs/config.yaml
server:
host: "localhost"
port: 3000
mode: "debug"
database:
host: "host"
port: 3306
username: "username"
password: "password"
dbname: "blog"
media:
upload_dir: "uploads" # 本地媒体存储目录
base_url: "/uploads" # 媒体访问 URL 前缀
max_size_mb: 10 # 单文件大小上限(MB)# apps/web/.env(前台)与 apps/admin/.env(后台)端口配置示例
VITE_SERVER_PORT=8899 # 前台;后台为 9988
VITE_PROXY_URL=http://localhost:3000
VITE_BASE_URL=/api# 查看开发日志
pnpm run dev # 实时日志输出
# Go 后端详细日志
pnpm run dev:server
# 前端开发日志
pnpm run dev:webHandler Layer → HTTP 请求处理、参数验证
↓
Service Layer → 业务逻辑实现、数据处理
↓
Repository Layer → 数据库操作、数据访问
- 统一 POST 方法 - 所有接口使用 POST 请求
- 小驼峰命名 - JSON 字段使用 camelCase
- 统一响应格式 - 标准的 code、message、data 结构
- 错误处理 - 使用
pkg/response统一错误响应
- Monorepo 架构搭建
- 开发环境配置和工具链
- Git hooks 和代码质量保证
- 智能开发脚本和监控
- 用户管理系统基础功能
- 用户认证和授权系统
- 博客文章 CRUD 功能
- 文章分类与标签管理
- 评论系统
- 点赞收藏与用户关注
- 搜索功能
- 文件上传和图片管理
- 系统设置、友情链接、站点统计、站内通知
- Markdown 编辑器集成
- 响应式前端界面完善
- 全文搜索增强(当前为 LIKE 模糊查询)
- 部署配置和 Docker 支持