Pulse:用 Python 标准库写一个网站保活面板
我有一台很小的服务器,上面挂着几个自建小站。这类平台有个共同特点:长期不访问就会被回收,冷启动慢得让人怀疑人生。
所以需要一个东西定时去戳一下。
Nagios、Uptime Kuma 都试过,功能是齐的,但在一台 512MB 的机器上再跑个 Node 服务实在难受。于是自己写了个 Pulse。
技术选择
整个项目只用 Python 标准库,加一个 SQLite。没有 pip 依赖,没有 Node,没有数据库服务。
1 | Python 3.10+ |
小是真的小,在最低配的机器上也能跑起来。
功能
监控这块:添加、编辑、删除、暂停、恢复网站,间隔可以选 1、5、10、30 分钟。记录真实 HTTP 状态码、响应时间、连续成功/失败次数、过去 24 小时可用率。
看数据这块:24 小时和 7 天趋势图、最近 500 条记录、搜索筛选、CSV 导出。历史只保留七天,自动清理,不会把磁盘写满。
管理这块:公共状态面板和管理员登录分离,初始密码 admin,首次登录强制改。改密后其他会话失效,重启也不会把密码恢复成初始值。
最多 30 个目标,检查并发为 2,对一台小机器来说刚好。
几个坑
保活不等于一定能保活。 面板只能证明「我在这个时间点从这台机器访问过它」,目标平台是否认为活跃,取决于人家的休眠规则。有些平台按请求算,有些按真实用户访问算,后者你戳再多也没用。README 里把这句话写清楚了,免得给人错觉。
结果只代表源站视角。 从我的服务器访问是通的,不代表你在国内、在别的地区访问也通。想要多地探测,得部署多个实例。
异常提醒目前只在面板里显示,不发外部通知。这个是有意的——加通知就得接邮件或者 TG Bot,又要引入依赖和密钥管理,先不做。
跑起来
1 | git clone git@github.com:fanxing724/pulse.git |
打开 http://127.0.0.1:8080,右上角登录,改密码,然后加目标。
配置脚本不会覆盖已有文件,也不会重置已经初始化过的数据库密码,重复跑是安全的。
线上面板:bh.xingbox.me
- 标题: Pulse:用 Python 标准库写一个网站保活面板
- 作者: 番星
- 创建于 : 2026-10-18 22:00:00
- 更新于 : 2026-10-21 20:11:26
- 链接: https://xingbox.me/pulse-website-keepalive/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。