# go-admin-team/go-admin architecture

> Architecture diagram of the GitHub repository go-admin-team/go-admin, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/go-admin-team/go-admin
- Repository: https://github.com/go-admin-team/go-admin

## Overview

go-admin is a Gin-based backend for a front-end-separated administration system. An operator’s client sends REST requests; the server builds routes and middleware, authenticates users with JWT, applies Casbin RBAC, and serves administrative functions backed by GORM. The product also includes code generation, form building, service monitoring, file handling, and job management. Startup and migration commands initialize runtime resources and database schemas. The excerpts show selected routing, authentication, database, storage, and migration behavior; several feature links below are documented or marked unverified rather than inferred from unsampled implementations.

Main entry points: [`app/admin/router/sys_router.go`](https://github.com/go-admin-team/go-admin/blob/master/app/admin/router/sys_router.go) (Route registration), [`cmd/api/server.go`](https://github.com/go-admin-team/go-admin/blob/master/cmd/api/server.go) (HTTP server), [`app/other/apis/file.go`](https://github.com/go-admin-team/go-admin/blob/master/app/other/apis/file.go) (File handling), [`common/middleware/auth.go`](https://github.com/go-admin-team/go-admin/blob/master/common/middleware/auth.go) (JWT authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["API runtime"]
  node_server["HTTP server<br/>[server.go]"]
  node_routes["Route registration<br/>[sys_router.go]"]
  node_jwt["JWT authentication<br/>[auth.go]"]
  node_login["Login and identity<br/>[auth.go]"]
  node_rbac["RBAC permissions<br/>[permission.go]"]
end

subgraph group_admin["Administration"]
  node_adminapi["Admin APIs<br/>[sys_user.go]"]
  node_adminservices["Admin services<br/>[sys_user.go]"]
  node_adminmodels["Admin data models<br/>[sys_user.go]"]
  node_adminfeatures["Admin capabilities"]
end

subgraph group_extensions["Product extensions"]
  node_generator["Code generation<br/>[gen.go]"]
  node_formbuilder["Form builder<br/>[index.8e6d9f8f.js]"]
  node_monitoring["Service monitoring"]
  node_files["File handling<br/>[file.go]"]
  node_jobs["Job management<br/>[sys_job.go]"]
end

subgraph group_platform["Data and operations"]
  node_database[("Database setup<br/>[initialize.go]")]
  node_storage["Cache and queue<br/>[initialize.go]"]
  node_migrations["Schema migrations<br/>[install.go]"]
  node_fileproviders["File providers<br/>[initialize.go]"]
end

node_operator(("Operator client"))

node_operator -.->|"sends requests"| node_server
node_server -->|"builds routes"| node_routes
node_routes -->|"registers login"| node_jwt
node_routes -->|"protects routes"| node_rbac
node_jwt -->|"uses handlers"| node_login
node_adminapi -.->|"delegates"| node_adminservices
node_adminservices -.->|"uses models"| node_adminmodels
node_database -.->|"initializes runtime"| node_server
node_storage -.->|"initializes adapters"| node_server
node_migrations -->|"uses database"| node_database
node_generator -->|"registers endpoints"| node_routes
node_formbuilder -.->|"supports generation"| node_generator
node_monitoring -.->|"serves monitoring"| node_routes
node_files -.->|"serves file APIs"| node_routes
node_jobs -->|"starts jobs"| node_server
node_files -.->|"uses providers"| node_fileproviders

click node_server "https://github.com/go-admin-team/go-admin/blob/master/cmd/api/server.go"
click node_routes "https://github.com/go-admin-team/go-admin/blob/master/app/admin/router/sys_router.go"
click node_jwt "https://github.com/go-admin-team/go-admin/blob/master/common/middleware/auth.go"
click node_login "https://github.com/go-admin-team/go-admin/blob/master/common/middleware/handler/auth.go"
click node_rbac "https://github.com/go-admin-team/go-admin/blob/master/common/middleware/permission.go"
click node_adminapi "https://github.com/go-admin-team/go-admin/blob/master/app/admin/apis/sys_user.go"
click node_adminservices "https://github.com/go-admin-team/go-admin/blob/master/app/admin/service/sys_user.go"
click node_adminmodels "https://github.com/go-admin-team/go-admin/blob/master/app/admin/models/sys_user.go"
click node_adminfeatures "https://github.com/go-admin-team/go-admin/tree/master/app/admin/service"
click node_generator "https://github.com/go-admin-team/go-admin/blob/master/app/other/apis/tools/gen.go"
click node_formbuilder "https://github.com/go-admin-team/go-admin/blob/master/static/form-generator/js/index.8e6d9f8f.js"
click node_monitoring "https://github.com/go-admin-team/go-admin/blob/master/app/other/apis/sys_server_monitor.go"
click node_files "https://github.com/go-admin-team/go-admin/blob/master/app/other/apis/file.go"
click node_jobs "https://github.com/go-admin-team/go-admin/blob/master/app/jobs/service/sys_job.go"
click node_database "https://github.com/go-admin-team/go-admin/blob/master/common/database/initialize.go"
click node_storage "https://github.com/go-admin-team/go-admin/blob/master/common/storage/initialize.go"
click node_migrations "https://github.com/go-admin-team/go-admin/blob/master/cmd/migrate/install.go"
click node_fileproviders "https://github.com/go-admin-team/go-admin/blob/master/common/file_store/initialize.go"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_routes,node_jwt,node_login,node_rbac,node_operator toneBlue
class node_adminapi,node_adminservices,node_adminmodels,node_adminfeatures toneAmber
class node_generator,node_formbuilder,node_monitoring,node_files,node_jobs toneMint
class node_database,node_storage,node_migrations,node_fileproviders toneRose
```

## Components

### API runtime

- [HTTP server](https://github.com/go-admin-team/go-admin/blob/master/cmd/api/server.go): `cmd/api/server.go`
- [Route registration](https://github.com/go-admin-team/go-admin/blob/master/app/admin/router/sys_router.go): `app/admin/router/sys_router.go`
- [JWT authentication](https://github.com/go-admin-team/go-admin/blob/master/common/middleware/auth.go): `common/middleware/auth.go`
- [Login and identity](https://github.com/go-admin-team/go-admin/blob/master/common/middleware/handler/auth.go): `common/middleware/handler/auth.go`
- [RBAC permissions](https://github.com/go-admin-team/go-admin/blob/master/common/middleware/permission.go): `common/middleware/permission.go`

### Administration

- [Admin APIs](https://github.com/go-admin-team/go-admin/blob/master/app/admin/apis/sys_user.go): `app/admin/apis/sys_user.go`
- [Admin services](https://github.com/go-admin-team/go-admin/blob/master/app/admin/service/sys_user.go): `app/admin/service/sys_user.go`
- [Admin data models](https://github.com/go-admin-team/go-admin/blob/master/app/admin/models/sys_user.go): `app/admin/models/sys_user.go`
- [Admin capabilities](https://github.com/go-admin-team/go-admin/tree/master/app/admin/service): `app/admin/service`

### Product extensions

- [Code generation](https://github.com/go-admin-team/go-admin/blob/master/app/other/apis/tools/gen.go): `app/other/apis/tools/gen.go`
- [Form builder](https://github.com/go-admin-team/go-admin/blob/master/static/form-generator/js/index.8e6d9f8f.js): `static/form-generator/js/index.8e6d9f8f.js`
- [Service monitoring](https://github.com/go-admin-team/go-admin/blob/master/app/other/apis/sys_server_monitor.go): `app/other/apis/sys_server_monitor.go`
- [File handling](https://github.com/go-admin-team/go-admin/blob/master/app/other/apis/file.go): `app/other/apis/file.go`
- [Job management](https://github.com/go-admin-team/go-admin/blob/master/app/jobs/service/sys_job.go): `app/jobs/service/sys_job.go`

### Data and operations

- [Database setup](https://github.com/go-admin-team/go-admin/blob/master/common/database/initialize.go): `common/database/initialize.go`
- [Cache and queue](https://github.com/go-admin-team/go-admin/blob/master/common/storage/initialize.go): `common/storage/initialize.go`
- [Schema migrations](https://github.com/go-admin-team/go-admin/blob/master/cmd/migrate/install.go): `cmd/migrate/install.go`
- [File providers](https://github.com/go-admin-team/go-admin/blob/master/common/file_store/initialize.go): `common/file_store/initialize.go`

### Other components

- **Operator client**

## Connections

- Operator client → HTTP server: sends requests
- HTTP server → Route registration: builds routes (evidence: `cmd/api/server.go`)
- Route registration → JWT authentication: registers login (evidence: `app/admin/router/sys_router.go`)
- Route registration → RBAC permissions: protects routes (evidence: `app/admin/router/sys_router.go`)
- JWT authentication → Login and identity: uses handlers (evidence: `common/middleware/auth.go`)
- Admin APIs → Admin services: delegates
- Admin services → Admin data models: uses models
- Database setup → HTTP server: initializes runtime
- Cache and queue → HTTP server: initializes adapters
- Schema migrations → Database setup: uses database
- Code generation → Route registration: registers endpoints
- Form builder → Code generation: supports generation
- Service monitoring → Route registration: serves monitoring
- File handling → Route registration: serves file APIs
- Job management → HTTP server: starts jobs (evidence: `cmd/api/server.go`)
- File handling → File providers: uses providers
