基于 Go/Gin,在控制器方法参数级实现 IoC 依赖注入
gower — Laravel 目录站模板
作者 falling-ts
基于 Go/Gin 的 Web 快速启动目录,采用模板集成模式,内置控制器、请求、模型生成命令与路由注册流程。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
提供 gower create 与 gower make 等 CLI 命令生成项目骨架与控制器、请求、模型代码
默认模板集成模式,支持通过构建标签将模板与静态资源打包进单个程序文件
支持 Docker、GoLand Debug 与 Gradle 三种运行方式
前端使用 Vite 构建,集成 Vue、Tailwind CSS、DaisyUI 等,可通过 VIEW_THEME 切换主题
模板详细介绍
Gower 是一个基于 Go/Gin 的 Web 快速启动目录,默认使用模板集成模式,即在控制器方法参数级别实现 IoC 依赖注入。仓库提供 CLI 工具,可通过 gower create 创建项目并自动初始化文件、环境、仓库与前后端依赖,也可用 gower make 生成控制器、请求和模型等代码骨架。
项目同时提供 Docker 运行脚本、GoLand Debug 与 Gradle 三种运行方式,并支持通过构建标签(test、prod、tmpl、static、cli)将模板与静态资源打包进程序文件。前端部分使用 Vite 构建,依赖中包含 Vue、Tailwind CSS、DaisyUI、jQuery 等,可通过环境变量 VIEW_THEME 切换 DaisyUI 主题。
README 中列出的系统要求包括 Go、Node.js、pnpm、Docker、Git、Gradle 与 JDK 等,并建议配合 Gower Workspace 工作区模式管理多个单体项目。仓库以 MIT 许可发布,文档站点为 falling-ts.github.io/gower-docs。
适合你的项目吗?
适用场景
- 使用 Go/Gin 快速搭建带模板渲染的 Web 单体项目
- 通过 CLI 生成控制器、请求、模型等分层代码骨架
- 在 Docker 或 GoLand 中进行本地开发与断点调试
- 借助 Gradle 运行、构建与部署多个单体项目
适合人群
- 熟悉 Go 与 Gin 的后端开发者
- 需要模板集成模式而非前后端分离的 Web 项目
- 希望用 CLI 统一生成项目结构与代码骨架的团队
- 使用 Docker 或 Gradle 进行开发与部署的工作流
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需先配置 GOPROXY,再执行 go install -tags cli gitee.com/falling-ts/gower@latest 安装 CLI
- 2
使用 gower create my-project 创建项目,该命令会初始化文件、环境、仓库与前后端依赖
- 3
运行项目可选择 ./docker/run-dev、GoLand Debug 或 Gradle 任务
- 4
打包静态资源需执行 go install -tags tmpl,static
- 5
系统要求包括 Go、Node.js、pnpm、Docker、Git、Gradle 与 JDK,具体版本以 README 为准
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
https://github.com/falling-ts/gower/blob/main/LICENSEhttps://github.com/falling-ts/gower/blob/main/README.mdPermission is hereby granted, free of charge
许可证原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 82 / 100
- 技术栈
- Laravel · Vite
- 网站类型
- 目录站
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2024-12-11
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Laravel。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: df225bf6b33b6e26b17ce6ca9177c290f2d07cf234aaa6bddbce0e92f9f9eb29
2026-10-02T15:13:21.948Z
来源文件 / 仓库# Go/Gin Gower Web 单体模式

[中文](README.md)|[English](README_EN.md)
[]()
---
建议使用 [Go/Gin Gower Workspace](https://gitee.com/falling-ts/gower-work) 工作区模式, 可以创建多个单体项目, 能够统一使用 Gradle 进行多个单体项目的运行, 构建与部署.
Gower 是基于 [Go/Gin](https://github.com/gin-gonic/gin) 的 Web 快速启动框架, 已在控制器的方法参数级上实现了 IoC 依赖注入功能.
系统要求:
> go >= v1.23
>
> nodejs >= v18.20
>
> pnpm >= v9.12
>
> docker >= v20.10 [非必要]
>
> docker compose >= v2.0 [非必要]
>
> git >= 2.39
>
> gradle >= 8.10.2
>
> jdk >= 23
## 快速开始[单体模式]
### 源码安装
#### 1.配置 GOPROXY
```shell
$ export GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
```
> windows 系统, 打开环境变量, 创建新用户变量, 变量名: `GOPROXY`, 变量值: `https://mirrors.aliyun.com/goproxy/,direct`
#### 2.执行远程编译安装
```shell
$ go install -tags cli gitee.com/falling-ts/gower@latest
```
> 验证结果: `$ gower --version`
>
> 当前安装在系统全局环境中
#### 3.创建项目, 自动初始化
```shell
$ gower create my-project
```
### 运行项目
> 将执行创建项目, 初始化文件, 环境, 仓库, 前后端依赖, 执行基准测试
#### 1.使用 Docker
```shell
$ cd my-project
$ ./docker/run-dev
```
#### 2.使用 GoLand 进行 Debug
用 GoLand 打开项目后, 找到 my-project 运行配置, 修改工作目录, 并选择模块, 最后 Debug 运行, 就可以进行断点调试了.
#### 3.使用 gradle 运行
- 单项目模式需要将 `build.gradle` 开头的 `"org.hidetake.ssh"` 插件注释去掉
- 提前在 GoLand 中安装好 gradle 插件
- 修改 `build.gradle`, 去掉开头插件引用的注释
- 第一次使用 GoLand 打开 my-project 时, 会提醒 `找到Gradle 'my-project' 构建脚本`, 然后点击 `加载 Gradle 项目`, 会初始化 gradle 构建体系
- 最后, 在右侧 gradle 任务中找到 dev 下的 Run, 运行它即可.
> 如果需要打包静态资源请执行 `go install -tags tmpl,static`
###### tags:
```
test: 打包测试环境的程序文件
prod: 打包生成环境的程序文件
tmpl: 打包模板
static: 打包静态资源
cli: 命令行模式
```
> 打包这些内容好处是无需关心程序迁移时, 需要携带的内容, 因为都打包进程序了, 一个文件就是整套系统, 灵活性极高
## 快速开发
### 创建控制器
```shell
$ gower make --controller Hello
```
`app/http/controllers/hello_controller.go`
```go
package controllers
import (
"my-project/app"
"my-project/app/http/requests"
"my-project/services"
)
type HelloController struct {
app.Controller
}
var Hello = new(HelloController)
// Index 获取页面
func (*HelloController) Index(req *requests.HelloRequest) (services.Response, error) {
return res.Ok("home/hello", app.Data{
"name": req.Name,
}), nil
}
```
### 创建请求
```shell
$ gower make --request Hello
```
`app\http\requests\hello_request.go`
```go
package requests
import "my-project/app"
type HelloRequest struct {
app.Request
Name *string `form:"name" json:"name" binding:"required"`
}
```
### 创建模型
```shell
$ gower make --model Hello
```
`app\models\hello.go`
```go
package models
func init() {
migrate(new(Hello))
}
type Hello struct {
Model
Name *string `gorm:"type:string;default:'';comment:名称"`
}
```
> 注: 如果命令输出很多 Debug 内容, 那是因为 envs/.env.dev 的 APP_MODE 是开发模式, 修改为测试模式就可以了
### 添加路由
`routes/web.go`
```go
package routes
import (
web "my-project/app/http/controllers"
mws "my-project/app/http/middlewares"
"my-project/public"
)
func init() {
// ...
route.GET("/hello", web.Hello.Index)
}
```
### 执行请求
```shell
$ curl -i http://localhost:8080/hello?name=Gower
```
## 使用的第三方库和内容, 同时表达对开源的感谢
```yaml
github.com/alexedwards/argon2id v1.0.0
github.com/caarlos0/env/v7 v7.1.0
github.com/gin-contrib/cors v1.7.2
github.com/gin-gonic/gin v1.10.0
github.com/glebarez/sqlite v1.11.0
github.com/go-playground/locales v0.14.1
github.com/go-playground/universal-translator v0.18.1
github.com/go-playground/validator/v10 v10.22.1
github.com/go-sql-driver/mysql v1.8.1
github.com/golang-jwt/jwt/v5 v5.2.1
github.com/jaevor/go-nanoid v1.4.0
github.com/joho/godotenv v1.5.1
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/stretchr/testify v1.9.0
github.com/urfave/cli/v2 v2.27.5
go.uber.org/zap v1.27.0
golang.org/x/crypto v0.28.0
gorm.io/driver/mysql v1.5.7
gorm.io/gorm v1.25.12
github.com/rclone/rclone v1.62.2
github.com/laravel/laravel
github.com/moby/moby
github.com/docker/compose
FROM caddy:2.6
FROM grafana/grafana:9.4.3
FROM grafana/loki:main-0295fd4
FROM mysql/mysql-server:5.7.41
FROM grafana/promtail:main-0295fd4
FROM pingcap/tidb:v6.5.1
nodejs
pnpm
"animate.css": "^4.1.1",
"autoprefixer": "^10.4.20",
"daisyui": "^4.12.14",
"jquery": "^3.7.1",
"js-cookie": "^3.0.5",
"jssha": "^3.3.1",
"postcss": "^8.4.49",
"resize-observer-polyfill": "^1.5.1",
"simplebar": "^6.2.7",
"stylus": "^0.59.0",
"tailwindcss": "^3.4.15",
"vue": "^3.5.13"
"@iconify/json": "^2.2.276",
"@iconify/tailwind": "^1.1.3",
"@rollup/plugin-replace": "^5.0.7",
"@types/crypto-js": "^4.2.2",
"@types/jquery": "^3.5.32",
"@types/js-cookie": "^3.0.6",
"@types/node": "^18.19.65",
"@types/vue": "^2.0.0",
"@vitejs/plugin-vue": "^4.6.2",
"cross-env": "^7.0.3",
"vite": "5.4.6"
```
## 文档
[文档地址](https://falling-ts.github.io/gower-docs)
## LICENSE
[MIT License](LICENSE)
## 主页页面

## 示例主题
通过修改 `.env.xxx` 的 `VIEW_THEME`, 详情见 [DaisyUI](https://daisyui.com/docs/themes/)
### cupcake

### forest

### halloween

### lofi

### synthwave

看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

touchestate-theme-modern
A modern real estate website theme built on the TouchEstate API
Laravel · 目录站

fastapi-nano
🐍 Simple FastAPI template that mimics Flask's blueprint directory structure
Flask · 目录站

mkdirs
Open-source AI-powered directory website template built with Next.js
Next.js · 目录站

minted-directory-astro
Markdown driven directory template. Built with Astro and Tailwindcss. Optimized for SEO. Beautiful Customizabl…
Astro · 目录站

next-pages-template
A Next.js 16 with pages directory template pre-configured with HeroUI (v3) and Tailwind CSS (v4).
Next.js · 目录站

Nuxt_Mkdirs
🚀 Open-source directory website template built with Nuxt 4 + Sanity CMS. 3 layouts, OAuth, payments, blog & m…
Nuxt · 博客
