Ever since Google Reader was retired, I've been looking for a decent replacement, preferably a self hosted one. I've Tried TinyTiny RSS, SelfOSS, and several others, but nothing really satisfied whatever it is that I subconsciously wanted. After searching for a while, I gave up on RSS readers and just read things as I felt like it. Recently, I decided to try again, assuming that the self-hosted RSS reader market had improved. For the most part, it hasn't, but I did happen to stumble across Feedbin, which claims to be:

A fast, simple RSS reader that delivers a great reading experience.


They have a paid model, but they also released the source code on GitHub with instructions on how to install it yourself.

I documented the commands I ran to get everything working, but that doesn't mean that they'll work on every Linux distro out there or even on an existing server. I installed Feedbin on a new server running Fedora 21. These steps should also work on CentOS 7, but I won't guarantee it. If you run into any issues, feel free to ask me in the comments, and I'll see what I can do.

The first thing I did was run a yum update on the system. I do this on every new system, mostly to update the Kernel, but for any security patches too.

Next, we need a hefty list of packages:

yum install gcc gcc-c++ git libcurl-devel libxml2-devel libxslt-devel postgresql postgresql-devel rubygems ruby-devel rubygem-bundler ImageMagick-devel patch

and the Development Tools group package as well:

yum groupinstall "Development Tools"

and some more packages!

yum install postgresql-server postgresql-contrib redis memcached nginx tmux which java-1.8.0-openjdk.x86_64

(You could probably run this as one massive yum install, but I didn't, and I'm posting this the way I did it.)

You'll also need to install ElasticSearch:

rpm -Uvh https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.6.0.noarch.rpm

and make sure a few things are running:

systemctl start memcached redis elasticsearch

after all of those things are installed and running, I pulled the source code:

git clone https://github.com/feedbin/feedbin.git

Up until this point, it's been relatively easy. Next we need to install RVM so we can run multiple versions of Ruby (Feedbin requires 2.1.4 and the refresher needs 2.2.0).

They don't really tell you this in the instructions on GitHub. Maybe it's common sense to folks who are well versed in Ruby apps. I'm not, so it wasn't common sense to me.

To install RVM, I ran these commands from the RVM website:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --ruby=2.1.4

If the GPG command fails with a 'Command gpg not found' error, you just need to install the GPG utils:

yum install gpg

Now we can start working on Feedbin, so I hopped into that directory:

cd feedbin

and ran a few commands:

rvm use 2.1.4
gem install bundle
bundle

You'll see a pretty long output here, I won't bother pasting it here. If you have any errors, you're probably missing some packages, but hopefully that doesn't happen.

Once bundle completes, you're almost ready to fire up Feedbin and do a little happy dance.

Before you do that, you need to add these things to .bash_profile:

export AWS_ACCESS_KEY_ID=< Access Key >
export AWS_SECRET_ACCESS_KEY=< Secret Access Key >
export AWS_S3_BUCKET=< S3-Bucket >
export MEMCACHED_HOSTS=127.0.0.1:11211
export REDIS_URL=redis://127.0.0.1:6379
export ELASTICSEARCH_URL=http://127.0.0.1:9200
export PUSH_URL=http://YourFeedbinURL.com

If you don't define the AWS info, you won't be able to upload your OPML files. The rest are required just for functionality.

Once you've added all that, source that file:

source ~/.bash_profile

We also have a few database things to attend to. Just run these commands and you'll be fine:

postgresql-setup initdb

You'll need to edit /var/lib/pgsql/data/pg_hba.conf and make sure you see this:

Then start Postgres:

systemctl start postgresql

and create the users:

sudo -u postgres createuser feedbin
sudo -u postgres createuser -s $USER

Those commands will show some weird error; they worked.

The last thing we need to do is run

rake db:setup
in the Feedbin directory.

Now we can start up Feedbin and do the happy dance.

You'll need to run these next two commands in seperate windows. How you do that is up to you. Personally, I ran tmux and split the frame into 2 windows. Screen works too. You get the gist. In one window, run:

bundle exec foreman start

and in the other:

rackup

At this point, you should be able to view Feedbin on http://YourIPAddress:9292.

Sign up and try adding some feeds. You'll be able to see things happening in the other 2 windows, hopefully error free.

At this point, you'll be able to read RSS feeds, but they won't update themselves just yet. I'll cover that in Part 2.

Hope everything works out for you like it did for me. If you need any help, feel free to ask me in the comments.