The project had English and Simplified Chinese. These two follow the same structure - same sections, same code blocks, same contributor list - so a reader in any of the four sees the same document. The Traditional Chinese is a translation rather than a character conversion of the Simplified: the terminology differs (設定檔, 資料庫, 選單, 程式碼產生, 排程任務, 相依套件), and a converted file would read as machine output to anyone who actually uses it. Language navigation across all four is unified in the same commit, since a link to a file that does not exist yet would be worse than no link.
18 KiB
go-admin
基於 Gin + Vue + Element UI OR Arco Design OR Ant Design 的前後端分離權限管理系統。系統初始化極為簡單,只需在設定檔中修改資料庫連線資訊即可。系統支援多指令操作:遷移指令讓資料庫初始化變得更簡單,服務指令則能輕鬆啟動 API 服務。
🎬 線上體驗
Element Plus vue3 體驗:https://vue.go-admin.pro
⚠️⚠️⚠️ 帳號 / 密碼: admin / 123456
antd 體驗(go-admin-pro):https://antd.go-admin.pro
⚠️⚠️⚠️ 帳號 / 密碼: admin / 123456
✨ 特性
-
遵循 RESTful API 設計規範
-
基於 GIN WEB API 框架,提供豐富的中介軟體支援(使用者認證、跨域、存取日誌、追蹤 ID 等)
-
基於 Casbin 的 RBAC 存取控制模型
-
JWT 認證
-
支援 Swagger 文件(基於 swaggo)
-
基於 GORM 的資料庫儲存,可擴充多種類型資料庫
-
設定檔簡單的模型映射,快速取得所需設定
-
程式碼產生工具
-
表單建構工具
-
多指令模式
-
多租戶的支援
-
TODO: 單元測試
🎁 內建
- 多租戶:系統預設支援多租戶,按資料庫分離,一個資料庫一個租戶。
- 使用者管理:使用者是系統操作者,該功能主要完成系統使用者設定。
- 部門管理:設定系統組織架構(公司、部門、小組),以樹狀結構呈現並支援資料權限。
- 職位管理:設定系統使用者所擔任的職務。
- 選單管理:設定系統選單、操作權限、按鈕權限標識、介面權限等。
- 角色管理:角色選單權限分配、設定角色按機構進行資料範圍權限劃分。
- 字典管理:對系統中經常使用且較為固定的資料進行維護。
- 參數管理:對系統動態設定常用參數。
- 操作日誌:系統正常操作的日誌記錄與查詢;系統異常資訊的日誌記錄與查詢。
- 登入日誌:系統登入日誌記錄查詢,包含登入異常。
- 介面文件:根據業務程式碼自動產生相關的 API 介面文件。
- 程式碼產生:根據資料表結構產生對應的增刪改查業務,全程視覺化操作,讓基本業務可以零程式碼實現。
- 表單建構:自訂頁面樣式,拖拉放實現頁面佈局。
- 服務監控:檢視伺服器的基本資訊。
- 內容管理:demo 功能,下設分類管理、內容管理,可參考使用以快速入門。
- 排程任務:自動化任務,目前支援介面呼叫與函式呼叫。
準備工作
你需要在本機安裝 [go] [gin] node 和 git
同時配套了系列教學(含影片與文件),說明如何從下載到熟練使用。強烈建議先看完這些教學再來實作本專案!!!
輕鬆用 go-admin 寫出第一個應用 - 文件教學
手把手教你從入門到放棄 - 影片教學
go-admin 選單的設定說明 [必看]
如何設定選單資訊以及介面資訊 [必看]
go-admin 權限設定使用說明 [必看]
go-admin 資料權限使用說明 [必看]
如有問題請先參閱上述文件與文章,若仍無法解決,歡迎提出 issue 與 pr。影片教學與文件持續更新中
📦 本機開發
環境需求
go 1.26.5
node 版本: v22+(建議 v24 LTS)
套件管理器: pnpm v9+(UI 專案使用 pnpm)
建立開發目錄
# 建立開發目錄
mkdir goadmin
cd goadmin
取得程式碼
重點注意:兩個專案必須放在同一資料夾下;
# 取得後端程式碼
git clone https://github.com/go-admin-team/go-admin.git
# 取得前端程式碼
git clone https://github.com/go-admin-team/go-admin-ui.git
啟動說明
伺服器端啟動說明
# 進入 go-admin 後端專案
cd ./go-admin
# 更新整理相依套件
go mod tidy
# 編譯專案
go build
# 修改設定
# 檔案路徑 go-admin/config/settings.yml
vi ./config/settings.yml
# 1. 在設定檔中修改資料庫資訊
# 注意: settings.database 下對應的設定資料
# 2. 確認 log 路徑
⚠️注意 在 Windows 環境若未安裝 CGO,會出現這個問題;
E:\go-admin>go build
# github.com/mattn/go-sqlite3
cgo: exec /missing-cc: exec: "/missing-cc": file does not exist
or
D:\Code\go-admin>go build
# github.com/mattn/go-sqlite3
cgo: exec gcc: exec: "gcc": executable file not found in %PATH%
初始化資料庫,以及服務啟動
# 首次設定需要初始化資料庫資源資訊
# macOS or linux 下使用
$ ./go-admin migrate -c config/settings.dev.yml
# ⚠️注意:windows 下使用
$ go-admin.exe migrate -c config/settings.dev.yml
# 啟動專案,也可以用 IDE 進行除錯
# macOS or linux 下使用
$ ./go-admin server -c config/settings.yml
# ⚠️注意:windows 下使用
$ go-admin.exe server -c config/settings.yml
sys_api 表的資料如何新增
在專案啟動時,使用 -a true 系統會自動新增缺少的介面資料
./go-admin server -c config/settings.yml -a true
使用 docker 編譯啟動
# 編譯映像檔
docker build -t go-admin .
# 啟動容器,第一個 go-admin 是容器名稱,第二個 go-admin 是映像檔名稱
# -v 映射設定檔 本機路徑:容器路徑
docker run --name go-admin -p 8000:8000 -v /config/settings.yml:/config/settings.yml -d go-admin-server
文件產生
go generate
交叉編譯
# windows
env GOOS=windows GOARCH=amd64 go build main.go
# or
# linux
env GOOS=linux GOARCH=amd64 go build main.go
UI 互動端啟動說明
# 安裝 pnpm(若未安裝)
npm install -g pnpm
# 安裝相依套件
pnpm install
# 中國大陸網路可指定鏡像來源加速
pnpm install --registry=https://registry.npmmirror.com
# 啟動服務
pnpm dev
📨 互動
![]() |
![]() |
![]() |
wenjianzhang |
| 微信 | 公众号🔥🔥🔥 | ![]() |
哔哩哔哩🔥🔥🔥 |
💎 貢獻者
JetBrains 開源證書支援
go-admin 專案一直以來都是在 JetBrains 公司旗下的 GoLand 整合開發環境中進行開發,基於 free JetBrains Open Source license(s) 正版免費授權,在此表達我的謝意。
🤝 特別感謝
- ant-design
- ant-design-pro
- arco-design
- arco-design-pro
- gin
- casbin
- spf13/viper
- gorm
- gin-swagger
- golang-jwt
- vue-element-admin
- ruoyi-vue
- form-generator
🤟 贊助
如果你覺得這個專案幫助到了你,可以幫作者買一杯果汁表示鼓勵 🍹
🤝 連結
🔑 License
Copyright (c) 2026 wenjianzhang




