一个现代化的全栈 Web 应用模板,使用 Go (Echo) 作为后端,React + TypeScript 作为前端,集成了完整的开发工具链和最佳实践。
- 🚀 Echo - 高性能 Web 框架
- 🗄️ GORM - ORM 库,支持 SQLite/PostgreSQL/MySQL
- 🔐 JWT - 身份认证
- 📝 结构化日志 - 使用 logrus
- 🔍 代码质量检查 - golangci-lint 集成
- 🐳 Docker - 容器化部署
- ⚛️ React 19 - 最新版本
- 📘 TypeScript - 类型安全
- 🎨 Tailwind CSS - 现代化样式框架
- 🔧 Vite - 快速构建工具
- 📦 Pnpm - 高性能包管理器
- 🧩 组件库 - Radix UI + shadcn/ui
- 🔍 golangci-lint - Go 代码质量检查
- 🔧 ESLint - 前端代码检查
- 🚀 热重载 - 开发时自动重载
- 📋 Makefile - 统一的项目管理
- 🔄 GitHub Actions - CI/CD 流水线
- Go >= 1.24
- Pnpm
- golangci-lint (可选,用于代码检查)
# 克隆项目
git clone <your-repo-url>
cd go-react-template
# 安装所有依赖
make install
# 或手动安装
go mod download
cd web && pnpm install
# 启动前端开发服务器 (http://localhost:5173)
make dev
# 启动后端服务器 (http://localhost:1323)
make dev-go
# 或分别启动
cd web && pnpm run dev # 前端
air # 后端(热重载)
go run main.go # 后端(传统方式)
# 完整构建(前端 + 后端)
make build
# 运行构建后的程序
make run
# 或直接运行
./server
本项目集成了 golangci-lint 进行 Go 代码质量检查。
# 方式 1: Go install
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
# 方式 2: Homebrew (macOS)
brew install golangci-lint
# 方式 3: 使用项目脚本
make install-tools
# 检查所有代码
make lint
# 只检查 Go 代码
make lint-go
./scripts/lint.sh
# 只检查前端代码
make lint-web
- 配置文件:
.golangci.yml
- CI/CD 集成:
.github/workflows/ci.yml
- 详细文档: docs/golangci-lint.md
# 构建 Docker 镜像
make docker-build
# 运行 Docker 容器
make docker-run
# 使用 docker-compose
make docker-compose-up
# 复制环境变量模板
cp .env.example .env
# 编辑配置
vim .env
主要环境变量:
变量名 | 默认值 | 说明 |
---|---|---|
SERVER_ADDRESS |
:1323 |
服务器监听地址 |
DATABASE_URL |
./data.db |
数据库连接字符串 |
JWT_SECRET |
your-secret-key |
JWT 签名密钥 |
LOG_LEVEL |
info |
日志级别 |
# 查看所有可用命令
make help
# 安装开发工具(包括 golangci-lint 和 air)
make install-tools
# 代码质量检查
make lint # 检查所有代码
make lint-go # 只检查 Go 代码
make lint-web # 只检查前端代码
# 构建项目
make build # 构建完整项目
make build-go # 只构建后端
make build-web # 只构建前端
# 开发模式(热重载)
make dev-web # 启动前端开发服务器
make dev-go # 启动后端开发服务器(使用 air 热重载)
# Docker 相关
make docker-build # 构建 Docker 镜像
make docker-run # 运行 Docker 容器
make docker-up # 使用 docker-compose 启动
make docker-down # 使用 docker-compose 停止
-
构建项目
make build
-
配置环境变量
cp .env.example .env # 编辑 .env 文件
-
运行服务
./server
-
使用 docker-compose
docker-compose up -d
-
手动 Docker 部署
# 构建镜像 docker build -t go-react-template . # 运行容器 docker run -d -p 1323:1323 \ -e DATABASE_URL="/app/data/data.db" \ -e JWT_SECRET="your-production-secret" \ -v $(pwd)/data:/app/data \ go-react-template
- Fork 项目
- 创建功能分支 (
git checkout -b feature/amazing-feature
) - 提交更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开 Pull Request
- 所有 Go 代码必须通过
golangci-lint
检查 - 前端代码必须通过 ESLint 检查
- 提交前请运行
make lint
确保代码质量 - 遵循 Conventional Commits 规范
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- Echo - 高性能 Go Web 框架
- React - 用户界面库
- golangci-lint - Go 代码检查工具
- Tailwind CSS - CSS 框架
- Vite - 前端构建工具