go-admin
English | 简体中文
Gin + Vue + Element UI based front-end and back-end separated permission management system
✨ Feature
-
Follow RESTful API design specifications
-
Provides rich middleware support based on GIN WEB API framework (user authentication, cross domain, access log, tracking ID, etc.)
-
Casbin-based RBAC access control model
-
JWT certification
-
Support Swagger documentation (based on swaggo)
-
GORM-based database storage that can expand many types of databases
-
Simple model mapping of configuration files to quickly get the desired configuration
-
TODO: unit test
🎁 Built-in functions
- User management: The user is the system operator. This function mainly completes the system user configuration.
- Department management: configure the system organization (company, department, group), and display the tree structure to support data permissions.
- Post management: Configure system users to hold positions.
- Menu management: configure system menus, operation permissions, button permission labels, etc.
- Role management: role menu permissions assignment, setting roles to divide data range permissions by organization.
- Dictionary management: to maintain some fixed data often used in the system.
- Parameter management: Dynamically configure common parameters for the system.
- Operation log: system normal operation log record and query; system exception information log record and query.
- Login log: The system login log record query contains login exceptions.
- System interface: Automatically generate related api interface documents according to business code.
Configuration details
- Configuration file description
settings:
application:
# Project launch environment
env: dev
# When env: demo, prompts for request operations other than GET
envmsg: "谢谢您的参与,但为了大家更好的体验,所以本次提交就算了吧!"
# Host IP or domain name, default 0.0.0.0
host: 0.0.0.0
# Whether to initialize the database structure and basic data; true: required; false: not required
isinit: false
# JWT encrypted string
jwtsecret: 123abc
# log storage path
logpath: temp/logs/log.log
# application name
name: go-admin
# application port
port: 8000
readtimeout: 1
writertimeout: 2
database:
# database name
database: dbname
# database type
dbtype: mysql
# database host
host: 127.0.0.1
# database password
password: password
# database port
port: 3306
# database username
username: root
redis:
# redis addresss
addr: 0.0.0.0:6379
# db
db: 0
# password
password: password
# read timeout
readtimeout: 50
- file path go-admin/src/goadmin/config/settings.yml
📦 evelopment
First start instructions
# Get the code
git clone https://github.com/wenjianzhang/go-admin.git
# Enter working path
cd ./goadmin/src/goadmin
# Build the project
go build
# Change setting
vi ./config/setting.yml (Note: Change isinit and database connection)
# 1. Database information in the configuration file
# Note: the corresponding configuration data under settings.database
# 2. Confirm database initialization parameters
# Note: If this is the first time settings.application.isinit is set, please set the current value to true, the system will automatically initialize the database structure and basic data information;
# 3. Confirm the log path
# Start the project or debug with the IDE
./goadmin
# See also instructions in WIKI
Document generation
swag init
If there is no swag
command go get installed
go get -u github.com/swaggo/swag/cmd/swag
Cross compilation
env GOOS=windows GOARCH=amd64 go build main.go
# or
env GOOS=linux GOARCH=amd64 go build main.go
🔗 Online Demo
admin / 123456
Demo address:http://www.zhangwj.com
🤝 Open source projects used
Version
2020-03-15 New Features and Optimization
- Add user avatar upload
- Add user password modification
- Operation log page adjustment
- Optimize captcha background color
I saw a lot of friends who experience the wrong verification code, so I adjusted the contrast for everyone to experience!
🤝 Thanks
License
Copyright (c) 2020 wenjianzhang
[中文]qq technical exchange group: 74520518