Skip to content

ValentinRgt/feedwatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FeedWatch

Release workflow GitHub stars Latest release Open issues Last commit License

PHP Symfony Docker Docker Hub Docker Pulls Docker Image Size

FeedWatch is an open-source, self-hosted technology monitoring tool. Aggregate RSS feeds, automate content collection, track trends, and centralize your technology monitoring with customizable sources.

Getting Started

FeedWatch is distributed as a Docker image. To run the application:

docker run -d --name feedwatch \
  -p 80:80 \
  -p 443:443 \
  -v feedwatch_var:/app/var \
  valentinrgt/feedwatch:latest

Or with Docker Compose, create a compose.yaml file:

services:
  feedwatch:
    image: valentinrgt/feedwatch:latest
    container_name: feedwatch
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - feedwatch_var:/app/var
    restart: unless-stopped

volumes:
  feedwatch_var: {}

Then start the application with:

docker compose up -d

Customizing PHP configuration (timezone, etc.)

To override PHP settings such as the timezone, create a php.ini file next to your compose.yaml:

date.timezone = Europe/Paris

Then mount it into the container by adding a volume entry under the feedwatch service:

    volumes:
      - feedwatch_var:/app/var
      - ./php.ini:/usr/local/etc/php/conf.d/zz-feedwatch.ini:ro

Restart the stack with docker compose up -d to apply the new configuration.

Note

The production image is based on FrankenPHP, which is configured by default to redirect HTTP to HTTPS without taking custom port mappings into account. It is therefore recommended to access the application directly over HTTPS. If you remap the HTTPS port (e.g. -p 8443:443), make sure to use the explicit URL with the new port, such as https://localhost:8443. For any environment variable changes or further configuration, refer to the FrankenPHP documentation.

Once the container is running, create a user to be able to log in and manage categories and sources:

docker exec -it feedwatch php bin/console app:user:create

Additional user-management commands are available:

docker exec -it feedwatch php bin/console app:user:update <email:required>
docker exec -it feedwatch php bin/console app:user:delete <email:required>

You can then open the application in your browser and start adding categories and sources.

Features

  • Source management — Add, edit and remove the feeds you want to monitor. Two formats are supported: XML/RSS feeds and HTML scraping with custom XPath selectors (container, title, link, published-at) for sites without a feed. Each source has a configurable status (active/inactive) and fetch periodicity (from every 15 minutes to monthly).
  • Source monitoring — Track source health with error detection, status monitoring, and historical fetch records to identify problematic or unreachable feeds.
  • Categories — Organize your sources into categories and filter the feed accordingly.
  • Automatic feed collection — A background scheduler fetches each source on its own schedule, with change detection (checksums) to skip unchanged feeds and avoid duplicate articles.
  • Aggregated feed — Browse all collected articles in a single, paginated view, filterable by category.
  • Global search — Search across articles, sources and categories from a single search bar available on the home and admin views.
  • Admin article management — Review and remove collected articles directly from the admin panel.
  • Self-hosted — Runs anywhere with Docker (FrankenPHP + SQLite), no external service required.
  • User authentication — Registration, login and role-based access to the admin panel.

Built with Symfony 7.4 (PHP 8.2+), Doctrine ORM, Twig, Tailwind CSS, Stimulus/Turbo (Hotwire), Symfony Scheduler and Symfony Messenger.

Contributing

Contributions are welcome! FeedWatch is an open-source project and we'd love your help to make it better.

  • Found a bug or have an idea? Open an issue to report a problem or suggest a new feature.
  • Want to contribute code? Fork the repository, create a branch for your change, and open a pull request.

When contributing, please describe your changes clearly and make sure the project's quality tools (PHP-CS-Fixer, PHP CodeSniffer, PHPStan, PHPMD) and tests pass before submitting.

License

FeedWatch is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See the LICENSE file for the full text.

About

FeedWatch is an open-source, self-hosted technology monitoring tool. Aggregate RSS feeds, automate content collection, track trends, and centralize your technology monitoring with customizable sources.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors