Back to Go Admin

go-admin

README.ja-JP.md

2.6.019.7 KB
Original Source

go-admin

English | 简体中文 | 繁體中文 | 日本語

Gin + Vue + Element UI / Arco Design / 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 フレームワークをベースに、豊富なミドルウェアを提供(ユーザー認証、CORS、アクセスログ、トレース ID など)

  • Casbin による RBAC アクセス制御モデル

  • JWT 認証

  • Swagger ドキュメントに対応(swaggo ベース)

  • GORM によるデータベース永続化、複数種類のデータベースに拡張可能

  • 設定ファイルからモデルへの単純なマッピングで、必要な設定をすぐに取得

  • コード生成ツール

  • フォームビルダー

  • マルチコマンド方式

  • マルチテナント対応

  • TODO: ユニットテスト

🎁 標準機能

  1. マルチテナント:デフォルトで対応。データベース単位で分離し、1 データベースにつき 1 テナント。
  2. ユーザー管理:システムの操作者であるユーザーの設定を行います。
  3. 部門管理:組織構造(会社・部門・グループ)を設定します。ツリー構造で表示し、データ権限に対応します。
  4. 役職管理:ユーザーが担当する職務を設定します。
  5. メニュー管理:メニュー、操作権限、ボタン権限識別子、API 権限などを設定します。
  6. ロール管理:ロールへのメニュー権限の割り当て、および組織単位でのデータ範囲権限の設定を行います。
  7. 辞書管理:システム内で頻繁に使う固定的なデータを管理します。
  8. パラメータ管理:よく使うパラメータを動的に設定します。
  9. 操作ログ:正常系の操作ログと異常情報のログを記録・検索します。
  10. ログインログ:ログイン履歴を記録・検索します。ログイン異常も含みます。
  11. API ドキュメント:業務コードから API ドキュメントを自動生成します。
  12. コード生成:テーブル定義から CRUD 業務を生成します。すべて画面上で操作でき、基本的な業務をコードなしで実現できます。
  13. フォームビルダー:ページのスタイルをカスタマイズし、ドラッグ&ドロップでレイアウトを作成します。
  14. サービス監視:サーバーの基本情報を確認します。
  15. コンテンツ管理:デモ機能。カテゴリ管理とコンテンツ管理を含み、入門用の参考実装として利用できます。
  16. スケジュールタスク:自動実行タスク。現在は API 呼び出しと関数呼び出しに対応しています。

事前準備

ローカルに [go] [gin] nodegit をインストールしてください。

ダウンロードから使いこなすまでを解説した動画とドキュメントのチュートリアルを用意しています。本プロジェクトを試す前に、まずこれらに目を通すことを強くおすすめします。

go-admin で最初のアプリケーションを作る - ドキュメント

ステップ 1 - 基礎の紹介

ステップ 2 - 実践 - CRUD を書く

動画チュートリアル

go-admin の起動方法

生成ツールで業務を手軽に実装する

v1.1.0 のコード生成ツール [応用]

マルチコマンドでの起動方法と IDE 設定

go-admin のメニュー設定 [必見]

メニュー情報と API 情報の設定方法 [必見]

go-admin の権限設定 [必見]

go-admin のデータ権限 [必見]

不明点はまず上記のドキュメントと記事をご確認ください。解決しない場合は issue や pr をお寄せください。動画とドキュメントは継続的に更新しています

📦 ローカル開発

動作要件

go 1.26.5

node バージョン: v22 以上(v24 LTS 推奨)

パッケージマネージャー: pnpm v9 以上(UI プロジェクトは pnpm を使用)

開発ディレクトリの作成

bash

# 開発ディレクトリを作成
mkdir goadmin
cd goadmin

コードの取得

重要:2 つのプロジェクトは同じディレクトリに配置してください。

bash
# バックエンドのコードを取得
git clone https://github.com/go-admin-team/go-admin.git

# フロントエンドのコードを取得
git clone https://github.com/go-admin-team/go-admin-ui.git

起動方法

サーバーの起動

bash
# 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 が未導入の場合、次のエラーが発生します。

bash
E:\go-admin>go build
# github.com/mattn/go-sqlite3
cgo: exec /missing-cc: exec: "/missing-cc": file does not exist

or

bash
D:\Code\go-admin>go build
# github.com/mattn/go-sqlite3
cgo: exec gcc: exec: "gcc": executable file not found in %PATH%

cgo の問題の解決方法はこちら

データベースの初期化とサービス起動

bash
# 初回はデータベースのリソース情報を初期化する必要があります
# macOS または linux の場合
$ ./go-admin migrate -c config/settings.dev.yml

# ⚠️注意: windows の場合
$ go-admin.exe migrate -c config/settings.dev.yml


# プロジェクトを起動します。IDE からデバッグ実行することもできます
# macOS または linux の場合
$ ./go-admin server -c config/settings.yml


# ⚠️注意: windows の場合
$ go-admin.exe server -c config/settings.yml

sys_api テーブルへのデータ追加方法

起動時に -a true を付けると、不足している API データが自動的に追加されます。

bash
./go-admin server -c config/settings.yml -a true

docker でのビルドと起動

shell
# イメージをビルド
docker build -t go-admin .

# コンテナを起動します。1 つ目の go-admin はコンテナ名、2 つ目はイメージ名です
# -v は設定ファイルのマウント ローカルパス:コンテナ内パス
docker run --name go-admin -p 8000:8000 -v /config/settings.yml:/config/settings.yml -d go-admin-server

ドキュメント生成

bash
go generate

クロスコンパイル

bash
# windows
env GOOS=windows GOARCH=amd64 go build main.go

# or
# linux
env GOOS=linux GOARCH=amd64 go build main.go

UI 側の起動方法

bash
# pnpm をインストール(未導入の場合)
npm install -g pnpm

# 依存関係をインストール
pnpm install

# 中国本土のネットワークではミラーを指定すると高速化できます
pnpm install --registry=https://registry.npmmirror.com

# 開発サーバーを起動
pnpm dev

📨 コミュニティ

<table> <tr> <td></td> <td></td> <td></td> <td><a href="https://space.bilibili.com/565616721">wenjianzhang</a></td> </tr> <tr> <td>微信</td> <td>公众号🔥🔥🔥</td> <td><a target="_blank" href="https://shang.qq.com/wpa/qunwpa?idkey=0f2bf59f5f2edec6a4550c364242c0641f870aa328e468c4ee4b7dbfb392627b"></a></td> <td>哔哩哔哩🔥🔥🔥</td> </tr> </table>

💎 コントリビューター

<span style="margin: 0 5px;" ><a href="https://github.com/wenjianzhang" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/G-Akiraka" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/lwnmengjing" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/bing127" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/chengxiao" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/NightFire0307" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/appleboy" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/ninstein" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/kikiyou" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/horizonzy" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/Cassuis" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/hqcchina" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/nodece" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/stephenzhang0713" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/zhouxixi-dev" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/Jalins" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/wkf928592" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/wxxiong6" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/Silicon-He" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/GizmoOAO" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/bestgopher" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/wxb1207" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/misakichan" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/zhuxuyang" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/mss-boot" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/AuroraV" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/Vingurzhou" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/haimait" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/zyd" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/infnan" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/d1y" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/qlijin" ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/logtous " ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/stepway " ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/NaturalGao " ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/DemoLiang " ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/jfcg " ></a></span> <span style="margin: 0 5px;" ><a href="https://github.com/Nicole0724 " ></a></span>

JetBrains のオープンソースライセンス支援

go-admin は一貫して JetBrains 社の GoLand 統合開発環境で開発されています。free JetBrains Open Source license(s) による正規の無償ライセンス提供に、この場を借りて感謝を申し上げます。

<a href="https://www.jetbrains.com/?from=kubeadm-ha" target="_blank"></a>

🤝 謝辞

  1. ant-design
  2. ant-design-pro
  3. arco-design
  4. arco-design-pro
  5. gin
  6. casbin
  7. spf13/viper
  8. gorm
  9. gin-swagger
  10. golang-jwt
  11. vue-element-admin
  12. ruoyi-vue
  13. form-generator

🤟 支援

このプロジェクトがお役に立ちましたら、作者にジュースを一杯おごる形で応援いただけます :tropical_drink:

🤝 関連リンク

🔑 License

MIT

Copyright (c) 2026 wenjianzhang