Rocking with River4: Lesson 4 – River4/Amazon S3/Heroku Setup

The next installment in my series of videos on the River4 feed reader by Dave Winer shows how to see your River4 rivers online. This video covers several topics:

  • Setting up an account on the Amazon S3 storage service
  • DNS setup for domain name
  • Github account setup
  • River4 setup
  • Heroku setup and deploy of the River4 app

Links referred to in the video are listed at the end of this post, after the video.

Amazon Web Services: http://aws.amazon.com

Creating a S3 bucket:

http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html

Bucket policies:

https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

Subscription lists:

http://river4.smallpict.com/2014/09/20/exampleSubscriptionLists.html

Example river website: http://rivertest.andysylvester.com/

 

 

Notes on a River4 initial installation

I have finished installing the River4 application by Dave Winer. My river is running at http://myrivers.andysylvester.com/. I plan to document my experiences on my weblog, and possibly using the Fargo tool (also by Dave Winer). However, I wanted to highlight several problem areas for a person approaching River4 for the first time and approaching the infrastructure used by River 4 for the first time (Heroku, S3 from Amazon Web Services). For background, I have worked in software development for over 25 years, so I did bring a little experience to the table.

Heroku

Part of setting up a Heroku account involves supplying a SSH ID file. When I started, Heroku asked me if I wanted to use a file associated with my Github account, or another file (id_rsa.pub). Since I had been working with Github, I selected that file. After a lot of struggles in making my initial Git commit on Heroku, I figured out that I needed to delete the Github key and upload the id_rsa.pub key. Once I did that, I was able to make the commit and create the Node.js application. This was my first big problem to overcome. I don’t remember how I had created my SSH key, but that is another area where some additional information would be good for new users.

S3 Problem Areas

I am an Amazon user, so signing up for Amazon Web Services was not a problem. However, the setting up of a bucket on S3 was not as straightforward. After reading through the River4 README document and Christian Dadwell’s River4 tutorial, I felt that I needed some more information. I found several pages in the AWS documentation that guided me through the bucket creation process (for example, http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html and http://docs.aws.amazon.com/AmazonS3/latest/UG/CreatingaBucket.html). Due to my initial choices in the setup, I caused some problems for myself. When initially setting up the region for the bucket, I chose Oregon because that is where I live. After working through some errors, I believe that “US Standard” is the correct choice. When I went back to Christian Dadwell’s tutorial, I saw that he listed “US Default” in his S3 setup instructions. I found out the hard way that this was an important setting.

Another problem I encountered after correcting that issue was getting “Access Denied” messages in my Heroku logs. Another River4 user, Frank McPherson, mentioned that I might need to change my AWS user permission settings to a “Power User” setting to overcome the “Access Denied” issue. I did that, then ended up moving the setting all the way to the “Administrator” setting. With that change, I was able to see the River4 app start working and displaying some rivers. I think that there should be some other way to facilitate changing of permissions (maybe through a S3 bucket policy change), but this at least got my River4 install running. I greatly appreciate Frank McPherson’s help in this area.

Conclusion

I hope this helps other “new users” for River4. I have enjoyed reading Dave Winer’s rivers linked from Scripting News, and look forward to setting up my own rivers.

 

Minimal River.js Reader – Version 0.11

I made some updates to add filtering of the river used in the app. The user can enter a one word search term to filter the results of the river. For example, if you wanted to find all items that had “Obama” in the title or body, you can enter “Obama” (no quotes) in the text box and see the items with that term shown. The search is case-insensitive.

reader_0_11

As before, you can check it out on my site as well as on Github!