Tiny Tiny RSS on Heroku
Update Looks like someone else has further iterated on the process outlined in this post? I haven’t had a chance to try—nowadays I use Inoreader.
This takes 5-10 minutes from start to finish :) The only prerequisite tools are git and the Heroku CLI.
Download a local copy of TTRSS.
git clone https://github.com/gothfox/Tiny-Tiny-RSS.git cd Tiny-Tiny-RSS
Open
config.php-dist
, change the value ofSESSION_CHECK_ADDRESS
from 1 to 0, and save.Set up a new Heroku project. Replace
$APP_NAME
below with a custom project name, e.g.john-doe-ttrss
to have your TTRSS instance live athttps://john-doe-ttrss.herokuapp.com
.heroku login heroku create $APP_NAME heroku addons:create heroku-postgresql:hobby-dev
Add a few special files needed by Heroku.
cat << EOM > Procfile web: ~/web-boot.sh EOM cat << EOM > composer.json { "require": { "ext-mbstring": "*" } } EOM cat << EOM > web-boot.sh sed -i 's/^ServerLimit 1/ServerLimit 8/' ~/.heroku/php/etc/apache2/httpd.conf sed -i 's/^MaxClients 1/MaxClients 8/' ~/.heroku/php/etc/apache2/httpd.conf vendor/bin/heroku-php-apache2 EOM chmod +x web-boot.sh git add -A git commit -m "Add Heroku files"
Push your local TTRSS repo to Heroku.
git push heroku master
Go to your app’s database in the Heroku Postgres dashboard and copy its connection settings into your new TTRSS instance, which can be found at the URL described in step 3.
Complete the installation wizard by clicking Test configuration, Initialize database, and Save configuration.
Log in to your TTRSS instance with the default username
admin
and passwordpassword
.
Acknowledgements
This guide is based on Reuben Castelino’s impressively detailed blog post on the subject. I attempt to improve on his method by:
Favoring the normal TTRSS database initialization process over manual initialization
Leveraging Heroku’s
composer.json
support instead of relying on a prebuilt copy ofmbstring.so
Preventing the
Session failed to validate (incorrect IP)
login errorBeing more concise (he did thoughtfully condense his post into a shell script for us TLDR folks, but unfortunately it no longer works)
Extra Credit
I highly recommend the Feedly theme for TTRSS. You can easily convert it into a dark theme by going to Preferences > Customize stylesheet and pasting in the following:
body {
-webkit-filter: invert(100%);
filter: invert(100%);
}
img {
-webkit-filter: invert(100%);
filter: invert(100%);
}
.scoreWrap {
display: none !important;
}