Skip to content

πŸ“° A web application for monitoring RSS feeds and receiving notifications when new posts match keywords.

License

Notifications You must be signed in to change notification settings

ablomer/rsswatcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

883bd28 Β· Jan 20, 2025

History

45 Commits
Jan 20, 2025
Jan 20, 2025
Jan 15, 2025
Jan 20, 2025
Jan 20, 2025
Jan 19, 2025
Jan 19, 2025
Jan 20, 2025
Jan 19, 2025
Jan 20, 2025
Jan 15, 2025
Jan 20, 2025
Jan 20, 2025

Repository files navigation

RSS Watcher

A modern web application for monitoring RSS feeds and receiving notifications when new posts match your keywords. Built with React, Express, and TypeScript.

Features

  • πŸ” 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

Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Installation

  1. Clone the repository:
git clone https://github.com/ablomer/rsswatcher.git
cd rsswatcher
  1. Install dependencies:
npm install
# or
yarn install

Development

Run the development server:

npm run dev
# or
yarn dev

Production

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.

Configuration

All configuration is managed through the web interface:

Feed Management

  • 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

Settings

  • Configure ntfy.sh notification settings in the "Settings" tab
    • Configure ntfy server address (defaults to https://ntfy.sh)
    • Adjust feed check interval

Environment Variables

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
  • RSS_WATCHER_PORT: Port number for the server to listen on
    • Default: 3000
    • Example: 8080

Docker Support

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.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License (see the LICENSE file for details).