From c6cf2e13bf5d3f5ab6e1aebad738607362ef6b19 Mon Sep 17 00:00:00 2001 From: engigu Date: Fri, 26 Jan 2024 16:47:28 +0800 Subject: [PATCH] chroe: update readme.md for deploy --- README.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++- main.go | 9 +++++- web/README.md | 1 + 3 files changed, 95 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4c79a65..b04497b 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Message Nest 是一个灵活而强大的消息推送整合平台,旨在简化 ![image](https://raw.githubusercontent.com/engigu/resources/images/2024/01/26/593a06ac4d1db666acb8a9fb8719e734.gif) ## 使用方法 🚀 -#### 1.直接运行最新的release打包的可执行文件(推荐) +#### 1.直接运行最新的release打包的可执行文件(推荐,不用部署前端页面) 1. 下载最新的系统版本对应的release, 解压 2. 新建一个数据库 3. 重命名conf/app.example.ini为conf/app.ini @@ -79,6 +79,91 @@ Message Nest 是一个灵活而强大的消息推送整合平台,旨在简化 ``` 7. 启动项目,访问8000端口,初始账号为admin,密码为123456 +#### 2.前后端分离部署(待更新) + +[//]: # (1. 前端项目构建) + +[//]: # (```shell) + +[//]: # (cd web && npm i && npm run build) + +[//]: # (```) + +[//]: # (2. 配置配置文件,参考上面,需要注意将配置中`EmbedHtml = disable`取消注释) + +[//]: # (3. 启动go服务) + +[//]: # (```shell) + +[//]: # (go mod tidy) + +[//]: # (CGO_ENABLED=0 go build -o Message-Nest) + +[//]: # (./Message-Nest) + +[//]: # (```) + +[//]: # (4. 配置Nginx,将静态文件) + +[//]: # (5. 配置Nginx,将后端接口转发) + +#### 3. 开发调试运行 +1. 重命名conf/app.example.ini为conf/app.ini, 关键配置如下 +```ini +[app] +JwtSecret = message-nest +LogLevel = INFO + +; 第一次运行务必打开,初始化数据 +InitData = enable + +[server] +; RunMode务必设置成debug,会自动添加跨域 +RunMode = debug +HttpPort = 8000 +ReadTimeout = 60 +WriteTimeout = 60 +; 取消EmbedHtml的注释(启用前后端分离),然后到web目录下面,npm run dev启动前端页面 +EmbedHtml = disable + +[database] +; 开启SQL打印 +SqlDebug = enable + +Type = mysql +User = root +Password = Aa123456 +Host = vm.server +Port = 3308 +Name = yourDbName +TablePrefix = message_ + +``` +2. 运行main.go,服务启动后会运行在8000端口 +```shell +go mod tidy +go run main.go +``` +3. 启动前端页面,页面启动后会提示访问url,一般是`http://127.0.0.1:5173` +```shell +cd web +npm i +nom run dev +``` +4. 访问`http://127.0.0.1:5173`,进行调试开发,接口会自动转发到go服务`http://localhost:8000` + + +#### 关于EmbedHtml配置的说明 + +这个配置可以理解为单应用模式(或者前后端分离)的开关 + +1. 取消这个配置的注释,表示前后端分离,表示go服务启动的时候只会有api服务,需要到web目录下,npm run dev启动前端项目。然后访问前端项目提示的端口服务,一般是127.0.0.1:5173。 + 或者使用npm run build,用Nginx部署前端。 + +2. 注释这个配置,表示单应用,启动go服务,会把web/dist目录下文件作为前端静态资源。 + 如果目录下没有静态资源文件,需要到web目录下,npm run build构建生成。 + +两种方式各有优缺点,综合考虑下来,推荐直接使用release的打包执行文件,其中已经内置了页面静态资源,只用运行一个服务。 ## 完整配置说明 ⚙️ diff --git a/main.go b/main.go index 59eb139..7bfd06b 100644 --- a/main.go +++ b/main.go @@ -45,9 +45,16 @@ func main() { MaxHeaderBytes: maxHeaderBytes, } + startInfo := "" + if setting.ServerSetting.RunMode == "debug" { + startInfo = fmt.Sprintf("run mode: %s, start message server @ http://localhost%s", setting.ServerSetting.RunMode, endPoint) + } else { + startInfo = fmt.Sprintf("run mode: %s, start message server @ http://0.0.0.0%s", setting.ServerSetting.RunMode, endPoint) + } + logrus.WithFields(logrus.Fields{ "prefix": fmt.Sprintf("[PID:%d]", os.Getpid()), - }).Infof("start message server @ http://0.0.0.0%s", endPoint) + }).Infof(startInfo) err := server.ListenAndServe() if err != nil { diff --git a/web/README.md b/web/README.md index d81e1fb..20c8cb5 100644 --- a/web/README.md +++ b/web/README.md @@ -21,3 +21,4 @@ npm run dev ```sh npm run build ``` +[README.md](..%2FREADME.md) \ No newline at end of file