English | 简体中文
URL: https://webmonitor.qfpqhyl.top/
The backend service is currently hosted on the maintainer's MacBook M4 Air. Availability may vary depending on the local Docker runtime. For stable use, self-hosting is recommended.
WebMonitor is a web content monitoring and email notification platform built with a React frontend and FastAPI backend. It can monitor specific areas of a page with XPath, detect content changes, and send email alerts automatically.
- Monitor web page content changes with XPath-based targeting
- Send email notifications when changes are detected
- Support public tasks and user subscriptions
- Provide a visual management dashboard for tasks, logs, users, and settings
- Support Docker-based deployment
- Support Chinese and English in the frontend UI
Frontend
- React
- Material UI
- React Query
- Axios
- react-i18next
Backend
- FastAPI
- SQLAlchemy
- APScheduler
- Selenium WebDriver
Deployment
- Docker
- Docker Compose
- SQLite by default, PostgreSQL supported in production
git clone https://github.com/qfpqhyl/WebMonitor.git
cd WebMonitor
docker-compose up -dThen open:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API docs: http://localhost:8000/docs
Default admin account:
- Username:
admin - Password:
admin123
Backend:
cd backend
pip install -r requirements.txt
python main.pyFrontend:
cd frontend
npm install
npm startCopy .env.example to .env and update the values as needed.
| Variable | Description | Default |
|---|---|---|
SECRET_KEY |
JWT signing key. Change this in production. | - |
ADMIN_USERNAME |
Default admin username | admin |
ADMIN_PASSWORD |
Default admin password | admin123 |
ADMIN_EMAIL |
Default admin email | admin@example.com |
FRONTEND_URL |
Frontend origin | http://localhost:3000 |
DATABASE_URL |
Database connection string | sqlite:///./data/webmonitor.db |
SMTP_SERVER |
SMTP host for notifications | - |
SMTP_PORT |
SMTP port | 465 |
SMTP_USER |
SMTP username | - |
SMTP_PASSWORD |
SMTP password or app password | - |
DEFAULT_CHECK_INTERVAL |
Default monitoring interval in seconds | 300 |
See .env.example for the current full configuration template.
- Track product price changes
- Watch website announcements or policy updates
- Monitor competitor pages
- Follow any page region that matters to your workflow
backend/ FastAPI API, database models, services, scheduler
frontend/ React application, pages, components, i18n resources
image/ Screenshots and assets used in documentation
- The React frontend calls the FastAPI backend through Axios.
- Authentication is handled with JWT.
- Monitoring tasks are stored in the database through SQLAlchemy.
- APScheduler triggers monitoring jobs in the background.
- Selenium loads and checks target pages.
- Email notifications are sent when content changes are detected.
- Chinese documentation: README.zh-CN.md
- Backend API docs:
http://localhost:8000/docs
CC BY-NC 4.0 - Personal and non-commercial use only.
Made by 秋风飘起黄叶落
