Skip to content

Repository files navigation

Feedbin

Build StatusCode ClimateTest Coverage

Feedbin is a simple, fast and nice looking RSS reader.

Feedbin Screenshot

Introduction

Feedbin is a web based RSS reader. It provides a user interface for reading and managing feeds as well as a REST-like API for clients to connect to.

If you would like to try Feedbin out you can sign up for an account.

The main Feedbin project is a Rails 4.0 application. In addition to the main project there are several other services that provide additional functionality. None of these services are required to get Feedbin running locally, but they all provide important functionality that you would want for a production install.

  • refresher: Refresher is the service that does feed refreshing. Feed refreshes are scheduled as background jobs using Sidekiq. Refresher is kept separate so it can be scaled independently. It's also a benefit to not have to load all of Rails for this service.
  • camo: Camo is an https image proxy. In production Feedbin is SSL only. One issue with SSL is all assets must be served over SSL as well or the browser will show insecure content warnings. Camo proxies all image requests through an SSL enabled host to prevent this.

Requirements

Installation

Ultimately, you'll need a Ruby environment and a Rack compatible application server. For development Pow is recommended.

Feedbin uses environment variables for configuration. Feedbin will run without these, but various features and functionality will be turned off.

Environment VariableDescription
ASSET_HOSTPull CDN URL
AWS_ACCESS_KEY_IDUsed for file uploads - http://aws.amazon.com
AWS_S3_BUCKETUsed for file uploads - http://aws.amazon.com
AWS_SECRET_ACCESS_KEYUsed for file uploads - http://aws.amazon.com
CAMO_HOSTCDN to point to the camo host
CAMO_KEYUsed to rewrite assets to use https - https://github.com/atmos/camo
DATABASE_URLDatabase connection string - postgres://USER:PASS@IP:PORT/DATABASE
DEFAULT_URL_OPTIONS_HOSTMailer host - feedbin.com
ELASTICSEARCH_URLsearch endpoint - http://localhost:9200
ENTRY_LIMITMaximum entries per feed. Older entries will be deleted.
FEEDBIN_HOMEPAGE_REPOGit URL to a Rails engine that provides a custom homepage
FROM_ADDRESSUsed as a reply-to email address
GAUGES_SITE_IDgaug.es analytics identifier
HONEYBADGER_API_KEYUsed for error reporting - http://honeybadger.io
LIBRATO_SOURCEDefault source for metrics - feedbin
LIBRATO_TOKENUsed for reporting stats - http://metrics.librato.com
LIBRATO_USERUsed for reporting stats - http://metrics.librato.com
MEMCACHED_HOSTSComma separated memcached hosts/ports - 192.168.1.2:11121
POSTGRES_USERNAMEUsed for connecting to database
PUSH_URLURL for the Feedbin instance - https://feedbin.com
RACK_ENVEnvironment - production
RAILS_ENVEnvironment - production
READABILITY_API_TOKENUsed for Readability - http://www.readability.com
REDIS_URLredis connection string - redis://redis:PASSWORD@192.168.1.3:6379
SECRET_KEY_BASEEncryptions key for Rails - run rake secret
SIDEKIQ_PASSWORDSidekiq Basic Auth Password
SMTP_ADDRESSSMTP Host
SMTP_USERNAMESMTP Username
SMTP_PASSWORDSMTP Password
STRIPE_API_KEYUsed for communicating with stripe - https://stripe.com
STRIPE_PUBLIC_KEYUsed for communicating with stripe - https://stripe.com
ANALYTICS_IDGoogle Analytics Property
ANALYTICS_DOMAINGoogle Analytics Domain
EVERNOTE_KEYEvernote API Key
EVERNOTE_SECRETEvernote API Secret

These variables will need to be available in the environment of the user running the app.

Locally, I use dotenv combined with pow. Pow's .powenv file is set up to read dotenv's .env file like:

export$(cat .env)

This is necessary so the environment variables can be read by both Pow and Unicorn.

In a production environment, variables are set in the app users ~/.bash_profile like:

export AWS_ACCESS_KEY_ID=aoisjf3j23oij23f
...

Feedbin Install Guides

Running locally

Click the button bellow to quickly and safely install this project on your local machine.

Run project

The Run Project button employs azk, a lightweight open source orchestration tool that will automatically isolate and configure the application's environment for you.

Learn more about azkhere.

Deploying to DigitalOcean

After you run this project locally using Run Project button, deploying to DigitalOcean is very simple.

First, be sure you have SSH keys configured in your machine. If you don't have it yet (or if you aren't sure about it), just follow steps 1 and 2 of this tutorial.

Next, put your personal access token into a .env file:

$ cd path/to/the/project
$ echo"DEPLOY_API_TOKEN=<YOUR-PERSONAL-ACCESS-TOKEN>">> .env

Then, just run the following:

$ azk deploy

The Run Project button employs azk, a lightweight open source orchestration tool that will automatically isolate and configure the application's environment for you.

Find instructions for further resources (mostly customizations) to deploy to DigitalOcean using azkhere.

Pair With Me

Have a feature you would like to add but don't know where to start?

Email support@feedbin.com and we'll set something up to work on it together.

About

RSS Reader

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages