- 重写 docs/deployment.md,专注于 Docker 部署 - 更新 README.md,添加功能特性和管理命令 - 新增 docs/docker-quickstart.md 快速开始指南 - 优化文档结构,提供更清晰的部署流程 - 添加故障排除和维护指南
223 lines
3.9 KiB
Markdown
223 lines
3.9 KiB
Markdown
# Docker 快速开始指南
|
||
|
||
本指南将帮助你在 5 分钟内使用 Docker 部署 SMS Forwarder。
|
||
|
||
## 🎯 目标
|
||
|
||
- ✅ 在 VPS 上部署 SMS Forwarder
|
||
- ✅ 配置推送服务(Gotify 或 ntfy)
|
||
- ✅ 设置 iPhone 快捷指令
|
||
- ✅ 实现短信自动转发
|
||
|
||
## 📋 前提条件
|
||
|
||
- VPS 服务器(1GB+ 内存)
|
||
- Docker 和 Docker Compose
|
||
- 域名(可选,用于 HTTPS)
|
||
|
||
## 🚀 部署步骤
|
||
|
||
### 1. 克隆项目
|
||
|
||
```bash
|
||
# SSH 到你的 VPS
|
||
ssh user@your-vps
|
||
|
||
# 克隆项目
|
||
git clone https://gitea.nosuchip.de/zack/sms_forwarder.git
|
||
cd sms_forwarder
|
||
```
|
||
|
||
### 2. 配置服务
|
||
|
||
```bash
|
||
# 复制配置文件
|
||
cp config.example.yaml config.yaml
|
||
|
||
# 编辑配置
|
||
nano config.yaml
|
||
```
|
||
|
||
**必须修改的配置项**:
|
||
|
||
```yaml
|
||
server:
|
||
api_key: "your-secret-api-key-here" # 生成强密钥
|
||
|
||
notifications:
|
||
services:
|
||
# 选择一种推送方式
|
||
- name: "ntfy"
|
||
url: "ntfy://your-unique-topic-name/"
|
||
enabled: true
|
||
```
|
||
|
||
### 3. 生成 API 密钥
|
||
|
||
```bash
|
||
# 生成强密钥
|
||
python3 -c "import secrets; print(secrets.token_urlsafe(32))"
|
||
```
|
||
|
||
将生成的密钥填入 `config.yaml` 的 `server.api_key` 字段。
|
||
|
||
### 4. 选择推送方式
|
||
|
||
#### 方案 A:使用 ntfy(推荐新手)
|
||
|
||
```yaml
|
||
notifications:
|
||
services:
|
||
- name: "ntfy"
|
||
url: "ntfy://sms-forward-$(whoami)-$(date +%s)/"
|
||
enabled: true
|
||
```
|
||
|
||
在 Android 设备上:
|
||
1. 安装 ntfy 应用
|
||
2. 订阅主题:`sms-forward-$(whoami)-$(date +%s)`
|
||
|
||
#### 方案 B:自建 Gotify(推荐进阶)
|
||
|
||
```bash
|
||
# 启动 SMS Forwarder + Gotify
|
||
docker-compose --profile gotify up -d
|
||
```
|
||
|
||
然后:
|
||
1. 访问 `http://your-vps:24545`
|
||
2. 登录(admin/admin)
|
||
3. 创建应用获取 Token
|
||
4. 更新配置文件中的 Gotify URL
|
||
|
||
### 5. 部署服务
|
||
|
||
```bash
|
||
# 一键部署
|
||
./scripts/deploy.sh
|
||
```
|
||
|
||
或手动部署:
|
||
|
||
```bash
|
||
# 构建并启动
|
||
docker-compose up -d
|
||
|
||
# 查看状态
|
||
docker-compose ps
|
||
```
|
||
|
||
### 6. 测试部署
|
||
|
||
```bash
|
||
# 运行测试
|
||
./scripts/test-docker.sh
|
||
```
|
||
|
||
如果测试通过,你应该在 Android 设备上收到测试通知。
|
||
|
||
## 📱 配置 iPhone
|
||
|
||
### 1. 创建快捷指令
|
||
|
||
1. 打开 iPhone "快捷指令" 应用
|
||
2. 点击 "+" 创建新快捷指令
|
||
3. 添加 "获取我的快捷指令的输入" 动作
|
||
4. 添加 "获取 URL 内容" 动作
|
||
|
||
### 2. 配置 HTTP 请求
|
||
|
||
- **URL**: `http://your-vps:12152/notify/simple`
|
||
- **方法**: POST
|
||
- **请求体**: JSON
|
||
- **标头**: `Content-Type: application/json`
|
||
|
||
**请求体内容**:
|
||
```json
|
||
{
|
||
"api_key": "your-api-key-here",
|
||
"content": "快捷指令输入"
|
||
}
|
||
```
|
||
|
||
### 3. 设置自动化
|
||
|
||
1. 点击 "自动化" → "+"
|
||
2. 选择 "收到信息时"
|
||
3. 选择 "任何人" 或特定联系人
|
||
4. 选择你创建的快捷指令
|
||
5. 关闭 "运行前询问"
|
||
|
||
## 🔧 管理和维护
|
||
|
||
### 常用命令
|
||
|
||
```bash
|
||
# 查看服务状态
|
||
./scripts/docker-manage.sh status
|
||
|
||
# 查看实时日志
|
||
./scripts/docker-manage.sh logs
|
||
|
||
# 重启服务
|
||
./scripts/docker-manage.sh restart
|
||
|
||
# 发送测试通知
|
||
./scripts/docker-manage.sh test
|
||
```
|
||
|
||
### 更新服务
|
||
|
||
```bash
|
||
# 拉取最新代码
|
||
git pull
|
||
|
||
# 重新部署
|
||
./scripts/deploy.sh
|
||
```
|
||
|
||
## 🛡️ 安全建议
|
||
|
||
1. **使用强 API 密钥**
|
||
2. **限制访问 IP**(在 config.yaml 中配置)
|
||
3. **使用 HTTPS**(配置域名和 SSL 证书)
|
||
4. **定期备份配置**
|
||
|
||
## 🆘 故障排除
|
||
|
||
### 服务无法启动
|
||
|
||
```bash
|
||
# 查看错误日志
|
||
docker-compose logs sms-forwarder
|
||
|
||
# 检查配置文件
|
||
docker-compose config
|
||
```
|
||
|
||
### 通知发送失败
|
||
|
||
```bash
|
||
# 检查网络连接
|
||
docker-compose exec sms-forwarder curl -I https://ntfy.sh
|
||
|
||
# 验证配置
|
||
curl http://localhost:12152/status
|
||
```
|
||
|
||
### iPhone 快捷指令不工作
|
||
|
||
1. 检查网络连接
|
||
2. 确认 API 密钥正确
|
||
3. 查看服务器日志
|
||
4. 测试 API 端点
|
||
|
||
## 🎉 完成
|
||
|
||
如果一切正常,你现在应该能够:
|
||
- ✅ 在 iPhone 上收到短信时自动触发快捷指令
|
||
- ✅ 快捷指令将短信内容发送到你的服务器
|
||
- ✅ 服务器将通知推送到你的 Android 设备
|
||
|
||
享受你的短信转发服务吧!🎊
|