karelvo.


Guide - TT-RSS on Yunohost on a Linode VPS

Published on

I am a big fan of RSS – both as a concept (easily readable and cataloged website updates) as “what it stands for” (an internet made from decentralized, low-weight information sources). The stories of its decline are largely exaggerated and are mostly fueled by the fact that the incumbent social media channels don’t support it – not because they can’t, but because it leads audiences away from their platform. However, close to all CMSs have Atom/XML feeds enabled by default; good luck finding a blog or news website without one. Furthermore, there are many community-driven tools to make sure that ‘the rest’ is covered (such as Kill The Newsletter for emails, Nitter for Twitter, and rss-bridge for pretty much everything else).

RSS feeds on their own are awesome, but you’ll need a reader to… read them with. The internet’s reader by choice used to be Google Reader, which is now unfortunately defunct. Luckily, there are tons of great services that do pretty much the same thing:

Inoreader

Inoreader

Feedly

Feedly

Feedbin

Feedbin

In most of the free plans coming with the above solutions, you can do the essentials: add (a limited number of) feeds and read them. And for most people, that will be more than enough. However, if you want to have the best experience (no ads, automation, filters, etc.), you’ll have to pay. I should know: I was a paying Inoreader customer for 4 years, and never regretted it.

In 2022, I decided to make the switch towards a self-hosted instance. I won’t go into detail about why/when you should (not) self-host anything, I believe this page covers the pros and cons pretty well. As I’m only a bit of a tinkerer, and by no means anything close to an SWE or systems geek, I decided to take a relatively easy route without foregoing useability and security.

After some research, I found the sweet spot: TT-RSS via YunoHost on a dirt-cheap Linode VPS. In this dummy-proof blog post, I’d like to cover the A to Z of setting this up in 30 minutes – 2 hours, depending on your technical skill level.


1. Prepping your server


Your RSS reader needs to live on a server, either one that you plug in your own power outlet or one that you rent. I chose the latter option, because it’s the easiest (especially in terms of securing your box), but don’t let that hold you back. If you’re in it for the long run, it may be cheaper though ($5/mo rent VS $50 for the box and negligible electricity costs).

Linode

Linode

Many companies offer very low-cost (and low-horsepower) VPSs. I chose Linode, but you can just as well go for alternatives such as DigitalOcean or Vultr. All these companies’ options have pretty much the same specs and ‘extras’ for the exact same price range. They even have the same “$100 credit in first 60 days” offer – which we won’t overrun, we’re renting the absolute cheapest box anyway.

After creating an account, follow these steps:

$ ssh root@000.000.000.00
The authenticity of host '[000]' can't be established.
ECDSA key fingerprint is SHA256:[xxx]].
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
root@000.000.000.00's password: (password)
root@localhost:~#

2. Installing YunoHost


If you’re not comfortable with Docker and an Nginx setup (which is what I prefer), you don’t want to install your RSS reader (and other web applications) directly on the machine. Instead, for this exercise we’re going to make life easy and install YunoHost, a Debian-based OS that does all the hard stuff for you. Similar solutions exist, but the ones I’ve tried are either less mature (CapRover), paid (Cloudron), or don’t have all the bling that we want (Sandstorm).

YunoHost

YunoHost

YunoHost is awesome for a variety of reasons, including the fact that they have a library of one-click app installs. If you want to know more, I suggest taking a look at their (noob-friendly) documentation.

To install YunoHost, take the following steps:

root@localhost:~# curl https://install.yunohost.org | bash
Are you sure you want to proceed with the installation of Yunohost?

[YES] [NO]
Do you agree to let YunoHost apply those changes to your configuration and therefore affect the way you connect through SSH ?

[YES] [NO]
root@localhost:~# yunohost tools postinstall
Main domain: (domainname).nohost.me
New administration password: (password)
Confirm new administration password: (password)
$ yunohost user create (username)
First name: (name)
Last name: (name)
Password: (password)
Confirm password: (password)
Available domains:
- (domainname).nohost.me
Domain to use for the user's email address and XMPP account (default: (domainname).nohost.me):
Success! User created
fullname: Karel VO
mail: (username)@(domainname).nohost.me
username: karel
No worries, just click 'Advanced' and 'proceed'.

No worries, just click 'Advanced' and 'proceed'.

You're about to enter your YunoHost for the first time!

You're about to enter your YunoHost for the first time!

Click "Administration"...

Click "Administration"...

..and enter your YunoHost admin password.

..and enter your YunoHost admin password.


3. Installing Tiny Tiny RSS


Finally, we’re ready to install our feed aggregator from Yunohost’s extensive list of one-click install applications. Out of the box, YH offers multiple RSS readers – including the much-loved FreshRSS. Upon trying my options, I decided to stick with my original choice: Tiny Tiny RSS (also called TT-RSS).

Tiny Tiny RSS

Tiny Tiny RSS

To install TT-RSS on YunoHost, follow these steps:

Under "Applications", you'll get a large list of one-click install apps. There'll definitely be more applications that you'll wish to install later on!

Under "Applications", you'll get a large list of one-click install apps. There'll definitely be more applications that you'll wish to install later on!

A single click, that's all it takes.

A single click, that's all it takes.

Almost there...

Almost there...

Whoomp, there it is!

Whoomp, there it is!

And you’re all set! Enjoy your fully self-hosted Tiny Tiny RSS!

Since it’s outside of the scope of this blog post: if you’re unsure on how to get started with Tiny Tiny RSS, check out the TT-RSS documentation.


4. Feedly theme (optional)


Tiny Tiny RSS comes with a handful of themes. However, if those don’t suit your needs, you can always switch to the (IMHO more polished) TT-RSS Feedly theme – click the link for screenshots. To do so, take the following steps:

$ wget https://github.com/levito/tt-rss-feedly-theme/archive/master.zip
$ unzip master.zip
$ cd tt-rss-feedly-theme-master
$ sudo cp -r feedly* /var/www/ttrss/themes/


5. Third-party applications (optional)


I like to read my feeds on the go. As an Android user, I can say with a fair degree of certainty that FeedMe is the best TT-RSS supported feed reader you’ll find. It’s bulging with features (many more than my previous official Inoreader app, for example) and nothing’s behind and pay/adwall – but you have the option to support the developer from within the app.

FeedMe

FeedMe

Whichever third-party application you choose, you need to take the following steps:


I hope this was a helpful guide. If you have any feedback or questions, you can always contact me.