Skip to content

Latest commit

 

History

History
262 lines (187 loc) · 9.55 KB

File metadata and controls

262 lines (187 loc) · 9.55 KB

WebMoniter

Multi-platform Monitoring · Automated Check-ins · Live Alerts · Multi-channel Notifications

Monitoring · Check-ins · Live Alerts · Push Notifications · Scheduled Tasks · Hot Configuration Reload

Python 3.11 License: MIT FastAPI Docker APScheduler uv docs GitHub Stars GitHub Forks Docker Pulls GitHub Release

中文 · English · Español · 日本語 · 한국어

Documentation · Installation · Configuration · API · Secondary Development · Releases

Repositories: GitHub · GitCode


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_task example; see TASK_SPECS in src/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

Full image:

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

Use docker stop, docker start, or docker restart with the container name to manage it. See Installation and Operation and docker/README.md for port, volume, update, and data retention details.

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

See the secondary development guide when adding monitors or scheduled tasks. Consistency tests under src/tests/ verify metadata, registries, and enable mappings. See Architecture for the complete module layout.


Acknowledgements

Some check-in and notification ideas were inspired by:

License

MIT License

If this project helps you, please give it a ⭐ Star!

Made with ❤️ by FY