一个完整的企业官网解决方案,基于 Go + Nuxt 3 构建,包含前端展示、后台管理和 API 服务。
- Go 1.21+ - 后端语言
- Gin - Web 框架
- GORM - ORM 框架
- MySQL 8.0 - 数据库
- Redis - 缓存
- MinIO - 对象存储
- Nuxt 3 - Vue 3 全栈框架
- Tailwind CSS - CSS 框架
- shadcn-vue - UI 组件库
- Pinia - 状态管理
- Lucide Icons - 图标库
gocorp/
├── backend/ # Go 后端
│ ├── cmd/server/ # 入口文件
│ ├── internal/ # 内部代码
│ │ ├── config/ # 配置
│ │ ├── handler/ # HTTP 处理器
│ │ ├── middleware/ # 中间件
│ │ ├── model/ # 数据模型
│ │ └── router/ # 路由
│ ├── pkg/ # 公共包
│ │ ├── database/ # 数据库
│ │ ├── redis/ # Redis
│ │ ├── storage/ # 文件存储
│ │ ├── response/ # 响应
│ │ └── utils/ # 工具
│ ├── config.yaml # 配置文件
│ └── Dockerfile
│
├── frontend/ # 前端 (用户端)
│ ├── assets/ # 静态资源
│ ├── components/ # 组件
│ ├── composables/ # 组合式函数
│ ├── layouts/ # 布局
│ ├── pages/ # 页面
│ ├── stores/ # 状态管理
│ ├── types/ # 类型定义
│ └── Dockerfile
│
├── admin/ # 管理后台
│ ├── assets/
│ ├── components/
│ ├── composables/
│ ├── layouts/
│ ├── middleware/
│ ├── pages/
│ ├── stores/
│ └── Dockerfile
│
├── docker-compose.yml
└── README.md
- ✅ 首页 (Hero、特色、产品、文章、评价)
- ✅ 产品中心 (列表、筛选、搜索、详情)
- ✅ 新闻动态 (列表、详情)
- ✅ 关于我们
- ✅ 联系我们 (表单提交)
- ✅ 常见问题 (FAQ)
- ✅ 客户评价
- ✅ 响应式设计
- ✅ SEO 优化
- ✅ 仪表盘 (统计概览)
- ✅ 产品管理 (CRUD)
- ✅ 文章管理 (CRUD)
- ✅ 分类管理
- ✅ 标签管理
- ✅ 咨询管理
- ✅ 评价管理
- ✅ FAQ 管理
- ✅ Banner 管理
- ✅ 系统设置
- ✅ JWT 认证
- ✅ RESTful API
- ✅ 文件上传
- ✅ 分页查询
- ✅ 数据导出
git clone https://github.com/YOUR_USERNAME/gocorp.git
cd gocorp# 复制环境变量
cp .env.example .env
# 启动所有服务
docker-compose up -dcd backend
# 安装依赖
go mod tidy
# 运行
go run cmd/server/main.gocd frontend
# 安装依赖
npm install
# 开发模式
npm run devcd admin
# 安装依赖
npm install
# 开发模式
npm run dev| 服务 | 地址 | 说明 |
|---|---|---|
| 前端 | http://localhost:3000 | 用户端网站 |
| 后台 | http://localhost:3001 | 管理后台 |
| API | http://localhost:8080 | 后端 API |
| MinIO | http://localhost:9001 | 对象存储控制台 |
- 管理后台: admin / admin123
- MinIO: minioadmin / minioadmin
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/products | 产品列表 |
| GET | /api/products/:slug | 产品详情 |
| GET | /api/articles | 文章列表 |
| GET | /api/articles/:slug | 文章详情 |
| GET | /api/categories | 分类列表 |
| GET | /api/faq | FAQ 列表 |
| GET | /api/reviews | 评价列表 |
| POST | /api/inquiries | 提交咨询 |
| GET | /api/banners | Banner 列表 |
| GET | /api/settings | 网站设置 |
所有管理 API 需要 Bearer Token 认证,前缀为 /api/admin
server:
port: "8080"
mode: "debug" # debug / release
database:
host: "localhost"
port: "3306"
user: "root"
password: "your_password"
dbname: "b2b_website"
redis:
host: "localhost"
port: "6379"
minio:
endpoint: "localhost:9000"
accesskey: "minioadmin"
secretkey: "minioadmin"
bucket: "b2b-website"
jwt:
secret: "your-jwt-secret"
expiretime: 24 # hoursNUXT_PUBLIC_API_BASE=http://localhost:8080/api- 修改
backend/config.yaml中的数据库密码和 JWT 密钥 - 修改
.env文件中的环境变量 - 配置反向代理 (Nginx)
- 配置 SSL 证书
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name admin.example.com;
location / {
proxy_pass http://localhost:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}MIT License