📨 Web-based RSS/Atom feed aggregator running on Ruby on Rails.
Ruby HTML CSS ApacheConf Perl Shell JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Feed Tracking Tool

Feed Tracking Tool (FTT) is a web-based RSS/Atom feed tracker running on Ruby on Rails. It lets multiple users define "trackers" to filter content provided by feeds. Matching content are aggregated and sent by mails to subscribed users.


This project is no longer maintained and is quite outdated. Unless people are willing to contribute to this project and clean it up, it should be considered as an ugly legacy code base. So please be indulgent while looking at FTT code: it was the work of unexperienced RoR developers ! ;)


  • Can track several formats of feed (Atom, RSS, ...)
  • Can track static pages
  • Trackers can be private or public
  • Each tracker has its own mailing frequency
  • Users are sourced from an LDAP directory


  • Framework: Ruby on Rails
  • Database: MySQL
  • Feed parsing: FeedTools
  • Mail transfer agent: MSMTP


Ruby on Rails setup

  1. Install a Ruby on Rails development environment:

    $ apt-get install ruby rubygems

    Eventually register your HTTP proxy:

    $ export HTTP_PROXY=''

    Install all other libraries with gem:

    $ gem update --system
    $ gem install rails mysql feedtools ruby-net-ldap daemons slave feedalizer -y
  2. Get the list of local gems:

    $ gem query --local

    and check that the followings gems are installed:

    • actionmailer
    • actionpack
    • actionwebservice
    • activerecord
    • activesupport
    • builder
    • daemons
    • feedtools
    • rails
    • rake
    • ruby-net-ldap
    • slave
    • sources
    • uuidtools

    Some of them are Rails dependencies and as such are automatically installed. Those who are not can be installed with the following command:

    $ gem install <gem>
  3. Install the MySQL server:

    $ apt-get install mysql-server
  4. Install msmtp with your favorite package manager. Example:

    $ apt-get install msmtp
  5. Get a copy of FTT in your system web folder:

    $ git clone git@github.com:kdeldycke/feed-tracking-tool.git /var/www/
  6. Create a MySQL database and update the config/database.yml file accordingly:

    $ mysql -h localhost -u root --disable-pager -e "CREATE DATABASE IF NOT EXISTS FTT_development;"
    $ mysql -h localhost -u root --disable-pager -e "CREATE DATABASE IF NOT EXISTS FTT_test;"
    $ mysql -h localhost -u root --disable-pager -e "CREATE DATABASE IF NOT EXISTS FTT_production;"
    $ vi config/database.yml
  7. Update RoR version in the config/environnment.rb file to make it match the RoR version installed on your system:

    RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION

    To get the currently installed version of RoR, use this command:

    $ gem query --local rails
  8. Check that FTT is in production mode in config/database.yml by uncommenting the following line:

    # ENV['RAILS_ENV'] ||= 'production'
  9. Create all database tables:

    $ rake db:schema:load RAILS_ENV=production
  10. If your app is behind a proxy, don't forget to update the HTTP_PROXY_HOST and HTTP_PROXY_PORT constants in config/environnment.rb.

  11. Update the config/backgroundrb.yml with the following directive:

    :rail_env: production

Apache / FastCGI setup

  1. Install fcgid:

    $ apt-get install libapache2-mod-fcgid libfcgi-ruby1.8
  2. Activate the fcgid module:

    $ a2enmod fcgid
    $ /etc/init.d/apache2 restart
  3. In the public/.htaccess file, replace:

    AddHandler fastcgi-script .fcgi


    AddHandler fcgid-script .fcgi

    Also check that these rewrite rules are present in that file:

    RewriteEngine On
    RewriteBase /feed-tracking-tool
    RewriteRule ^$ index.html [QSA]
    RewriteRule ^([^.]+)$ $1.html [QSA]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
  4. Update the default Virtual Host from /etc/apache2/sites-available/default with these directives:

    <VirtualHost *>
      ServerAdmin webmaster@localhost
      DocumentRoot /var/www
      RewriteEngine On
      Alias /images/ /var/www/feed-tracking-tool/public/images/
      RewriteCond %{REQUEST_URI} !^/feed-tracking-tool/public
      RewriteRule ^/feed-tracking-tool(/.*)?$   /feed-tracking-tool/public$1
      <Directory /var/www/feed-tracking-tool/public/>
        Options FollowSymLinks ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
  5. Active Apache rewrite mode:

    $ cd /etc/apache2/mods-enabled/
    $ ln -s ../mods-available/rewrite.load
  6. Fix app's rights to let Apache handle them:

    $ chown www-data:root -R /var/www/feed-tracking-tool
  7. Fix some others file rights and ownership:

    $ cd /var/www/feed-tracking-tool
    $ chmod 755 public
    $ chmod 755 public/dispatch.fcgi
    $ chmod -R 775 log
    $ chmod -R 775 tmp
  8. Restart Apache:

    $ /etc/init.d/apache2 restart
  9. Restart FTT's background tasks handler:

    $ ruby script/backgroundrb stop
    $ ruby script/backgroundrb start
  10. Goto http://my-domain.com/feed-tracking-tool.


  • 0.11.0
    • Update all this legacy code to latest Ruby, Ruby on Rails and third-party libraries
    • Update and simplify installation procedure


  • Report here all TODO's found in the code


  • 0.10.1-trunk (2011-03-21)

    • First Open-source public release
  • 0.10.0 (2007-09-21)

  • 0.9.1 (2007-09-12)

  • 0.9.0 (2007-09-12)

  • 0.8.3 (2007-09-07)

  • 0.8.2 (2007-09-06)

  • 0.8.1 (2007-09-03)

  • 0.8 (2007-08-31)

  • 0.7 (2007-08-30)

  • 0.6 (2007-08-24)

  • 0.5 (2007-08-23)

  • 0.4.1 (2007-08-21)

  • 0.0 (2007-07-17)

    • First HTML mockup



This tool was developed within Uperto, the Open-Source business unit of the Devoteam group, for its internal needs.

The project had an ancestor written in 2006 that was based on Pylons (Python framework). This was in a prototype stage and was barely working. Iterating over the abandoned Pylons code base was considered a waste of time. So in summer 2007, it was decided to rewrite this application from scratch.

As Quentin was available and already played with Ruby on Rails, he was asked to create the initial code base. Kevin joined the project early as he was eager to experiment with Ruby on Rails.

This app was known under different names before settling to FTT. Those includes:

  • VTP, a French acronym for "Veille Technologique Passive"; and
  • OVT, another French acronym for "Outil de Veille Technologique".

This explain why you may find these two acronyms and some other French comments in FTT's legacy code base.

At the end FTT was essentially a test project to explore and play with Ruby on Rails. It was never deployed in production and was never used for Uperto's internal needs.

After roting for more than 3 years in Uperto's backups, and representing absolutely no business value in itself, Kevin decided in 2011 to release code (with Uperto's approval) under an open-source license. The initial intention of this open-source release was to share back knowledge and code with the community.


Content of this repository is licensed under the GNU General Public License v2 or later +(GPLv2+).