一、 架构总览
系统采用"双轨并行"架构,通过两个独立端口处理不同维度的信息流:
- 5000 端口(私人邮局):处理"马上记"日记流,负责添加时间戳并对接 Windows 办公端。
- 8888 端口(村长指令):处理 iOS 快捷指令发送的 JSON 任务包,负责身份校验与 ntfy 频道转发。
二、 服务模块详解
1. 马上记:个人日记流(Port 5000)
- 功能逻辑:接收手机端 POST 发送的纯文本,自动扣上北京时间戳
[YYYY-MM-DD HH:MM],存入服务器临时文件,供 Windows 端定期拉取并清空。 - 核心路径:
- 接收端:
/upload(POST) - 取货端:
/fetch(GET)
- 接收端:
- 自动化特征:采用
timedelta(hours=8)强制校准北京时间,确保日记时间线不因服务器时区紊乱。
2. 团队通知:村长桥接器(Port 8888)
- 功能逻辑:接收 iOS 快捷指令发送的 JSON 数据包,验证身份密钥(Key)。
- 安全机制:
- JSON 校验:解析
{"key": "***", "task": "内容"}。 - 身份过滤:仅当 Key 匹配时转发,且转发时自动剥离 Key,保护隐私。
- JSON 校验:解析
- 输出格式:[时间] [代号:村长] 任务内容。
- 分发目标:ntfy 频道
*********。
三、 运维与持久化规范
1. 进程守护 (Systemd)
为了防止服务器重启导致服务中断,两个服务均封装为系统级服务:
- 日记服务:
ntfy_sync.service - 通知服务:
ntfy_bridge.service - 常用命令:
- 查看状态:
sudo systemctl status ntfy_sync ntfy_bridge - 重启服务:
sudo systemctl restart ntfy_bridge
- 查看状态:
2. 网络安全 (Iptables)
需在 Oracle 云后台和服务器系统层面同时放行端口:
- 放行指令:
sudo iptables -I INPUT -p tcp --dport 8888 -j ACCEPT - 持久化保存:
sudo netfilter-persistent save
四、 客户端配置参考
1. iOS 快捷指令 (iPhone)
- 马上记:发送
URL 内容,方法POST,正文为文本。 - 团队通知:发送
URL 内容,方法POST,请求体为JSON,包含两个字段:key:***task:输入的内容
2. Windows 办公端 (DailySync)
- 通过脚本每 60 秒请求一次服务器的
/fetch接口。 - 自动将返回的内容追加到坚果云同步盘的
.txt文件中。
五、 后续查询关键词
- 脚本路径:
/home/ubuntu/server_broadcast.py(5000),/home/ubuntu/ntfy_ios_bridge.py(8888) - 日志路径:
/home/ubuntu/broadcast.log,/home/ubuntu/ntfy_bridge.log - 代号设置:
CODE_NAME = "村长"