4 Star 35 Fork 0

SunXQ / GO-Admin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

GO-Admin

1.介绍

      本人是PHPER,但是Go是小白一名,本项目是 Go + vue 实现的后台管理系统本系统的架构理念为DDD(Domain Driven Design:领域驱动设计)模式(注:每个人对DDD的理解不同),该项目的代码质量不是很高,但是我会不断的改进不断的优化
(感觉代码不好,不要喷我哦)
      线上体验地址体验地址中的文件操作功能已经是单独的服务了,已经是实现了服务的注册与发现功能。

2.线上体验地址(全部服务应用都部署在K8s上)

[在线预览] : http://124.221.89.251:90/

    账   号:test
    密   码:1234567

3.项目本地搭建账号

    超级管理员
    账   号:SunXQ
    密   码:123456

    测试权限账号
    账   号:test
    密   码:1234567

4.QQ群:48340068 (有兴趣的小伙伴可以加群交流)

5 微服务拆分

   介绍:把文件功能拆分成一个单独的服务实现简单的微服务,通讯使用 GRPC (本项目中的file功能只维护web成的http接口,pkg、api(grpc接口)也单独部署)
   1. File、Pkg、Api、Log服务地址
      - File:https://gitee.com/xiao_hange/go-admin-file
      - Pkg: https://gitee.com/xiao_hange/go-admin-pkg
      - Api: https://gitee.com/xiao_hange/go-admin-api
      - Log: https://gitee.com/xiao_hange/go-admin-log
   2. Proto文件生成使用的是Buf 代替了 Protoc 的使用 ,根目下的 buf_gen.yaml 为 buf命令使用的配置文件
      - buf generate .\server\api\proto\   .\server\api\proto\ 为啥项目中存放proto文件的地方

6.主要功能

    1. 用户管理
    2. 角色管理
    3. 权限RBAC(支持 操作权限 ,查看权限,支持菜单通配符和一个页面多个权限配置)
    4. 文件管理(oss、cos)图片视频上传、表格导入导出,大表格使用队列异步发送邮件等
        - 第一种:下载方式是生成到本地在通过邮件的方式发送到对应的邮箱(这样服务器上需要定时清理)
        - 第二种:下载方式是生成文件直接上传到Cos上,通过邮件的方式给到下载链接进行下载
    5. 新增log可视化 ( Elasticsearch + FileBaet + Kafka + Kibana)
        - 目前收集时候 k8s 上 log (主要数据 Gorm log)
    6. 添加短信服务商、oss、cos等配置
    7. 一键代码生成
    8. OpenTelemetry 支持Gin、Mysql、Redis链路追踪,适配Zipkin、Jaeger
        - 接口添加了链路的追踪的开关(在要上报的接口中添加以下代码)
        - spanCtx := context.WithValue(ctx.Request.Context(), "Enable", true)
    9. Prometheus数据监控支持 Gin Http、Mysql、Redis等监控
    10. 消息队列(Kafka、RabbitMq)
    11. Grafana 数据分析与监控
    12. 自动化部署项目(CI/CD)
        - 使用 Jenkins 的 Pipeline 流水线一件部署到 K8S 
        - 构建镜像到远程仓库/Jenkinsfile 文件在server/build 文件中
        - k8s 文件在server/docker中  Deployment 和 Service 配置都在go-admin.yaml中
        - 安装kubectl 和 配置链接远程的K8S 
    13. 服务注册与发现功能(目前支持:Etcd、Consul)

    

7.实现实时修改配发送短信说明 (目前腾讯云发送可用 阿里后续会更新)

    - 暂时实时读取配置发送短信不支持依赖注入的方式,后续会这块进行改进(有想法的小伙伴可以和我一起完成)
    - 需要实时修改配置文件实现短信发送需要全局变量的方式实现
    - 需要在 server/internal/global 文件中定义全局变量
    - 在 InitTencentSms 需要给该 全局变量赋值在方法中已有注释
    - 需要在main 中的InitWebServer 附上初始化值已有注释
    - InitEtcdSetting 是实时监听远程配置中心的数据有没有变化 远程配置中心使用的是Etcd
    - Etcd 的安装使用的是Docker安装 启动需要  docker-compose up
    - etcd 简单操作命令 (还需要安装etcdctl)
    -  获取数据 etcdctl --endpoints=127.0.0.1:12379 get /xxxx
    -. 存放数据 etcdctl --endpoints=127.0.0.1:12379 put /xxxx  xxxx
    -. 把配置文件加载到etcd中 
    -. win     etcdctl --endpoints=127.0.0.1:12379 put /xxxx (Get-Content -Raw 你要导入的文件.yaml) 
    -. liunx   etcdctl --endpoints=127.0.0.1:12379 put /xxxx "$(<你要导入的文件.yaml)"

8 安装kubectl 和 配置链接远程的K8S

    - 下载 (会有一些慢)curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
    - 添加执行权限 chmod +x kubectl
    - 移动到可执行文件目录中 sudo mv kubectl /usr/local/bin/
    - 编辑远程看k8s配置 vim  ~/.kube/config  (配置信息去对应的服务平台获取即可)
    - 查看配置是否成功 kubectl cluster-info

9.项目内部截图

首页

菜单

授权

Jaeger

Jaeger

Prometheus数据监控支持

Prometheus数据监控支持

Prometheus数据监控支持

Grafana

空文件

简介

Go-Admin是一套比较实用的后台管理系统,拥有大部分后台基本功能 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/xiao_hange/go-admin.git
git@gitee.com:xiao_hange/go-admin.git
xiao_hange
go-admin
GO-Admin
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891