English
Introduction¶
WebMoniter is a task system built with Python, FastAPI, and APScheduler. It provides unified management for:
- Platform monitoring for Huya, Weibo, Bilibili, Douyin, Douyu, and Xiaohongshu.
- 30 scheduled check-in and reminder tasks, including Weibo cookie refresh, iKuuu, Tieba, Weibo Super Topic, Rainyun, Aliyun Drive, Freenom, and weather notifications (plus a
demo_taskexample; seeTASK_SPECSinsrc/jobs/metadata.py). - 18 notification channel types, including WeCom, DingTalk, Feishu, Telegram, Bark, WxPusher, and email.
- A responsive Web UI for configuration, tasks, data, logs, and passwords. Its navigation, toolbars, dialogs, and controls use a Liquid Glass style, with desktop side navigation, mobile bottom navigation, keyboard interaction, and accessible motion/transparency fallbacks.
Configuration supports hot reload. Changes to config.yml usually take effect within about five seconds.
Features¶
See the documentation home and Web management UI guide for interface details.
Show supported platforms, tasks, and channels
### Supported Platforms | Platform | `type` | Posts | Live status | |:--:|:--:|:--:|:--:| | Huya | `huya` | No | Yes | | Weibo | `weibo` | Yes | No | | Bilibili | `bilibili` | Yes | Yes | | Douyin | `douyin` | No | Yes | | Douyu | `douyu` | No | Yes | | Xiaohongshu | `xhs` | Yes | No | ### Selected Scheduled Tasks | Task | Configuration key | Default time | |:--:|:--:|:--:| | Log cleanup | `log_cleanup` | 02:10 | | Weibo cookie refresh | `weibo` | 21:00 | | iKuuu check-in | `checkin` | 08:00 | | Rainyun check-in | `rainyun` | 08:30 | | Tieba check-in | `tieba` | 08:10 | | Weibo Super Topic | `weibo_chaohua` | 23:45 | | Aliyun Drive | `aliyun` | 05:30 | | Weather notification | `weather` | 07:30 | ### Selected Notification Channels | Channel | `type` | Rich content | |:--:|:--:|:--:| | WeCom group bot | `wecom_bot` | Yes | | DingTalk bot | `dingtalk_bot` | Yes | | Feishu bot | `feishu_bot` | No | | Telegram | `telegram_bot` | Yes | | WxPusher | `wxpusher` | Yes | | Bark | `bark` | No | | PushPlus | `pushplus` | Yes |Quick Start¶
Docker¶
The lightweight latest image is suitable for most monitoring and HTTP check-in tasks. The full image additionally includes a browser and browser check-in dependencies for tasks such as Weibo cookie refresh, iKuuu, and Rainyun.
Start the lightweight image with Docker Compose (recommended)
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
Open http://localhost:8866. The default credentials are admin / 123; change the password after your first login.
Use the full image for browser-based tasks:
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
Single-container commands
Lightweight image: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 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
Local Installation¶
git clone https://github.com/666fy666/WebMoniter.git
cd WebMoniter
uv python install 3.11
uv venv --python 3.11
uv sync --locked --extra dev --extra rainyun
cp config/config.yml.sample config.yml
uv run python main.py
If you do not need browser-based check-ins, install only the core and development dependencies with uv sync --locked --extra dev.
Windows Package¶
Download WebMoniter-vX.X.X-windows-x64.zip from Releases, extract it, copy config.yml.sample to config.yml, and double-click WebMoniter.exe.
Qinglong Panel¶
Qinglong users can configure tasks with environment variables and run them with python -m src.ql <task_id>. See the Qinglong compatibility guide.
Configuration¶
The main configuration file is config.yml in the repository root. Create it from the template:
cp config/config.yml.sample config.yml
Related documentation:
Documentation Map¶
| Topic | Document |
|---|---|
| Installation | installation.md |
| Web management UI | guides/web-ui.md |
| Task configuration | guides/tasks.md |
| Monitoring tasks | guides/tasks/monitors.md |
| Check-in tasks | guides/tasks/checkin.md |
| Notification channels | guides/push-channels.md |
| REST API | API.md |
| Architecture | ARCHITECTURE.md |
| Secondary development | SECONDARY_DEVELOPMENT.md |
| FAQ | faq.md |
Development
uv sync --extra dev --extra rainyun
uv run ruff check .
uv run black --check .
uv run pytest -q
Acknowledgements¶
Some check-in and notification ideas were inspired by: