基于 Go + Vue 构建的现代化后台管理系统。
- Vue 3 - UI 框架
- Vben Admin - 中后台框架
- antdv-next - 组件库
- Vite - 构建工具
- TypeScript - 类型安全
- pnpm - 包管理器
# 修改配置文件
vim config/config.yaml
# 执行数据库迁移(默认管理员:admin / admin)
make migrate
# 启动服务
make servecd web
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
# 构建生产版本
pnpm run build使用声明式 CRUD 框架,只需一个文件:
// internal/admin/handler/article_handler.go
package handler
import (
"your-project/internal/admin/model"
"your-project/internal/pkg/crud"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
// 1. 定义权限
var articlePerms = crud.NewCRUDPerms("system", "article", "文章管理")
// 2. 定义 Handler
type ArticleHandler struct {
crud.BaseHandler
db *gorm.DB
}
func NewArticleHandler(db *gorm.DB) *ArticleHandler {
return &ArticleHandler{db: db}
}
// 3. 声明模块配置(路由 + 权限)
func (h *ArticleHandler) ModuleConfig() crud.ModuleConfig {
return crud.ModuleConfig{
Name: "article",
Group: "/articles",
ParentPermission: PermSystemManage,
Permissions: articlePerms.Tree,
Routes: articlePerms.Routes(),
}
}
// 4. 实现业务方法
func (h *ArticleHandler) List(c *gin.Context) { /* ... */ }
func (h *ArticleHandler) Get(c *gin.Context) { /* ... */ }
func (h *ArticleHandler) Create(c *gin.Context) { /* ... */ }
func (h *ArticleHandler) Update(c *gin.Context) { /* ... */ }
func (h *ArticleHandler) Delete(c *gin.Context) { /* ... */ }
// 5. 自动注册
var _ crud.Module = (*ArticleHandler)(nil)然后在 internal/admin/module.go 中把新模块加入模块列表:
return []crud.Module{
handler.NewAdminUserHandler(db),
handler.NewAdminRoleHandler(db),
NewArticleHandler(db),
}完成! 无需修改 router.go 或其他 core 文件。
详细文档见 CRUD 包文档
在 web/apps/admin/src/router/routes/modules/ 增加路由,页面放在 web/apps/admin/src/views/。
make help # 查看所有可用命令
make build # 编译应用
make serve # 启动服务
make migrate # 数据库迁移
make clean # 清理构建产物
make tidy # 整理依赖详细文档位于 docs/ 目录:
- Go 1.25+
- MySQL 5.7+
- Node.js 22+
- pnpm 11.5+
生产启动必须注入独立密钥:
export BICO_JWT_SECRET="至少32位的随机密钥"
export MYSQL_ROOT_PASSWORD="数据库密码"
# 首次部署先迁移,再启动服务
docker compose run --rm app ./bico-admin migrate
docker compose up -d首次迁移会自动创建 admin/admin 管理员账户,请登录后立即修改密码。生产配置默认使用 MySQL、Redis 和 release 模式。
MIT
