开源、快速、便捷、基于Go的域名监控程序。
原理:通过 Whois 通过字段进行判断域名状态。
现版本是 V1 版本的 Beta,如碰到问题,请及时反馈,谢谢!
当前版本由于完全重构,故无法直接迁移。
- 多协议支持: 同时支持WHOIS和RDAP协议查询
- 实时监控: 定时检查域名状态(可注册、赎回期、待删除等)
- 状态追踪: 自动检测域名状态变化并记录
- 高性能: 多线程并发处理,支持几千个域名流畅查询
- 邮箱通知: 支持SMTP邮件推送,扁平化简洁的HTML邮件模板
- Telegram通知: 支持Telegram Bot消息推送,简洁的文本格式
- 智能通知聚合: 10秒窗口内的多个状态变化合并发送
- 自适应发送: 8秒内无新查询时立即发送通知,无需等待
- 状态变化通知: 仅在域名状态变化时发送通知
- 首次查询保护: 首次查询的域名不发送通知,避免噪音
- 通知历史记录: 数据库记录所有通知历史,避免重复通知
- 重启后智能判断: 程序重启后,已通知过的状态不会重复通知
- 简洁WebUI: 响应式Web界面,支持移动端
- 实时状态: 域名状态实时展示
- 历史记录: 状态变化历史追踪
- SQLite持久化: 所有配置、域名列表、通知开关、查询结果均写入
data/puff.db - 内置默认值: 首次启动自动写入默认账号、端口、通知配置
- 可视化配置: 通过 Web 界面保存 SMTP/Telegram/账号/监控参数等设置
- 无缓存设计: 所有数据直接从SQLite读写,保证数据一致性
目前支持三种部署方式,编译部署、手动部署、Docker 部署。
- Go 版本 >=1.23.4
git clone https://github.com/spatiostu/puff.gitgo build -o Puff.exe main.go./Puff.exe
打开 Puff Release 下载对应的平台以及系统的文件。
如果最新的包没有您对应的二进制文件,可以提交 issues ,或可以选择自己编译安装。
其中:
armv6 对应 arm 架构32位版本,arm64 对应 arm 架构64位版本。
x86 对应 x86 平台32位版本,x86_64 对应 x86 平台64位版本。
克隆模板文件以及静态资源文件。
# 解压下载后的文件,请求改为您下载的文件名
tar -zxvf filename.tar.gz
# 授予执行权限
chmod +x Puff
./Puff双击运行即可。
使用编辑器编辑 /usr/lib/systemd/system/puff.service 添加如下内容:
[Unit]
Description=puff
After=network.target
[Service]
Type=simple
WorkingDirectory=puff_path
ExecStart=puff_path/Puff
Restart=on-failure
[Install]
WantedBy=multi-user.target保存后,使用 systemctl deamon-reload 重载配置。具体使用命令如下:
- 启动:
systemctl start puff - 关闭:
systemctl stop puff - 配置开机自启:
systemctl enable puff - 取消开机自启:
systemctl disable puff - 状态:
systemctl status puff - 重启:
systemctl restart puff
如果有新版本更新,下载新版本,将旧版本的文件删除重新运行即可。
首先请确保您正确的安装并配置了 Docker 以及 Docker Compose
docker run -d --restart=unless-stopped -v ./data/puff:/app/data -p 8080:8080 --name="Puff" spatiostu/puff:latest在空目录中创建 docker-compose.yaml 文件,将下列内容保存。
services:
Puff:
image: spatiostu/puff:latest
container_name: Puff
volumes:
- ./data/puff:/app/data
restart: unless-stopped
ports:
- 8080:8080保存后,使用 docker compose up -d 创建并启动容器。
#查看容器ID
docker ps -a
#停止容器
docker stop ID
#删除容器
docker rm ID
#获取新镜像
docker pull spatiostu/puff:latest
# 输入安装命令
docker run -d --restart=unless-stopped -v ./data/puff:/app/data -p 8080:8080 --name="Puff" spatiostu/puff:latest#获取新镜像
docker pull spatiostu/puff:latest
#创建并启动容器
docker compose up -d此时打开 IP:8080 即可打开站点。默认账号 puff密码均为 puff123。
MIT License
