feat: add docs pages

This commit is contained in:
Your Name
2025-12-06 13:07:30 +08:00
committed by engigu
parent 42c7c9a1b4
commit 4d955d183a
6 changed files with 20 additions and 47 deletions
-170
View File
@@ -1,170 +0,0 @@
# 配置说明
## 完整配置文件
```ini
[app]
JwtSecret = message-nest
; 暂时无用
RuntimeRootPath = runtime/
LogLevel = INFO
[server]
; debug or release
; debug模式下会自动添加跨域headers
RunMode = release
HttpPort = 8000
ReadTimeout = 60
WriteTimeout = 60
; use embed html static file
; 是否使用embed打包的静态资源
; 如果运行release打包后的应用,请注释这个设置。
; 如果取消这个注释,只会单独运行api服务,前端页面需要到web目录手动npm run dev, 运行前端服务
; EmbedHtml = disable
[database]
; 配置使用什么数据库,支持:mysql、sqlite、tidb
Type = mysql
User = root
Password = password
Host = 123.1.1.1
Name = db_name
Port = 3306
; -- 其他配置
; 表前缀
TablePrefix = message_
; -- 是否打开sql打印
; SqlDebug = enable
; 数据库连接是否开启ssl, value: [false | true]
Ssl = true
```
## 配置项说明
### [app] 应用配置
| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| JwtSecret | JWT密钥,用于token生成 | message-nest |
| RuntimeRootPath | 运行时根路径(暂时无用) | runtime/ |
| LogLevel | 日志级别:DEBUG/INFO/ERROR | INFO |
### [server] 服务器配置
| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| RunMode | 运行模式:debug/releasedebug模式会自动添加跨域 | release |
| HttpPort | HTTP服务端口 | 8000 |
| ReadTimeout | 读取超时时间(秒) | 60 |
| WriteTimeout | 写入超时时间(秒) | 60 |
| EmbedHtml | 是否使用embed打包的静态资源,注释则启用单应用模式 | - |
### [database] 数据库配置
| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| Type | 数据库类型:mysql/sqlite/tidb | mysql |
| User | 数据库用户名 | - |
| Password | 数据库密码 | - |
| Host | 数据库主机地址 | - |
| Port | 数据库端口 | 3306 |
| Name | 数据库名称 | - |
| TablePrefix | 数据表前缀 | message_ |
| SqlDebug | 是否打印SQL,设置enable开启 | - |
| Ssl | 数据库连接是否开启SSL | false |
## Docker 环境变量
使用Docker部署时,可以通过环境变量进行配置:
| 变量 | 说明 |
|------|------|
| JWT_SECRET | jwt秘钥,可选,默认为message-nest |
| LOG_LEVEL | 日志等级,可选,默认为INFODEBUG/INFO/ERROR |
| RUN_MODE | 运行模式,可选,默认release,为debug将自动添加跨域 |
| DB_TYPE | 数据库类型,sqlite/mysql。默认为sqlite,存储路径为conf/database.db |
| MYSQL_HOST | mysql-hostDB_TYPE=mysql必填 |
| MYSQL_PORT | mysql端口,DB_TYPE=mysql必填 |
| MYSQL_USER | mysql用户名,DB_TYPE=mysql必填 |
| MYSQL_PASSWORD | mysql数据库密码,DB_TYPE=mysql必填 |
| MYSQL_DB | mysql数据库名字,DB_TYPE=mysql必填 |
| MYSQL_TABLE_PREFIX | mysql数据表前缀,DB_TYPE=mysql必填 |
| SSL | 是否开启SSL |
| SQL_DEBUG | 是否打印SQL,可选,默认关,设置enable为开启 |
## 配置示例
### 单应用模式(推荐)
```ini
[app]
JwtSecret = message-nest
LogLevel = INFO
[server]
RunMode = release
HttpPort = 8000
ReadTimeout = 60
WriteTimeout = 60
; 注释EmbedHtml,启用单应用模式
; EmbedHtml = disable
[database]
; 关闭SQL打印
; SqlDebug = enable
Type = mysql
User = root
Password = Aa123456
Host = vm.server
Port = 3308
Name = yourDbName
TablePrefix = message_
```
### 开发调试模式
```ini
[app]
JwtSecret = message-nest
LogLevel = INFO
[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_
```
### SQLite 配置
```ini
[app]
JwtSecret = message-nest
LogLevel = INFO
[server]
RunMode = release
HttpPort = 8000
ReadTimeout = 60
WriteTimeout = 60
[database]
Type = sqlite
TablePrefix = message_
```
-98
View File
@@ -1,98 +0,0 @@
# EmbedHtml 配置说明
## 什么是 EmbedHtml
这个配置可以理解为单应用模式(或者前后端分离)的开关。
## 配置方式
### 方式一:单应用模式(推荐)
**注释 EmbedHtml 配置**
```ini
[server]
RunMode = release
HttpPort = 8000
ReadTimeout = 60
WriteTimeout = 60
; 注释EmbedHtml,启用单应用模式
; EmbedHtml = disable
```
**说明:**
- 启动go服务,会把web/dist目录下文件作为前端静态资源
- 如果目录下没有静态资源文件,需要到web目录下,执行 `npm run build` 构建生成
- 只需要运行一个服务即可访问完整功能
- 适合生产环境部署
**适用场景:**
- 使用 Release 打包的可执行文件
- Docker 部署
- 生产环境
### 方式二:前后端分离模式
**启用 EmbedHtml 配置**
```ini
[server]
RunMode = debug
HttpPort = 8000
ReadTimeout = 60
WriteTimeout = 60
; 取消注释,启用前后端分离
EmbedHtml = disable
```
**说明:**
- go服务启动时只会有API服务
- 需要到web目录下,执行 `npm run dev` 启动前端项目
- 访问前端项目提示的端口服务,一般是 `http://127.0.0.1:5173`
- 或者使用 `npm run build`,用Nginx部署前端
**适用场景:**
- 开发调试
- 需要修改前端代码
- 前后端独立部署
## 两种方式对比
| 特性 | 单应用模式 | 前后端分离模式 |
|------|-----------|--------------|
| 部署复杂度 | 简单,只需一个服务 | 复杂,需要两个服务 |
| 开发调试 | 不便,需要重新构建 | 方便,支持热更新 |
| 资源占用 | 较少 | 较多 |
| 适用环境 | 生产环境 | 开发环境 |
| 推荐指数 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
## 推荐方案
综合考虑下来,推荐直接使用以下方式:
1. **Release 打包执行文件** - 已内置页面静态资源,开箱即用
2. **Docker 环境变量部署** - 配置简单,一键启动
这两种方式都是单应用模式,只需运行一个服务即可。
## 常见问题
### Q: 为什么访问页面显示404?
A: 检查以下几点:
1. 如果是单应用模式,确保 `EmbedHtml` 已注释
2. 确保 `web/dist` 目录下有静态资源文件
3. 如果没有,执行 `cd web && npm run build` 构建
### Q: 开发时如何快速调试?
A:
1. 设置 `RunMode = debug`
2. 启用 `EmbedHtml = disable`
3. 启动后端:`go run main.go`
4. 启动前端:`cd web && npm run dev`
5. 访问前端提示的URL(通常是 http://127.0.0.1:5173
### Q: Docker 部署需要配置 EmbedHtml 吗?
A: 不需要。Docker 镜像已经内置了前端静态资源,默认就是单应用模式。
+1 -15
View File
@@ -1,18 +1,4 @@
# 特色功能
## 核心特性
### 🔄 整合性
提供了多种消息推送方式,包括邮件、钉钉、企业微信等,方便你集中管理和定制通知。
### 🎨 自定义性
可以根据需求定制消息推送策略,满足不同场景的个性化需求。
### 🛠 开放性
易于扩展和集成新的消息通知服务,以适应未来的变化。
## 支持的推送方式