# goserver **Repository Path**: ouhaoqiang/goserver ## Basic Information - **Project Name**: goserver - **Description**: go服务启动模版 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-26 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # goserver go 项目服务模版,用于快速创建一个 go 服务,集成了编译服务、启动脚本、停止脚本功能。 ## 快速使用 ### 创建一个项目 ```shell mkdir mygoserver cd mygoserver # 创建go mod go mod init mygoserver # 第一次使用gs-cli时,请安装 go get gitee.com/ouhaoqiang/goserver/gs-cli go install gitee.com/ouhaoqiang/goserver/gs-cli # 通过gs-cli生成goserver模板 gs-cli init -a ouhaoqiang -l mit # 生成goserver默认配置文件 gs-cli config ``` ### 编译项目服务 > 编译 ```shell make ``` > 编译成功后会生成`buildSave`目录和`{{ .AppName }}_xxxxxxx_x86_64.tgz`部署包 ```shell ls buildSave ``` ### 部署项目服务 > 部署编译后的包 ```shell mkdir -p /data/soft/ tar -xvf mygoserver_08afd0c_x86_64.tgz -C /data/soft/ ``` ### 运行项目服务 ```shell cd /data/soft/mygoserver/ ./start.sh ``` ### 停止项目服务 ```shell cd /data/soft/mygoserver/ ./stop.sh ``` ### 查看版本 ```shell cd /data/soft/{{ .AppName }}/ ./{{ .AppName }} version ``` ### 更新构建工具 - 由于gs-cli会更新,带来了`makefile` `start.sh` `stop.sh`脚本的更新,所以需要用到`gs-cli update`来对这些文件更新。 - `gs-cli update`只能在`goserver`创建的项目根目录中使用。依赖于`makefile`里面的`server_name`变量。 ```shell cd /data/soft/mygoserver/ gs-cli update ``` ## TODO > 代办事项 - 实现配置热加载逻辑 `./reload.sh` ```shell #!/bin/bash cd $(dirname $0) server_name={{ .AppName }} configPath=./deploy/config/config.yaml # 运行命令 ./${server_name} reload --config ${configPath} ``` - gs-cli命令添加版本功能 `gs-cli version` - 添加docker 镜像构件功能 `make image` ## Completed > 已完成功能 - 修改 logger,简化调用长度。 ```go // 从logger.Logger的调用方式 logger.Logger.Debug("服务关闭") // 改为 logger.Debug("服务关闭") ``` - 修复make时缺少deploy目录会报错的问题 已经修复 ```shell make ... ... [ -d "deploy" ] && cp -r deploy buildSave/echogoserver/ make: *** [makefile:49:cpMaterial] 错误 1 ``` - 优化在项目目录中有文件的情况下`gs-cli init`会覆盖文件的问题 添加了创建前对文件路径的判断,如果有其中一个文件已经存在就不会进行初始化创建 - 添加了`gs-cli update`命令 添加构件工具更新功能,该功能可以更新`makefile`,`start.sh`,`stop.sh`文件 由于gs-cli会更新,带来了`makefile` `start.sh` `stop.sh`脚本的更新,所以需要用到`gs-cli update`来对这些文件更新。 `gs-cli update`只能在`goserver`创建的项目根目录中使用。依赖于`makefile`里面的`server_name`变量。