Feedbin is a simple, fast and nice looking RSS reader.
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.
- Mac OS X or Linux
- Ruby 2.0
- Postgres 9.2.4
- Redis 2.6.13
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 Variable | Description |
---|---|
ASSET_HOST | Pull CDN URL |
AWS_ACCESS_KEY_ID | Used for file uploads - http://aws.amazon.com |
AWS_S3_BUCKET | Used for file uploads - http://aws.amazon.com |
AWS_SECRET_ACCESS_KEY | Used for file uploads - http://aws.amazon.com |
CAMO_HOST | CDN to point to the camo host |
CAMO_KEY | Used to rewrite assets to use https - https://github.com/atmos/camo |
DATABASE_URL | Database connection string - postgres://USER:PASS@IP:PORT/DATABASE |
DEFAULT_URL_OPTIONS_HOST | Mailer host - feedbin.com |
ELASTICSEARCH_URL | search endpoint - http://localhost:9200 |
ENTRY_LIMIT | Maximum entries per feed. Older entries will be deleted. |
FEEDBIN_HOMEPAGE_REPO | Git URL to a Rails engine that provides a custom homepage |
FROM_ADDRESS | Used as a reply-to email address |
GAUGES_SITE_ID | gaug.es analytics identifier |
HONEYBADGER_API_KEY | Used for error reporting - http://honeybadger.io |
LIBRATO_SOURCE | Default source for metrics - feedbin |
LIBRATO_TOKEN | Used for reporting stats - http://metrics.librato.com |
LIBRATO_USER | Used for reporting stats - http://metrics.librato.com |
MEMCACHED_HOSTS | Comma separated memcached hosts/ports - 192.168.1.2:11121 |
POSTGRES_USERNAME | Used for connecting to database |
PUSH_URL | URL for the Feedbin instance - https://feedbin.com |
RACK_ENV | Environment - production |
RAILS_ENV | Environment - production |
READABILITY_API_TOKEN | Used for Readability - http://www.readability.com |
REDIS_URL | redis connection string - redis://redis:[email protected]:6379 |
SECRET_KEY_BASE | Encryptions key for Rails - run rake secret |
SIDEKIQ_PASSWORD | Sidekiq Basic Auth Password |
SMTP_ADDRESS | SMTP Host |
SMTP_USERNAME | SMTP Username |
SMTP_PASSWORD | SMTP Password |
STRIPE_API_KEY | Used for communicating with stripe - https://stripe.com |
STRIPE_PUBLIC_KEY | Used for communicating with stripe - https://stripe.com |
ANALYTICS_ID | Google Analytics Property |
ANALYTICS_DOMAIN | Google Analytics Domain |
EVERNOTE_KEY | Evernote API Key |
EVERNOTE_SECRET | Evernote 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
...
Click the button bellow to quickly and safely install this project on your local machine.
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 azk
here.
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 azk
here.
Have a feature you would like to add but don't know where to start?
Email [email protected] and we'll set something up to work on it together.