A planet-style feed aggregator built in Ruby with Sinatra and DataMapper
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 2 commits behind zapnap:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Mogo: A Planet-Style Feed Aggregator

Mogo combines multiple news feeds (or feed topic searches) into a single web page view, much like a typical “Planet”-style feed aggregator. It's built in Ruby on top of Sinatra and DataMapper.


Dependencies and all configuration is done in environment.rb. Your database is also set up here. DataMapper will use sqlite3 by default. Tests use the sqlite3-memory adapter (no configuration needed).

Getting Started

rake db:migrate
rake feeds:add URL=http://blog.zerosum.org
rake feeds:update
ruby application.rb

Adding Feeds

Use the web interface located at /admin to add and remove feeds. Accessing this URL will require a username and password. These settings are adjustable in environment.rb; the defaults are 'admin' and 'password'.

You can also add feeds directly from the command line:

rake feeds:add URL=http://blog.zerosum.org

Status Updates

Run rake feeds:update to update the cached feeds. You can schedule this as a cron job to fire every few minutes if you like.


We use Sphinx for full-text indexing and search. Therefore, you'll need to have it installed. You can find downloads and installation instructions at www.sphinxsearch.com.

To enable search in Mogo, set the option in environment.rb. Search is disabled by default. I've only tested search with MySQL, so set your database connection string to a MySQL database you'll create (default: 'mogo' with user 'root'). Feel free to tune the sample configuration provided in sphinx.conf to your taste. You probably won't want to use a passwordless root user in a production environment ;-).

Once that's done, go ahead and run the supplied Rake tasks to get up and running:

rake sphinx:reindex      # update the search indexes; you'll probably want to schedule this periodically
rake sphinx:search:start # start it up
rake sphinx:search:stop  # shut it down

You should now be able to run application.rb and use the rudimentary search interface.