Compare commits
3 Commits
05a39bd495
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c34d7f43fc | ||
|
|
b973bdaf47 | ||
|
|
b29a7bbc63 |
27
.gitignore
vendored
27
.gitignore
vendored
@@ -7,9 +7,21 @@
|
||||
*.log
|
||||
nohup.out
|
||||
|
||||
# 二进制文件和备份(根目录)
|
||||
sms-receiver
|
||||
sms-receiver-new
|
||||
sms-receiver-new.backup
|
||||
sms-receiver-new.v2.0.0
|
||||
sms-receiver-v2
|
||||
|
||||
# 配置文件(根目录)
|
||||
config.yaml
|
||||
|
||||
# 临时文件
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.backup
|
||||
|
||||
# Go 相关
|
||||
go.sum
|
||||
@@ -21,6 +33,15 @@ go.sum
|
||||
*.swo
|
||||
*~
|
||||
|
||||
# 备份文件
|
||||
*.bak
|
||||
*.backup
|
||||
# 运行时目录
|
||||
data/
|
||||
logs/
|
||||
build/
|
||||
|
||||
# 二进制目录(如果是旧的)
|
||||
sms-receiver-go/
|
||||
|
||||
# Python 版本(不应该在 Go 项目中)
|
||||
sms-receiver/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
103
CHANGELOG.md
Normal file
103
CHANGELOG.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# CHANGELOG.md
|
||||
|
||||
所有重要的变更都会记录在此文件中。
|
||||
|
||||
## [v2.0.2] - 2026-02-12
|
||||
|
||||
### 🐛 Bug 修复
|
||||
- ✅ 修复容器启动时找不到模板文件导致崩溃的问题
|
||||
- ✅ 修复 Dockerfile 缺少 `templates/` 和 `static/` 目录复制
|
||||
|
||||
### 📦 Docker 改进
|
||||
- ✅ 完善多阶段构建,正确复制运行时所需文件
|
||||
- ✅ 新增 `docker-compose.production.yml` 生产环境配置
|
||||
- ✅ 预编译镜像推送到 Docker Hub (ouaone/sms-receiver-go:v2.0.2)
|
||||
- ✅ 验证容器可正常启动并通过健康检查
|
||||
|
||||
### 📂 目录结构重构
|
||||
- ✅ 新增 `docs/legacy/` 目录,归档废弃文档
|
||||
- ✅ 新增 `scripts/` 目录,存放管理脚本和测试脚本
|
||||
- ✅ 新增 `build/` 目录,用于构建输出
|
||||
- ✅ 移动 `sms-receiver-go-ctl.sh` 到 `scripts/`
|
||||
- ✅ 移动 `test_api.sh` 到 `scripts/`
|
||||
- ✅ 移动 `GO_REFACTOR_PROGRESS.md` 到 `docs/legacy/`
|
||||
- ✅ 移动 `OPTIMIZATION_REPORT.md` 到 `docs/legacy/`
|
||||
|
||||
### 🔧 Git 仓库清理
|
||||
- ✅ 从仓库中移除二进制文件(sms-receiver*, sms_*.db, *.log)
|
||||
- ✅ 从仓库中移除配置文件 `config.yaml`
|
||||
- ✅ 更新 `.gitignore` 忽略运行时生成文件
|
||||
- ✅ 从仓库中移除 Python 版本目录 `sms-receiver/`
|
||||
|
||||
### 📚 文档
|
||||
- ✅ 更新 `README.md` 版本标签从 v2.0.0 到 v2.0.2
|
||||
- ✅ 更新 `README.md` 镜像拉取说明
|
||||
- ✅ 新增 `CHANGELOG.md` 独立变更日志文件
|
||||
- ✅ 添加 Docker Hub 镜像标签说明
|
||||
|
||||
### 🔧 兼容性
|
||||
- ✅ 与 v2.0.1 功能完全兼容
|
||||
- ✅ 数据库无需迁移
|
||||
- ✅ 配置文件格式无变更
|
||||
- ✅ 更新管理脚本路径(`scripts/sms-receiver-go-ctl.sh`)
|
||||
|
||||
---
|
||||
|
||||
## [v2.0.1] - 2026-02-08
|
||||
|
||||
### 🐛 Bug 修复
|
||||
- ✅ 修复登录会话创建失败问题(`securecookie: the value is not valid`)
|
||||
- ✅ 回退密钥处理逻辑确保向后兼容性
|
||||
- ✅ 改进会话初始化错误处理
|
||||
|
||||
### 🔧 兼容性
|
||||
- ✅ 与 v2.0.0 Cookie 完全兼容,无需清除
|
||||
- ✅ 支持 `/api/v1/*` 和 `/api/*` 路由
|
||||
- ✅ 密钥长度不足时仅记录警告
|
||||
|
||||
---
|
||||
|
||||
## [v2.0.0] - 2026-02-08
|
||||
|
||||
### 🔴 高优先级 (6项)
|
||||
- ✅ 数据库事务支持 (确保消息和日志一致性)
|
||||
- ✅ SQL 注入修复 (参数化查询)
|
||||
- ✅ 配置验证启动时自动检查
|
||||
- ✅ 会话密钥强化 (长度验证)
|
||||
- ✅ 签名验证增强 (详细记录验证过程)
|
||||
- ✅ 密码哈希支持 (bcrypt)
|
||||
|
||||
### 🟡 中优先级 (15项)
|
||||
- ✅ 连接池配置 (MaxOpenConns, MaxIdleConns)
|
||||
- ✅ 查询优化 (范围查询, 索引)
|
||||
- ✅ 健康检查增强 (/health 端点)
|
||||
- ✅ API 版本控制 (/api/v1/*)
|
||||
- ✅ 认证中间件 (RequireAuth, RequireAPIAuth)
|
||||
- ✅ 定时任务优化 (robfig/cron)
|
||||
- ✅ 配置文件示例 (config.example.yaml)
|
||||
- ✅ 常量定义 (config/constants.go)
|
||||
- ✅ 开发文档 (DEVELOPMENT.md)
|
||||
|
||||
### 🟢 低优先级 (9项)
|
||||
- ✅ Docker 支持 (Dockerfile, docker-compose.yml)
|
||||
- ✅ Makefile 构建脚本
|
||||
- ✅ 优化报告 (OPTIMIZATION_REPORT.md)
|
||||
- ✅ 密码哈希工具 (tools/password_hash.go)
|
||||
- ✅ 单元测试架构准备
|
||||
|
||||
### 📦 文件变更
|
||||
- 新增文件: 14 个
|
||||
- 代码行数: +1523 / -101
|
||||
|
||||
---
|
||||
|
||||
## [v1.0.0] - 2026-02-08
|
||||
|
||||
### 🎉 初始版本发布
|
||||
- ✅ 完整功能实现
|
||||
- ✅ 对齐 Python 版本所有核心特性
|
||||
- ✅ 独立数据库 (sms_receiver_go.db)
|
||||
- ✅ 完整的 API 接口 (POST /api/receive, GET /api/messages, GET /api/statistics)
|
||||
- ✅ Web 管理界面 (短信列表、详情、统计、日志)
|
||||
- ✅ 签名验证 (HMAC-SHA256)
|
||||
- ✅ 时区转换 (Asia/Shanghai)
|
||||
2
Makefile
2
Makefile
@@ -5,7 +5,7 @@ APP_NAME := sms-receiver-v2
|
||||
MAIN_FILE := main.go
|
||||
|
||||
# 版本信息
|
||||
VERSION := v2.0.1
|
||||
VERSION := v2.0.2
|
||||
BUILD_TIME := $(shell date +%Y-%m-%d\ %H:%M:%S)
|
||||
GIT_COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
|
||||
GO_VERSION := $(shell go version | awk '{print $$3}')
|
||||
|
||||
140
README.md
140
README.md
@@ -4,7 +4,7 @@
|
||||
|
||||
[](https://golang.org/)
|
||||
[](LICENSE)
|
||||
[](https://gitea.king.nyc.mn/openclaw/SmsReceiver-go)
|
||||
[](https://gitea.king.nyc.mn/openclaw/SmsReceiver-go/releases/tag/v2.0.2)
|
||||
|
||||
## ✨ 功能特性
|
||||
|
||||
@@ -49,35 +49,53 @@
|
||||
```
|
||||
SmsReceiver-go/
|
||||
├── main.go # 入口文件
|
||||
├── config.yaml # 配置文件
|
||||
├── config.example.yaml # 配置示例
|
||||
├── Makefile # 构建脚本
|
||||
├── Dockerfile # Docker 镜像
|
||||
├── docker-compose.yml # Docker Compose
|
||||
├── DEVELOPMENT.md # 开发文档
|
||||
├── OPTIMIZATION_REPORT.md # 优化报告
|
||||
├── auth/ # 认证模块
|
||||
│ ├── auth.go # 认证逻辑
|
||||
├── go.mod / go.sum # Go 依赖管理
|
||||
├── Makefile # 构建脚本
|
||||
├── config.example.yaml # 配置示例
|
||||
├── .gitignore # Git 忽略规则
|
||||
├── .dockerignore # Docker 忽略规则
|
||||
├── Dockerfile # Docker 镜像
|
||||
├── docker-compose.yml # 开发环境 Docker Compose
|
||||
├── docker-compose.production.yml # 生产环境 Docker Compose
|
||||
│
|
||||
├── README.md # 项目说明
|
||||
├── CHANGELOG.md # 变更日志
|
||||
├── DEVELOPMENT.md # 开发文档
|
||||
│
|
||||
├── docs/ # 文档目录
|
||||
│ └── legacy/ # 废弃文档归档
|
||||
│ ├── GO_REFACTOR_PROGRESS.md
|
||||
│ └── OPTIMIZATION_REPORT.md
|
||||
│
|
||||
├── scripts/ # 脚本目录
|
||||
│ ├── sms-receiver-go-ctl.sh # 服务管理脚本
|
||||
│ └── test_api.sh # API 测试脚本
|
||||
│
|
||||
├── auth/ # 认证模块
|
||||
│ └── password.go # 密码验证(bcrypt)
|
||||
├── config/ # 配置加载
|
||||
│ ├── config.go # 配置管理
|
||||
├── config/ # 配置加载
|
||||
│ └── constants.go # 常量定义
|
||||
├── database/ # 数据库操作
|
||||
│ └── database.go # CRUD + 事务
|
||||
├── handlers/ # HTTP 处理器
|
||||
│ ├── handlers.go # 主处理函数
|
||||
├── database/ # 数据库操作
|
||||
├── handlers/ # HTTP 处理器
|
||||
│ ├── middleware.go # 认证中间件
|
||||
│ └── health.go # 健康检查
|
||||
├── models/ # 数据模型
|
||||
│ └── message.go # 数据结构
|
||||
├── sign/ # 签名验证
|
||||
│ └── sign.go # HMAC-SHA256
|
||||
├── static/ # 静态资源
|
||||
├── templates/ # HTML 模板
|
||||
└── tools/ # 工具脚本
|
||||
├── models/ # 数据模型
|
||||
├── sign/ # 签名验证
|
||||
├── static/ # 静态资源
|
||||
├── templates/ # HTML 模板
|
||||
└── tools/ # 工具脚本
|
||||
└── password_hash.go # 密码哈希生成
|
||||
```
|
||||
|
||||
**运行时生成(不在仓库中)**:
|
||||
- `config.yaml` - 配置文件(需从 config.example.yaml 创建)
|
||||
- `sms_receiver_go.db` - SQLite 数据库
|
||||
- `sms_receiver.log` - 运行日志
|
||||
- `data/` - 数据目录
|
||||
- `logs/` - 日志目录
|
||||
- `build/` - 构建输出目录
|
||||
- `sms-receiver-v2` - 编译后的二进制文件
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 方式 1: 使用预编译二进制(推荐)
|
||||
@@ -155,8 +173,30 @@ make docker-logs
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
**使用生产环境 Docker Compose(推荐)**:
|
||||
|
||||
```bash
|
||||
# 复制配置文件
|
||||
cp config.example.yaml config.yaml
|
||||
|
||||
# 启动服务
|
||||
docker compose -f docker-compose.production.yml up -d
|
||||
|
||||
# 查看日志
|
||||
docker compose -f docker-compose.production.yml logs -f
|
||||
|
||||
# 停止服务
|
||||
docker compose -f docker-compose.production.yml down
|
||||
```
|
||||
|
||||
**Docker Hub**: https://hub.docker.com/r/ouaone/sms-receiver-go
|
||||
|
||||
**可用镜像标签**:
|
||||
- `ouaone/sms-receiver-go:latest` - 最新版本(推荐)
|
||||
- `ouaone/sms-receiver-go:v2.0.2` - v2.0.2 稳定版本
|
||||
- `ouaone/sms-receiver-go:v2.0.1` - v2.0.1 版本
|
||||
- `ouaone/sms-receiver-go:v2.0.0` - v2.0.0 版本
|
||||
|
||||
### 方式 4: 从源码编译
|
||||
|
||||
```bash
|
||||
@@ -417,7 +457,7 @@ systemctl status sms-receiver-go # 状态
|
||||
|
||||
### 控制脚本
|
||||
|
||||
使用 `sms-receiver-go-ctl.sh`:
|
||||
使用 `scripts/sms-receiver-go-ctl.sh`:
|
||||
|
||||
```bash
|
||||
./sms-receiver-go-ctl.sh start # 启动服务
|
||||
@@ -430,8 +470,9 @@ systemctl status sms-receiver-go # 状态
|
||||
|
||||
## 📚 文档
|
||||
|
||||
- [变更日志](CHANGELOG.md) - 版本更新记录
|
||||
- [开发文档](DEVELOPMENT.md) - 详细的开发指南和 API 文档
|
||||
- [优化报告](OPTIMIZATION_REPORT.md) - v2.0.0 优化详情和变更记录
|
||||
- [优化报告](docs/legacy/OPTIMIZATION_REPORT.md) - v2.0.0 优化详情归档
|
||||
|
||||
## 🔒 安全建议
|
||||
|
||||
@@ -464,52 +505,5 @@ MIT License
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
### [v2.0.1] - 2026-02-08
|
||||
详细的版本更新记录请查看 [CHANGELOG.md](CHANGELOG.md)
|
||||
|
||||
#### 🐛 Bug 修复
|
||||
- ✅ 修复登录会话创建失败问题(`securecookie: the value is not valid`)
|
||||
- ✅ 回退密钥处理逻辑确保向后兼容性
|
||||
- ✅ 改进会话初始化错误处理
|
||||
|
||||
#### 🔧 兼容性
|
||||
- ✅ 与 v2.0.0 Cookie 完全兼容,无需清除
|
||||
- ✅ 支持 `/api/v1/*` 和 `/api/*` 路由
|
||||
- ✅ 密钥长度不足时仅记录警告
|
||||
|
||||
### [v2.0.0] - 2026-02-08
|
||||
|
||||
#### 🔴 高优先级 (6项)
|
||||
- ✅ 数据库事务支持 (确保消息和日志一致性)
|
||||
- ✅ SQL 注入修复 (参数化查询)
|
||||
- ✅ 配置验证启动时自动检查
|
||||
- ✅ 会话密钥强化 (长度验证)
|
||||
- ✅ 签名验证增强 (详细记录验证过程)
|
||||
- ✅ 密码哈希支持 (bcrypt)
|
||||
|
||||
#### 🟡 中优先级 (15项)
|
||||
- ✅ 连接池配置 (MaxOpenConns, MaxIdleConns)
|
||||
- ✅ 查询优化 (范围查询, 索引)
|
||||
- ✅ 健康检查增强 (/health 端点)
|
||||
- ✅ API 版本控制 (/api/v1/*)
|
||||
- ✅ 认证中间件 (RequireAuth, RequireAPIAuth)
|
||||
- ✅ 定时任务优化 (robfig/cron)
|
||||
- ✅ 配置文件示例 (config.example.yaml)
|
||||
- ✅ 常量定义 (config/constants.go)
|
||||
- ✅ 开发文档 (DEVELOPMENT.md)
|
||||
|
||||
#### 🟢 低优先级 (9项)
|
||||
- ✅ Docker 支持 (Dockerfile, docker-compose.yml)
|
||||
- ✅ Makefile 构建脚本
|
||||
- ✅ 优化报告 (OPTIMIZATION_REPORT.md)
|
||||
- ✅ 密码哈希工具 (tools/password_hash.go)
|
||||
- ✅ 单元测试架构准备
|
||||
|
||||
#### 📦 文件变更
|
||||
- 新增文件: 14 个
|
||||
- 代码行数: +1523 / -101
|
||||
|
||||
### [v1.0.0] - 2026-02-08
|
||||
|
||||
- ✅ 初始版本发布
|
||||
- ✅ 完整功能实现
|
||||
- ✅ 对齐 Python 版本功能
|
||||
|
||||
BIN
archives/smsreceiver-data-20260323-034808.tar.gz
Normal file
BIN
archives/smsreceiver-data-20260323-034808.tar.gz
Normal file
Binary file not shown.
34
config.yaml
34
config.yaml
@@ -1,34 +0,0 @@
|
||||
# SMS Receiver Go - 配置文件
|
||||
app:
|
||||
name: "短信转发接收端"
|
||||
version: "2.0.1"
|
||||
|
||||
server:
|
||||
host: "0.0.0.0"
|
||||
port: 28001
|
||||
debug: true
|
||||
|
||||
security:
|
||||
enabled: true
|
||||
username: "admin"
|
||||
password: "admin123"
|
||||
session_lifetime: 3600
|
||||
secret_key: "1e81b5f9e5a695eba01e996b14871db8899b08e111cf8252df8aa4c91d1c7144"
|
||||
sign_verify: true
|
||||
sign_max_age: 3600000
|
||||
|
||||
sms:
|
||||
max_messages: 10000
|
||||
auto_cleanup: true
|
||||
cleanup_days: 30
|
||||
|
||||
database:
|
||||
path: "sms_receiver_go.db"
|
||||
|
||||
timezone: "Asia/Shanghai"
|
||||
|
||||
api_tokens:
|
||||
- name: "默认配置"
|
||||
token: "default_token"
|
||||
secret: ""
|
||||
enabled: true
|
||||
1
docs/.gitkeep
Normal file
1
docs/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
# 废弃文档归档
|
||||
1
docs/legacy/.gitkeep
Normal file
1
docs/legacy/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
# 空目录
|
||||
1
scripts/.gitkeep
Normal file
1
scripts/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
# 脚本目录
|
||||
@@ -2,8 +2,11 @@
|
||||
# SMS Receiver Go - 管理脚本
|
||||
|
||||
SERVICE_NAME="sms-receiver-go"
|
||||
BINARY_PATH="/root/.openclaw/workspace/SmsReceiver-go/sms-receiver-new"
|
||||
LOG_PATH="/root/.openclaw/workspace/SmsReceiver-go/sms_receiver.log"
|
||||
# 脚本所在目录的父目录(项目根目录)
|
||||
SCRIPT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
||||
BINARY_NAME="sms-receiver-v2"
|
||||
BINARY_PATH="$SCRIPT_DIR/$BINARY_NAME"
|
||||
LOG_PATH="$SCRIPT_DIR/sms_receiver.log"
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
@@ -28,11 +31,19 @@ case "$1" in
|
||||
;;
|
||||
log)
|
||||
echo "SMS Receiver Go 日志 (最近 50 行):"
|
||||
tail -n 50 $LOG_PATH
|
||||
if [ -f "$LOG_PATH" ]; then
|
||||
tail -n 50 "$LOG_PATH"
|
||||
else
|
||||
echo "日志文件不存在: $LOG_PATH"
|
||||
fi
|
||||
;;
|
||||
logtail)
|
||||
echo "实时监控 SMS Receiver Go 日志 (Ctrl+C 退出):"
|
||||
tail -f $LOG_PATH
|
||||
if [ -f "$LOG_PATH" ]; then
|
||||
tail -f "$LOG_PATH"
|
||||
else
|
||||
echo "日志文件不存在: $LOG_PATH"
|
||||
fi
|
||||
;;
|
||||
enable)
|
||||
echo "设置 SMS Receiver Go 开机自启..."
|
||||
BIN
sms-receiver
BIN
sms-receiver
Binary file not shown.
BIN
sms-receiver-new
BIN
sms-receiver-new
Binary file not shown.
BIN
sms-receiver-v2
BIN
sms-receiver-v2
Binary file not shown.
BIN
sms_receiver.db
BIN
sms_receiver.db
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user