简介
WebMoniter 是一个基于 Python、FastAPI 和 APScheduler 的任务系统,用于统一管理:
- 平台监控:虎牙、微博、哔哩哔哩、抖音、快手、斗鱼、小红书。
- 定时任务:微博 Cookie 刷新、iKuuu、贴吧、微博超话、雨云、阿里云盘、Freenom、天气推送等 30 个签到/提醒任务(另含
demo_task 示例;清单见 src/jobs/metadata.py 的 TASK_SPECS)。
- 多渠道推送:企业微信、钉钉、飞书、Telegram、Bark、WxPusher、邮件等 18 种 type。
- Web 管理:配置、任务、数据、日志、账户与外观;桌面侧栏与顶部路径导航,移动端底部导航。支持明暗主题、键盘操作和系统减少动效偏好,详见 Web 管理界面。
配置支持热重载,修改 config.yml 后通常约 5 秒内生效。
功能一览
界面与功能说明见 文档首页 和 Web 管理界面。
展开更多项目展示
支持平台
| 平台 |
type |
动态 |
开播/下播 |
| 虎牙 |
huya |
否 |
是 |
| 微博 |
weibo |
是 |
否 |
| 哔哩哔哩 |
bilibili |
是 |
是 |
| 抖音 |
douyin |
否 |
是 |
| 快手(待实测) |
kuaishou |
否 |
是 |
| 斗鱼 |
douyu |
否 |
是 |
| 小红书 |
xhs |
是 |
否 |
定时任务节选
| 任务 |
配置节点 |
默认时间 |
| 日志清理 |
log_cleanup |
02:10 |
| 微博 Cookie 刷新 |
weibo |
21:00 |
| iKuuu 签到 |
checkin |
08:00 |
| 雨云签到 |
rainyun |
08:30 |
| 贴吧签到 |
tieba |
08:10 |
| 微博超话 |
weibo_chaohua |
23:45 |
| 阿里云盘 |
aliyun |
05:30 |
| 天气推送 |
weather |
07:30 |
推送通道节选
| 通道 |
type |
图文 |
| 企业微信群机器人 |
wecom_bot |
是 |
| 钉钉机器人 |
dingtalk_bot |
是 |
| 飞书机器人 |
feishu_bot |
否 |
| Telegram |
telegram_bot |
是 |
| WxPusher |
wxpusher |
是 |
| Bark |
bark |
否 |
| PushPlus |
pushplus |
是 |
快速开始
首次部署 · 打开与使用 · 更新版本 · 停止与恢复 · 删除与卸载 · 备份恢复
Docker(推荐)
默认使用 full 镜像,包含浏览器、驱动与 OCR,适用于 iKuuu、雨云等浏览器任务;latest 为精简镜像,不包含这些依赖。只需 HTTP 任务时可按 镜像选择说明切换。
首次部署
在准备运行服务的电脑或服务器上执行,需要 Git 和 Bash:
git clone https://github.com/666fy666/WebMoniter.git
cd WebMoniter
bash install.sh docker
脚本会拉取镜像、后台启动并等待健康检查通过。Ubuntu 22.04/24.04/26.04 缺少 Docker 时会自动安装官方 Docker Engine 与 Compose,需要 root 或 sudo;其他系统先安装 Docker 与 Compose 插件。首次拉取 full 镜像可能较慢。
已有 Docker Compose 时,进入项目根目录后,也可用下面的命令代替安装脚本:
docker compose up -d --pull always --wait --wait-timeout 180
docker compose ps
后续 Docker 命令均在项目根目录(含 compose.yaml)执行。若提示无权访问 Docker,请给命令加 sudo,例如 sudo docker compose ps。有自定义 -f、-p、--env-file 参数时,所有维护命令都要沿用相同参数。安装脚本固定使用根目录 compose.yaml,自定义部署请直接使用 Compose。
镜像内容以已发布版本为准,git pull 不会把源码打进远程镜像。需要运行尚未发布的源码时,使用 本地构建。旧部署的目录挂载、账户与数据库不会自动迁移,请先备份并参考 部署指南。
打开界面并开始使用
本机部署直接打开 http://127.0.0.1:8866;服务器部署打开 http://服务器IP:8866。当前 Compose 映射为 0.0.0.0:8866:8866,可通过宿主机各网络接口访问;远程访问需在服务器防火墙和云安全组中允许所需来源访问 TCP 8866。对外开放前先修改默认密码,长期访问建议配置 HTTPS 反向代理。
如果只希望通过 SSH 隧道或宿主机反代访问,将 compose.yaml 的端口映射改为 127.0.0.1:8866:8866 后执行 docker compose up -d --wait --wait-timeout 180。使用 SSH 隧道时,在自己的电脑另开终端执行以下命令(替换用户名与服务器地址,并保持终端打开):
ssh -N -L 8866:127.0.0.1:8866 用户名@服务器地址
再用自己电脑的浏览器打开 http://127.0.0.1:8866。
- 首次使用默认账号
admin、密码 123 登录,在账户页修改密码。已有账户使用当前密码,环境变量不会覆盖它。
- 在「配置管理」填写推送渠道、平台账号或 Cookie、监控目标和执行时间,然后启用需要的任务并保存。首次生成的配置关闭业务任务,仅开启日志清理。
- 在「任务管理」确认任务状态;需要验证时点击「立即运行」(会实际执行任务),在「日志查看」检查结果,在「数据展示」查看监控记录。
- 配置修改通常约 5 秒内热重载,无需重启。详细操作见 Web 管理界面和 配置说明。
# 查看运行状态
docker compose ps
# 查看最近 100 行并持续跟踪日志;Ctrl+C 只退出日志查看
docker compose logs --tail=100 -f web-monitor
# 在部署机器上检查服务是否就绪
curl -fsS http://127.0.0.1:8866/health/ready
更新到已发布的新版本
先按 备份步骤备份配置和数据,再在原项目目录运行:
# 同步安装脚本与 Compose 配置;遇到本地修改冲突时先处理,不要强制覆盖
git pull --ff-only
# 拉取镜像;镜像或配置有变化时重建容器,保留数据卷
docker compose up -d --pull always --wait --wait-timeout 180
# 检查结果
docker compose ps
docker compose logs --tail=100 web-monitor
每条命令成功后再执行下一条。安装脚本用户也可在 git pull --ff-only 后重新运行 bash install.sh docker。更新会短暂中断服务;无需先删除容器。若固定了 WEBMONITER_IMAGE 版本或 digest,先改为目标版本,并保留原部署的 Compose 参数。
git pull 只更新仓库文件;docker compose pull 只下载镜像;docker compose restart 只重启原容器。切换到新镜像需要执行上面的 up 命令。失败时先查看日志,按 回退说明恢复旧镜像与配套备份。
停止使用与恢复
以下命令按需要单独选择执行,均保留配置、账号、历史数据和日志:
| 目的 |
命令 |
结果 |
| 暂时停止 |
docker compose stop |
停止 Web 与所有定时任务,保留容器 |
| 恢复已停止的容器 |
docker compose start |
使用原容器继续运行 |
| 重启当前版本 |
docker compose restart |
不拉取或应用新镜像 |
| 停用并删除容器 |
docker compose down |
删除容器和项目网络,保留命名卷 |
| 删除容器后重新启用 |
docker compose up -d --wait --wait-timeout 180 |
重新创建容器并使用原数据卷 |
start 只适用于容器还在的情况;执行过 down 后应使用 up。默认重启策略为 unless-stopped,手动停止后不会因 Docker 重启而自行恢复,详见 Docker 重启策略。
删除与卸载
方案一:卸载服务,保留数据,便于以后继续使用。
docker compose down
方案二:彻底删除此部署的数据。此操作不可撤销;需要留存时先备份。
# 删除容器、项目网络以及配置、数据、日志三个命名卷
docker compose down --volumes
默认会删除 webmoniter_config、webmoniter_data、webmoniter_logs,包括账号、Cookie、任务记录和日志;再次部署会重新初始化。若自定义了项目名,卷名前缀也会不同。日常更新不要使用 --volumes 或 -v。
可选:容器删除后,移除不再使用的本项目镜像以释放空间:
docker image rm fengyu666/webmoniter:full
精简镜像改为 fengyu666/webmoniter:latest;自定义镜像用实际标签。若仍被其他容器使用,先确认用途,不要强制删除。上述命令不会删除源码目录、备份、.env、自定义 bind mount 目录,也不会卸载 Docker;不再需要时再单独清理,并移除本项目的反向代理配置。不要使用全局 docker system prune --volumes 代替本项目卸载。
数据存放在哪里
| 内容 |
默认命名卷 |
容器内路径 |
| 配置 |
webmoniter_config |
/app/config/config.yml |
| 数据库、账户、Cookie 与会话 |
webmoniter_data |
/app/data |
| 日志 |
webmoniter_logs |
/app/logs |
Docker 默认不会读取源码根目录的 config.yml,也不会把数据写入仓库的 ./data、./logs。直接在 Web 配置页编辑即可;更新与重建容器保留这些命名卷。备份、恢复、权限和资源限制见 完整部署指南。
源码运行(Linux)
首次运行先克隆仓库并进入目录(已经完成则跳过):
git clone https://github.com/666fy666/WebMoniter.git
cd WebMoniter
bash install.sh source
自动准备 uv、Python 3.11、Node 24、项目依赖、前端、浏览器/驱动和模型,首次生成配置,随后前台启动。默认账号同样为 admin / 123。业务任务默认关闭,登录后按需配置;再次运行会保留配置与数据。浏览器自动安装支持 Linux x64,缺少系统库时使用 sudo 安装;只需要 HTTP 任务可运行 bash install.sh source --no-browser。Windows 与其他架构见 安装说明。
按 Ctrl+C 停止。更新前停止程序并备份 config.yml、data/,然后依次运行:
git pull --ff-only
bash install.sh source
脚本不注册后台服务;停止后即可停用。源码环境清理和彻底删除见 源码维护说明。
青龙面板
青龙用户可通过环境变量配置,使用 python -m src.ql <task_id> 运行定时任务。详见 青龙面板兼容指南。
配置
源码安装脚本会自动创建根目录的 config.yml;Docker 存放于配置卷。已有配置不会覆盖,直接在 Web 配置页编辑即可。
配置项说明见:
功能入口
开发说明
开发环境、格式与类型检查、关键测试命令统一见 开发指南。Node 仅用于前端构建与测试,生产不运行 Node 服务。
新增监控、定时任务或推送通道见 二次开发指南,模块边界、数据流和存储恢复见 架构说明。任务、通道和配置节以 src/jobs/metadata.py 及运行时代码为准,关键测试检查注册完整性、配置映射及执行行为。
致谢
部分签到与推送思路参考了以下项目:
Contributors
许可证
MIT License
如果这个项目对你有帮助,请给个 ⭐ Star!
Made with ❤️ by FY
评论