gin-vue-devops-old
gin-vue-devops-old copied to clipboard
基于Gin和Vue框架开发DevOps平台(旧)
åæ¯è¯´æ
- developï¼ æ¯å¼ååæ¯ï¼æææ°æ交代ç
- masterï¼ æ¯ç¨³å®åæ¯ï¼ä»£ç ä»developåè¿æ¥
注æ
å GitHub使ç¨ä¸ç¨³å®ï¼æ¬é¡¹ç®ä¸»è¦ç»´æ¤å¨Giteeãhttps://gitee.com/xu918/gin-vue-devops
项ç®ä»ç»
æ¬é¡¹ç®åºäºGin-Vue-Adminå¼æºåå端æ¡æ¶å¼å (ç¹å«æè°¢!)ï¼å¨æ¤åºç¡ä¸åäºå¤§éç²¾ç®ï¼åå¾å®ç°ç®¡çKubernetesãåºç¨çæ§ååå¸åæ»çåè½ã
ææ¯æ
- å端æ¡æ¶ï¼Element-uiãVue
- åå°æ¡æ¶ï¼Gin
é¨ç½²ä½¿ç¨
- nodeçæ¬ > v8.6.0
- golangçæ¬ >= v1.14
- IDEæ¨èï¼Goland
å¯å¨Server端
ä¿®æ¹é ç½®æ件
# å
é项ç®
git clone [email protected]:openstack-test/gin-vue-devops.git
# ä¿®æ¹server/config.yamlæ件. å
¶ä¸mysqlæ°æ®åºéè¦å
å建好
# mysql configuration
mysql:
path: '127.0.0.1:3306'
config: 'charset=utf8mb4&parseTime=True&loc=Local'
db-name: 'gin-vue-devops'
username: 'root'
password: 'Aa@6447985'
max-idle-conns: 10
max-open-conns: 100
log-mode: false
# redis configuration
redis:
db: 0
addr: '127.0.0.1:6379'
password: ''
# å°kubeconfigæ件æ¾å¨server/kubeconfigç®å½ä¸,æ件å为.kube-staging
åå§åæ°æ®åº
- Windowsç¨æ·
å¨serverç®å½ä¸ï¼æå¼ç»ç«¯æ§è¡
./initdb.bat
- Linux/Macç¨æ·
# å¨serverç®å½ä¸,å
æ建gvaç»ç«¯å·¥å
·
make gva
# 使ç¨gvaåå§åæ°æ®, å¦æä¸ä½¿ç¨make initdb, 使ç¨./gva initdbä¹å¯ä»¥
make initdb
ä½¿ç¨ golandçç¼è¾å·¥å ·ï¼æå¼serverç®å½
# è¿å
¥serverç®å½å®è£
goä¾èµå
go list (go mod tidy)
# ç¼è¯
go build
# å¯å¨æå¡
./gin-vue-devops
å¯å¨Web端
# è¿å
¥webå端ç®å½
cd web
# å®è£
ä¾èµ
npm install --registry=https://registry.npm.taobao.org
# å¯å¨å端æå¡,ä¼èªå¨æå¼æµè§å¨é¡µé¢
npm run serve
# åå¸æå
ï¼åªå¨æ£å¼ä¸çº¿æ¶ä½¿ç¨ï¼,å°çæçdistç®å½ä¸çæææ件æ·è´å°nginxç®å½ä¸
npm run build
Swaggerèªå¨åAPIææ¡£
å®è£ swagger
go get -u github.com/swaggo/swag/cmd/swag
çæAPIææ¡£
cd server
swag init
æ§è¡ä¸é¢çå½ä»¤åï¼serverç®å½ä¸ä¼åºç°docsæ件夹ï¼ç»å½http://localhost:8888/swagger/index.html, å³å¯æ¥çswaggerææ¡£
项ç®æ¶æ
ææ¯éå
- å端ï¼ç¨åºäº
vue
çElement-UI
æ建åºç¡é¡µé¢ã - å端ï¼ç¨
Gin
å¿«éæ建åºç¡restfulé£æ ¼APIï¼Gin
æ¯ä¸ä¸ªgoè¯è¨ç¼åçWebæ¡æ¶ã - æ°æ®åºï¼éç¨
MySql
(5.6.44)çæ¬ï¼ä½¿ç¨gorm
å®ç°å¯¹æ°æ®åºçåºæ¬æä½ã - ç¼åï¼ä½¿ç¨
Redis
å®ç°è®°å½å½åæ´»è·ç¨æ·çjwt
令ç并å®ç°å¤ç¹ç»å½éå¶ã - APIææ¡£ï¼ä½¿ç¨
Swagger
æ建èªå¨åææ¡£ã - é
ç½®æ件ï¼ä½¿ç¨
viper
å®ç°yaml
æ ¼å¼çé ç½®æ件ã - æ¥å¿ï¼ä½¿ç¨
zap
å®ç°æ¥å¿è®°å½ã - Kubernetesï¼ä½¿ç¨
client-go
åºç®¡çKubernetesèµæºã
ç³»ç»æ¶æå¾
å端
å端
åè½é¢è§
ç®å½ç»æ
ââserver ï¼å端æ件夹ï¼
â ââapi ï¼APIï¼
| ââcmd ï¼æ°æ®åºè¡¨åå§åå·¥å
·ï¼
â ââconfig ï¼é
ç½®ç¸å
³ï¼
â ââcore ï¼å¯å¨ç¸å
³ï¼
â ââdocs ï¼swaggerææ¡£ç®å½ï¼
â ââglobal ï¼å
¨å±å¯¹è±¡ï¼
â ââinitialiaze ï¼gormãlogãrouteãvalidatorçç¸å
³åå§åï¼
â ââmiddleware ï¼ä¸é´ä»¶ï¼
â ââmodel ï¼ç»æä½å±ï¼
â ââresource ï¼èµæºï¼
â âârouter ï¼è·¯ç±ï¼
â ââservice (æå¡)
â ââutils ï¼å
Œ
±åè½ï¼
ââweb ï¼å端æ件夹ï¼
ââpublic ï¼åå¸æ¨¡æ¿ï¼
ââsrc ï¼æºç å
ï¼
ââapi ï¼ååå°åéajaxçå°è£
å±ï¼
ââassets ï¼éææ件ï¼
ââcomponentsï¼ç»ä»¶ï¼
âârouter ï¼å端路ç±ï¼
ââstore ï¼vuex ç¶æ管çä»ï¼
ââstyle ï¼éç¨æ ·å¼æ件ï¼
ââutils ï¼å端工å
·åºï¼
ââview ï¼å端页é¢ï¼
主è¦åè½
- æé管çï¼åºäº
jwt
åcasbin
å®ç°æé管ç - è§è²ç®¡çï¼å建æéæ§å¶ç主è¦å¯¹è±¡ï¼å¯ä»¥ç»è§è²åé ä¸åapiæéåèåæé
- èå管çï¼å®ç°ç¨æ·å¨æèåé ç½®ï¼å®ç°ä¸åè§è²ä¸åèå
- api管çï¼ä¸åç¨æ·å¯è°ç¨çapiæ¥å£çæéä¸å
- 表åçæå¨ï¼è¡¨åçæå¨åå© @form-generatorã
- 代ç çæå¨ï¼åºç¡é»è¾ä»¥åç®åcurd代ç èªå¨çæ
- Kubernetes管çï¼å æ¬é群ãNameSpaceãDeploymentãPod容å¨çèµæºå¯¹è±¡ç®¡ç
计åä»»å¡
- [ ] å®åKubernetesèµæºå¯¹è±¡ç®¡ç
- [ ] åºç¨å建ãåæ»ãæ¥è¯¢ãè¿å ¥å®¹å¨ç
- [ ] å ¶ä»