Skip to content

666fy666/WebMoniter

Repository files navigation

Logo WebMoniter

多平台监控签到 · 开播提醒 · 多渠道推送

监控 · 签到 · 开播提醒 · 推送 · 定时任务 · 配置热重载

Python 3.10+ License: MIT FastAPI Docker APScheduler uv docs GitHub Stars GitHub Forks GitHub Last Commit Docker Pulls Docker Image Version Docker Image Size (latest) Docker Image Size (full) GitHub Release

文档站 · 安装 · 配置 · API · 二次开发 · Releases

代码仓库GitHub · GitCode


简介

WebMoniter 是一个基于 Python、FastAPI 和 APScheduler 的任务系统,用于统一管理:

  • 平台监控:虎牙、微博、哔哩哔哩、抖音、斗鱼、小红书。
  • 定时任务:iKuuu、贴吧、微博超话、雨云、阿里云盘、什么值得买、Freenom、天气推送等 29 个签到/提醒任务(见 src/jobs/registry.py)。
  • 多渠道推送:企业微信、钉钉、飞书、Telegram、Bark、WxPusher、邮件等 18 种 type。
  • Web 管理:配置编辑、任务管理、数据展示、日志查看、密码管理。

配置支持热重载,修改 config.yml 后通常约 5 秒内生效。


界面预览

配置管理 任务管理
配置管理 任务管理

更多截图与功能说明见 文档首页Web 管理界面

展开更多项目展示

支持平台

平台 type 动态 开播/下播
虎牙 huya
微博 weibo
哔哩哔哩 bilibili
抖音 douyin
斗鱼 douyu
小红书 xhs

定时任务节选

任务 配置节点 默认时间
日志清理 log_cleanup 02:10
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

精简镜像 latest 适合大多数监控和 HTTP 签到任务;完整镜像 full 额外包含 Chromium/Chromedriver 与浏览器签到依赖,适用于 iKuuu、雨云等需要网页登录的任务。

Compose 精简镜像启动(推荐)

git clone https://github.com/666fy666/WebMoniter.git
cd WebMoniter
cp config/config.yml.sample config.yml

# 精简镜像:启动
docker compose -f docker/docker-compose.yml pull
docker compose -f docker/docker-compose.yml up -d

# 精简镜像:查看、停止、再次启动、重启、删除容器/网络
docker compose -f docker/docker-compose.yml logs -f
docker compose -f docker/docker-compose.yml stop
docker compose -f docker/docker-compose.yml start
docker compose -f docker/docker-compose.yml restart
docker compose -f docker/docker-compose.yml down

访问 http://localhost:8866,默认账号 admin / 123。首次登录后请修改密码。

iKuuu、雨云等浏览器签到请使用完整镜像:

docker compose -f docker/docker-compose.full.yml pull
docker compose -f docker/docker-compose.full.yml up -d

docker compose -f docker/docker-compose.full.yml logs -f
docker compose -f docker/docker-compose.full.yml stop
docker compose -f docker/docker-compose.full.yml start
docker compose -f docker/docker-compose.full.yml restart
docker compose -f docker/docker-compose.full.yml down
单容器 · 精简镜像
docker pull fengyu666/webmoniter:latest
docker run -d --name webmoniter --restart unless-stopped \
  -p 8866:8866 --shm-size=128m \
  -e TZ=Asia/Shanghai \
  -v "$(pwd)/config.yml:/app/config.yml" \
  -v "$(pwd)/data:/app/data" \
  -v "$(pwd)/logs:/app/logs" \
  fengyu666/webmoniter:latest

docker stop webmoniter
docker start webmoniter
docker restart webmoniter
# 删除容器;容器运行中可改用 docker rm -f webmoniter
docker rm webmoniter
docker image rm fengyu666/webmoniter:latest
单容器 · 完整镜像
docker pull fengyu666/webmoniter:full
docker run -d --name webmoniter-full --restart unless-stopped \
  -p 8866:8866 --shm-size=256m \
  -e TZ=Asia/Shanghai \
  -e CHROME_BIN=/usr/bin/chromium \
  -e CHROMEDRIVER_PATH=/usr/bin/chromedriver \
  -v "$(pwd)/config.yml:/app/config.yml" \
  -v "$(pwd)/data:/app/data" \
  -v "$(pwd)/logs:/app/logs" \
  fengyu666/webmoniter:full

docker stop webmoniter-full
docker start webmoniter-full
docker restart webmoniter-full
# 删除容器;容器运行中可改用 docker rm -f webmoniter-full
docker rm webmoniter-full
docker image rm fengyu666/webmoniter:full

Windows PowerShell 如遇挂载路径问题,可把 $(pwd) 改成当前目录的绝对路径。更多端口、挂载、更新与数据保留说明见 安装与运行docker/README.md

本地运行

git clone https://github.com/666fy666/WebMoniter.git
cd WebMoniter

uv sync --locked
cp config/config.yml.sample config.yml
uv run python main.py

需要 iKuuu、雨云等浏览器签到时安装可选依赖:

uv sync --locked --extra rainyun

停止服务:在终端按 Ctrl+C。程序会关闭 Web、配置监控和数据库连接;如同步任务阻塞,最多约 12 秒后强制退出,再按一次 Ctrl+C 会立即强制退出。

Windows 一键包

Releases 下载 WebMoniter-vX.X.X-windows-x64.zip,解压后复制 config.yml.sampleconfig.yml,双击 WebMoniter.exe 启动。

青龙面板

青龙用户可通过环境变量配置,使用 python -m src.ql <task_id> 运行定时任务。详见 青龙面板兼容指南


配置

核心配置文件为仓库根目录的 config.yml。首次使用请从模板复制:

cp config/config.yml.sample config.yml

配置项说明见:


功能入口

功能 文档
安装部署 docs/installation.md
Web 管理界面 docs/guides/web-ui.md
任务配置 docs/guides/tasks.md
监控任务 docs/guides/tasks/monitors.md
签到任务 docs/guides/tasks/checkin.md
推送通道 docs/guides/push-channels.md
REST API docs/API.md
架构说明 docs/ARCHITECTURE.md
二次开发 docs/SECONDARY_DEVELOPMENT.md
常见问题 docs/faq.md

开发说明
uv sync --extra dev
uv run ruff check .
uv run black --check .
uv run pytest -q

新增监控或定时任务请参考 二次开发指南src/tests/ 中有注册表与 enable 映射一致性测试,漏配时 uv run pytest 会失败。完整架构说明见 docs/ARCHITECTURE.md。项目当前采用模块化结构:

模块 职责
main.py 应用入口:Web、调度器、配置热重载、优雅关闭
src/core/ 运行时(runtime.py 12 秒退出 watchdog)、路径(paths.py)、版本、HTTP 工具
src/settings/ 配置模型(config.py)、YAML 映射(loader_specs.py)、热重载(watcher.py)、DB 同步(db_sync.py
src/jobs/ 调度(scheduler.py)、注册(registry.py)、启用映射(enable_fields.py)、执行结果(task_outcome.py)、生命周期(lifecycle.py)、日志(log_manager.py)、运行记录(tracker.py
src/storage/ SQLite(database.py)、Cookie 缓存(cookie_cache.py
src/monitors/ 6 个平台监控(interval 触发,见 registry.MONITOR_MODULES
src/tasks/ 29 个定时/签到任务(Cron 触发,含 rainyun/ 子包,见 registry.TASK_MODULES
src/push_channel/ 18 种推送 type(企业微信、钉钉、Telegram 等,含 demoqlapi
src/web/ FastAPI 应用(app.py)、路由(routers/)、认证/配置/数据辅助、templating.pystatic_files.py
src/webUI/ 前端静态资源与 Jinja2 模板
src/ql/ 青龙 CLI(python -m src.ql <task_id>,环境变量兼容见 compat.py
src/tests/ pytest 单元与 smoke 测试

致谢

部分签到与推送思路参考了以下项目:


Contributors

Contributors

Star History

Star History Chart


许可证

MIT License

如果这个项目对你有帮助,请给个 ⭐ Star!

Made with ❤️ by FY

About

虎牙/哔哩哔哩/微博/抖音/斗鱼/小红书 开播&动态监控 · iKuuu/贴吧/雨云/阿里云盘/值得买 等 30+ 签到 · 企微/钉钉/飞书/Telegram 推送 · Web 管理 · AI 助手 · 青龙·Docker · 配置热重载

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors