一个用于记录个人经历、技术实践、编程知识与生活思考的全栈个人博客。
项目采用前后端分层架构:Next.js 负责页面渲染、用户交互以及 BFF/SSR,Go 服务负责文章、分类、标签、搜索和认证等核心业务。系统支持文章的创建与编辑、分类与标签管理、全文搜索,以及从飞书、掘金、CSDN 或 HTML/Markdown 内容导入文章。
- Next.js 16(App Router、Server Components、Server Actions)
- React 19、TypeScript 5
- Tailwind CSS 4、Radix UI、shadcn
- Tiptap 富文本编辑器、React Markdown、Shiki
- Motion、Lucide React、Iconify
- Go 1.25
- Gin
- GORM
- JWT 身份认证
- PostgreSQL 15
- Redis 7.4
- pnpm
- Docker、Docker Compose
- Nginx
进入项目根目录,复制环境变量文件并根据实际环境修改配置:
cp .env.example .env
vim .env启动全部服务:
docker compose up -d更新时,在项目根目录拉取最新代码,然后重新构建并启动服务:
git pull
docker compose up -d --build- Node.js 20+
- pnpm 10+
- Go 1.25+
- PostgreSQL 15
- Redis 7.4
确保 PostgreSQL 和 Redis 已启动,并根据实际环境修改 backend/config.yml 中的数据库及 Redis 连接信息。
在 backend 目录下启动 Docker:
cd backend
docker compose up -d也可以在项目根目录使用 Docker Compose 启动 PostgreSQL 和 Redis:
docker compose up -d db redis需要注意的是:使用根目录的
docker-compose.yml启动的数据库和redis路径不同,根目录启动是在/根路径
打开一个终端,在项目根目录执行:
cd backend
go mod download
go run .后端服务默认运行在 http://localhost:8000。
再打开一个终端,在项目根目录执行:
cd frontend
pnpm install
pnpm dev前端默认通过 http://localhost:3000 访问,并在服务端请求 http://localhost:8000 的 Go API。