Tiny Tiny RSS on OpenShift

Update: This guide was written for Open Shift Online 2, which reaches its end of life at the end of September 2017. I haven’t had the chance to look at the new platform i.e. v3 in detail to see how easy to migrate over TT-RSS. I’ll update this guide once I figure out what to do.

I put this guide online to offer some help to anyone who might be searching an updated walk-through to install Tiny Tiny RSS on OpenShift. However, this post is not intended to be a comprehensive guide to install Tiny Tiny RSS on OpenShift, nor does it provide solutions to problems that you may come across during the installation. Some of the steps I put below might seem clumsy and unnecessary; and, there are probably better ways of doing things (e.g. using terminal instead of FileZilla). Be that as it may, it works for me and hopefully it will work for you too. This is a collection of steps that I followed to set up my own tt-rss instance on OpenShift, which has been running for almost two years and kept updated regularly.

The steps are as follows:

  1. Open OpenShift online and create a php application, preferably version 5.4, as it is maintained by OpenShift and gets security updates
  2. Name your app e.g. ttrss
  3. After successfully creating the app, add cron and mysql from available cartridges. TT-RSS suggests PostgreSQL for better performance but in my own setup MySQL performs faster and doesn’t increase in size as fast as PostgreSQL does (maybe because of this? Don’t know. The main point is you can choose either but don’t forget to delete your logs time to time due to the fact that autovacuum does not work on OpenShift)
  4. Open git bash terminal and ssh to your application
  5. Go to your repo where you will be installing tt-rss: cd $OPENSHIFT_REPO_DIR
  6. Download the latest tt-rss: git clone https://tt-rss.org/git/tt-rss.git tt-rss
  7. Open your application URL by adding /tt-rss/ to the end, as this folder, tt-rss, is where we installed tt-rss previously (if the url comes back 404, check if it is https - http should work)
  8. Enter admin, password, etc. To see host name, open git bash while logged in your app and check $OPENSHIFT_MYSQL_DB_HOST
  9. Once tt-rss is initialised, on config file make ‘self url path’ https
  10. Open your tt-rss. Default username is admin, password is password
  11. Import your old feeds and change settings as you see fit
  12. FileZilla into your app
  13. While in FileZilla, go to app-root > repo > .openshift > cron > minutely and upload this script (file name: update-feeds)

    #!/bin/bash

    $OPENSHIFT_REPO_DIR/tt-rss/update.php --feeds &> $OPENSHIFT_LOG_DIR/rss_update.log

  14. Open your app with https in the url. If https doesn’t work even if after you changed it on config during first initial setup, FileZilla into your app, download config.php, change url to https, and then reupload your config. This will fix it.

  15. Don’t forget to delete your logs (app-root > logs) time to time (e.g. 4 months) and check your app size to make sure to stay within the quota rhc app-show ttrss --gears quota

  16. To upgrade your tt-rss, simply open git bash and ssh to your app, and then:

    cd $OPENSHIFT_REPO_DIR

    cd tt-rss

    git pull origin master

If something goes wrong, always consult here: https://tt-rss.org/fox/tt-rss/wikis/InstallationNotes

Happy RSS reading!