A modern web application for monitoring RSS feeds and receiving notifications when new posts match your keywords. Built with React, Express, and TypeScript.
- π Monitor multiple RSS feeds simultaneously
- π Define custom keywords for each feed
- π Real-time notifications via ntfy.sh
- Customize notifications per feed
- Set custom ntfy topic per feed
- Use post content or custom titles and descriptions
- Set notification priority
- Include post links and matched keywords
- β° Configurable check intervals
- π± Responsive web interface
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/ablomer/rsswatcher.git
cd rsswatcher
- Install dependencies:
npm install
# or
yarn install
Run the development server:
npm run dev
# or
yarn dev
Build and start the production server:
npm run build
npm start
# or
yarn build
yarn start
Once the server is running, visit http://localhost:3000
in your browser to access the web interface.
All configuration is managed through the web interface:
- Add, edit, or remove RSS feeds through the "Feeds" tab
- Set keywords for each feed to monitor
- Configure notification settings for each feed:
- Set ntfy topic for notifications
- Choose between post title or custom title
- Choose between post description or custom description
- Set notification priority (urgent, high, default, low, min)
- Option to append post link to description
- Option to include matched keywords as tags
- Option to add "Open" action with post link
- View feed status and history
- Configure ntfy.sh notification settings in the "Settings" tab
- Configure ntfy server address (defaults to https://ntfy.sh)
- Adjust feed check interval
The application uses the following environment variables:
RSS_WATCHER_DATA_DIR
: Path to the directory where application data (configuration and history) is stored- Default:
/app/data
- Example:
/home/user/rsswatcher/data
- Default:
RSS_WATCHER_PORT
: Port number for the server to listen on- Default:
3000
- Example:
8080
- Default:
Build the Docker image:
docker build -t rsswatcher .
Run the container:
# Create a directory for persistent data
mkdir -p data
# Run the container with mounted data directory
docker run -p 3000:3000 \
-v $(pwd)/data:/app/data \
rsswatcher
This will persist all application data (configuration and history) across container restarts.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License (see the LICENSE file for details).