Skip to content

Commit 1ee1c23

Browse files
committed
更新 Readme
1 parent 3ae2687 commit 1ee1c23

1 file changed

Lines changed: 35 additions & 240 deletions

File tree

README.md

Lines changed: 35 additions & 240 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,38 @@
5151
└─────────────────┘
5252
```
5353

54+
## 快速开始
55+
56+
### 方式一:使用 Docker
57+
58+
```bash
59+
# 1. 构建并启动容器
60+
docker-compose up -d
61+
62+
# 2. 查看日志
63+
docker-compose logs -f
64+
65+
# 3. 停止服务
66+
docker-compose down
67+
```
68+
69+
### 方式三:使用启动脚本
70+
71+
```bash
72+
# 1. 克隆或下载项目到服务器
73+
cd /path/to/notify-scheduler
74+
75+
# 2. 运行启动脚本(开发模式)
76+
./start.sh
77+
78+
# 或者使用生产模式(Gunicorn)
79+
./start.sh prod
80+
```
81+
82+
## Web 界面使用说明
83+
84+
访问 `http://your-server:5000` 打开 Web 管理界面。
85+
5486
## 📂 项目文件说明
5587

5688
### 核心代码文件
@@ -91,61 +123,6 @@
91123
| `test_system.py` | 系统测试脚本 | 测试人员 |
92124
| `config_examples.json` | 各渠道配置示例 | 配置人员 |
93125

94-
## 快速开始
95-
96-
### 方式一:使用启动脚本(推荐)
97-
98-
```bash
99-
# 1. 克隆或下载项目到服务器
100-
cd /path/to/notify-scheduler
101-
102-
# 2. 运行启动脚本(开发模式)
103-
./start.sh
104-
105-
# 或者使用生产模式(Gunicorn)
106-
./start.sh prod
107-
```
108-
109-
访问 `http://localhost:5000` 即可使用 Web 界面。
110-
111-
### 方式二:手动安装
112-
113-
```bash
114-
# 1. 创建虚拟环境
115-
python3 -m venv venv
116-
source venv/bin/activate
117-
118-
# 2. 安装依赖
119-
pip install -r requirements.txt
120-
pip install gunicorn ANotify
121-
122-
# 3. 初始化数据库
123-
python -c "from models import init_db; init_db()"
124-
125-
# 4. 启动服务(开发模式)
126-
python app.py
127-
128-
# 或使用 Gunicorn(生产模式)
129-
gunicorn -c gunicorn_config.py app:app
130-
```
131-
132-
### 方式三:使用 Docker
133-
134-
```bash
135-
# 1. 构建并启动容器
136-
docker-compose up -d
137-
138-
# 2. 查看日志
139-
docker-compose logs -f
140-
141-
# 3. 停止服务
142-
docker-compose down
143-
```
144-
145-
## Web 界面使用说明
146-
147-
访问 `http://your-server:5000` 打开 Web 管理界面。
148-
149126
### 创建通知任务
150127

151128
1. 在左侧表单中填写通知信息:
@@ -174,105 +151,6 @@ docker-compose down
174151
- 每个渠道项支持 **编辑****删除** 操作:编辑时会弹出模态框,允许修改渠道名称、配置字段及是否设为默认(渠道类型不可变更以保证安全)。
175152
- 在创建任务时可从“选择已保存的渠道”下拉中快速选择,UI 已优化下拉样式以与表单一致,移动端也增加了触控友好性。
176153

177-
## 生产环境部署
178-
179-
### 使用 Systemd(推荐用于 Ubuntu/Debian)
180-
181-
1. **复制项目到服务器**
182-
183-
```bash
184-
sudo mkdir -p /var/www/notify-scheduler
185-
sudo cp -r * /var/www/notify-scheduler/
186-
cd /var/www/notify-scheduler
187-
```
188-
189-
2. **安装依赖**
190-
191-
```bash
192-
python3 -m venv venv
193-
source venv/bin/activate
194-
pip install -r requirements.txt
195-
pip install gunicorn ANotify
196-
```
197-
198-
3. **配置 Systemd 服务**
199-
200-
```bash
201-
# 复制服务配置文件
202-
sudo cp notify-scheduler.service /etc/systemd/system/
203-
204-
# 重载 systemd
205-
sudo systemctl daemon-reload
206-
207-
# 启动服务
208-
sudo systemctl start notify-scheduler
209-
210-
# 设置开机自启
211-
sudo systemctl enable notify-scheduler
212-
213-
# 查看状态
214-
sudo systemctl status notify-scheduler
215-
```
216-
217-
4. **配置 Nginx(可选但推荐)**
218-
219-
```bash
220-
# 安装 Nginx
221-
sudo apt install nginx
222-
223-
# 复制配置文件
224-
sudo cp nginx.conf /etc/nginx/sites-available/notify-scheduler
225-
sudo ln -s /etc/nginx/sites-available/notify-scheduler /etc/nginx/sites-enabled/
226-
227-
# 修改配置中的域名
228-
sudo nano /etc/nginx/sites-available/notify-scheduler
229-
230-
# 测试配置
231-
sudo nginx -t
232-
233-
# 重启 Nginx
234-
sudo systemctl restart nginx
235-
```
236-
237-
### 使用 Docker Compose
238-
239-
```bash
240-
# 1. 启动服务
241-
docker-compose up -d
242-
243-
# 2. 查看运行状态
244-
docker-compose ps
245-
246-
# 3. 查看日志
247-
docker-compose logs -f notify-scheduler
248-
249-
# 4. 重启服务
250-
docker-compose restart
251-
252-
# 5. 停止服务
253-
docker-compose down
254-
```
255-
256-
### 使用 Docker(单容器)
257-
258-
```bash
259-
# 1. 构建镜像
260-
docker build -t notify-scheduler .
261-
262-
# 2. 运行容器
263-
docker run -d \
264-
--name notify-scheduler \
265-
-p 5000:5000 \
266-
-v $(pwd)/data:/app/data \
267-
-v $(pwd)/logs:/app/logs \
268-
notify-scheduler
269-
270-
# 3. 查看日志
271-
docker logs -f notify-scheduler
272-
273-
# 4. 停止容器
274-
docker stop notify-scheduler
275-
```
276154

277155
## API 接口文档
278156

@@ -327,48 +205,8 @@ docker stop notify-scheduler
327205
| IYUU | `iyuu` | token (可选 `server_url`) |
328206
| 巴法云 | `bafayun` | token (可选 `server_url`) |
329207

330-
详细配置示例请查看 `config_examples.json`
331-
332-
## 重复任务 Cron 表达式
333-
334-
常用 Cron 表达式示例:
335-
- `0 9 * * *` - 每天早上9点
336-
- `0 */2 * * *` - 每2小时
337-
- `0 9 * * 1` - 每周一早上9点
338-
- `0 0 1 * *` - 每月1号零点
339-
- `*/30 * * * *` - 每30分钟
340-
341-
## 运维管理
342-
343-
### 查看日志
344-
345-
```bash
346-
# Systemd 服务日志
347-
sudo journalctl -u notify-scheduler -f
348-
349-
# Gunicorn 日志
350-
tail -f logs/access.log
351-
tail -f logs/error.log
352208

353-
# Docker 日志
354-
docker-compose logs -f
355-
```
356-
357-
### 重启服务
358-
359-
```bash
360-
# Systemd
361-
sudo systemctl restart notify-scheduler
362-
363-
# Docker
364-
docker-compose restart
365-
366-
# 手动停止和启动
367-
./stop.sh
368-
./start.sh prod
369-
```
370-
371-
### 数据备份
209+
## 数据备份
372210

373211
```bash
374212
# 备份数据库
@@ -378,49 +216,6 @@ cp notify_scheduler.db notify_scheduler.db.backup
378216
0 2 * * * cp /var/www/notify-scheduler/notify_scheduler.db /backup/notify_scheduler_$(date +\%Y\%m\%d).db
379217
```
380218

381-
## 安全建议
382-
383-
1. **使用 HTTPS**: 在生产环境中配置 SSL 证书
384-
2. **设置防火墙**: 只开放必要的端口
385-
3. **定期更新**: 及时更新依赖包
386-
4. **备份数据**: 定期备份数据库文件
387-
5. **访问控制**: 配置 Nginx 基本认证或其他认证方式
388-
6. **日志监控**: 定期检查日志文件
389-
390-
## 故障排查
391-
392-
### 服务无法启动
393-
394-
```bash
395-
# 检查端口占用
396-
sudo lsof -i :5000
397-
398-
# 检查日志
399-
tail -f logs/error.log
400-
sudo journalctl -u notify-scheduler -n 50
401-
```
402-
403-
### 通知发送失败
404-
405-
1. 检查任务详情中的错误信息
406-
2. 验证渠道配置是否正确
407-
3. 检查网络连接
408-
4. 查看应用日志
409-
410-
### 数据库错误
411-
412-
```bash
413-
# 重新初始化数据库(会清空数据)
414-
python -c "from models import Base, engine; Base.metadata.drop_all(engine); Base.metadata.create_all(engine)"
415-
```
416-
417-
## 性能优化
418-
419-
1. **调整 Gunicorn workers 数量**: 修改 `gunicorn_config.py`
420-
2. **使用数据库连接池**: 默认已配置 SQLAlchemy 连接池
421-
3. **启用 Nginx 缓存**: 配置静态资源缓存
422-
4. **定期清理旧任务**: 删除过期的已完成任务
423-
424219
## 常见问题
425220

426221
**Q: 如何更改运行端口?**
@@ -442,14 +237,14 @@ A: 在 `notifier.py` 中添加新的发送方法,并在 `models.py` 中添加
442237
## 开发计划
443238

444239
### 已完成
445-
- [x] Web 管理界面
446240
- [x] 日历视图支持点击任务进行编辑
447241
- [x] 移动端响应式适配与触摸优化
448242
- [x] 拖拽调整任务时间(日历视图)
449243
- [x] 日历订阅及同步功能
450244
- [x] 支持多渠道消息推送
245+
- [x] 重复任务暂停功能
451246
- [ ] 失败自动重试
452-
- [ ] 重复任务暂停功能
247+
- [ ] 脚本运行
453248
- [ ] 数据导入/导出
454249

455250
## License

0 commit comments

Comments
 (0)