# server-asset **Repository Path**: yhjkcjm/server-asset ## Basic Information - **Project Name**: server-asset - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-04 - **Last Updated**: 2025-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GoFrame Template For SingleRepo Quick Start: - https://goframe.org/pages/viewpage.action?pageId=1114399 # 项目设计: ### 1. 数据库设计(SQLite) - **项目表(projects)**:存储项目信息(项目名称、城市、销售等) - **服务器表(servers)**:存储服务器信息(配置、状态、IP 地址等) - **服务器部署表(deployments)**:记录服务器上部署的服务或应用 ### 2. 后端(Go + go-fream) - API 端点 - 项目管理(增、删、改、查) - 服务器管理(增、删、改、查) - 巡检接口(统计服务器状态、部署信息) ### 3. 前端(Vue) - **项目管理页面** - **服务器资产管理页面** - **巡检统计页面** # go常用命令 ### 查看env环境 ``go env`` ### 设置GOROOT、GOPATH、GOCACHE、GOPROXY ```shell #goroot 为go解释器安装目录 go env set GOROOT='D:\Program Files\Go' # GOPATH为工作目录,应该设置为你的项目文件夹的路径 go env set GOROOT='D:\Program Files\go_data\go_path' # 设置GOPAROXY代理 go env set GOPROXY="https://goproxy.io,direct" setx GOPROXY "https://goproxy.io,direct" # 代理地址: https://goproxy.cn https://goproxy.io https://mirrors.aliyun.com/goproxy/ ``` 文档目录: https://goframe.org/pages/viewpage.action?pageId=1114399 # GO-fream ### 0、 安装框架工具 ```shell # https://github.com/gogf/gf/releases # 安装gf工具 ``` ### 1、安装GO-FREAM ```shell go install example.com/cmd@latest go get -u -v github.com/gogf/gf/v2 go install github.com/gogf/gf/cmd/gf/v2@latest # 手动编译 git clone https://github.com/gogf/gf && cd gf/cmd/gf && go install gf -v # 创建项目模板 gf init go_fream -u ``` ### 2、更新mod常用命令 ```shell go mod init go_fream # 更新mod文件 go mod tidy go mod vendor ``` ### 3、构建项目 ```shell # 创建项目模板 gf init go_fream -u # 运行项目模板 cd go_fream && gf run main.go # 默认情况下项目会设置Web服务端口为8000、开启OpenAPI接口文档、展示Swagger接口文档页面 # http://127.0.0.1:8000/swagger/ # http://127.0.0.1:8000/api.json # 升级框架版本 gf up -a ``` ### 4、项目目录树 ```bash ├─api │ └─hello │ └─v1 ├─hack ├─internal │ ├─cmd │ ├─consts │ ├─controller │ │ └─hello │ ├─dao │ ├─logic │ ├─model │ │ ├─do │ │ └─entity │ ├─packed │ └─service ├─manifest │ ├─config │ ├─deploy │ │ └─kustomize │ │ ├─base │ │ └─overlays │ │ └─develop │ ├─docker │ ├─i18n │ └─protobuf ├─resource │ ├─public │ │ ├─html │ │ ├─plugin │ │ └─resource │ │ ├─css │ │ ├─image │ │ └─js │ └─template └─utility ``` | 目录/文件名称 | 说明 | 描述 | | :-------------- | :------- | :----------------------------------------------------------- | | `api` | 对外接口 | 对外提供服务的输入/输出数据结构定义。考虑到版本管理需要,往往以`api/xxx/v1...`存在。 | | `hack` | 工具脚本 | 存放项目开发工具、脚本等内容。例如,`CLI`工具的配置,各种`shell/bat`脚本等文件。 | | `internal` | 内部逻辑 | 业务逻辑存放目录。通过`Golang internal`特性对外部隐藏可见性。 | | ` - cmd` | 入口指令 | 命令行管理目录。可以管理维护多个命令行。 | | ` - consts` | 常量定义 | 项目所有常量定义。 | | ` - controller` | 接口处理 | 接收/解析用户输入参数的入口/接口层。 | | ` - dao` | 数据访问 | 数据访问对象,这是一层抽象对象,用于和底层数据库交互,仅包含最基础的 `CURD` 方法 | | ` - logic` | 业务封装 | 业务逻辑封装管理,特定的业务逻辑实现和封装。往往是项目中最复杂的部分。 | | ` - model` | 结构模型 | 数据结构管理模块,管理数据实体对象,以及输入与输出数据结构定义。 | | ` - do` | 领域对象 | 用于`dao`数据操作中业务模型与实例模型转换,由工具维护,用户不能修改。 | | ` - entity` | 数据模型 | 数据模型是模型与数据集合的一对一关系,由工具维护,用户不能修改。 | | ` - service` | 业务接口 | 用于业务模块解耦的接口定义层。具体的接口实现在`logic`中进行注入。 | | `manifest` | 交付清单 | 包含程序编译、部署、运行、配置的文件。常见内容如下: | | ` - config` | 配置管理 | 配置文件存放目录。 | | ` - docker` | 镜像文件 | `Docker`镜像相关依赖文件,脚本文件等等。 | | ` - deploy` | 部署文件 | 部署相关的文件。默认提供了`Kubernetes`集群化部署的`Yaml`模板,通过`kustomize`管理。 | | ` - protobuf` | 协议文件 | `GRPC`协议时使用的`protobuf`协议定义文件,协议文件编译后生成`go`文件到`api`目录。 | | `resource` | 静态资源 | 静态资源文件。这些文件往往可以通过 资源打包/镜像编译 的形式注入到发布文件中。 | | `go.mod` | 依赖管理 | 使用`Go Module`包管理的依赖描述文件。 | | `main.go` | 入口文件 | 程序入口文件。 | ### 5、 添加mysql驱动 ```shell go get -u github.com/gogf/gf/contrib/drivers/mysql/v2 # sqlite3 ``` ### 6、安装jwt ```shell go get -u github.com/golang-jwt/jwt/v5 ``` ### 7> ```shell go get "github.com/shirou/gopsutil" #go get github.com/shirou/gopsutil/v3/cpu #go get github.com/shirou/gopsutil/v3/disk #go get github.com/shirou/gopsutil/v3/host #go get github.com/shirou/gopsutil/v3/mem #go get github.com/shirou/gopsutil/v3/net ``` ## Dao层使用 ### 1. 配置dao `hack/comfig.yaml`添加 ```shell gfcli: gen: dao: link: "mysql:root:root@tcp(127.0.0.1:3306)/goframe" tables: "book, user, dept, emp, hobby" jsonCase: "Snake" ``` 在命令行中执行 ```shell gf gen dao # 该命令会生成dao以及model下各个表对应的结构与代码。 ``` # git #### 修改远端仓库地址 ```git # 查看远端地址 git remote -v # 查看远端仓库名 git remote # 重新设置远程仓库 git remote set-url origin https://gitee.com/xx/xx.git (新地址) # 删除远程的仓库 git remote rm origin ``` #### git强行拉取远程到本地并覆盖本地 ```git git fetch --all git reset --hard origin/main ``` #### git强行推送远程 ```git git push origin master --force ```