Displaying items by tag: TTRSS

Sunday, 23 February 2020 01:49

Learn to: install TT-RSS on a Raspberry Pi

Read your news feeds while keeping your privacy intact with Tiny Tiny RSS.


Tiny Tiny RSS (TT-RSS) is a free and open source web-based news feed (RSS/Atom) reader and aggregator. It's ideally suited to those who are privacy-focused and still rely on RSS for their

daily news. Tiny Tiny RSS is self-hosted software, so you have 100% control of the server, your data, and your overall privacy. It also supports a wide range of plugins, add-ons, and themes,

Want a dark mode interface? No problem. Want to filter your incoming news based on keywords? TT-RSS has you covered there, as well.


Now that you know what TT-RSS is and why you may want to use it, I'll explain everything you need to know about installing it on a Raspberry Pi or a Debian 10 server.




Install and configure TT-RSS

To install TT-RSS on a Raspberry Pi, you must also install and configure the latest version of PHP (7.3 as of this writing), PostgreSQL for the database backend, the Nginx web server, Git, and

finally, TT-RSS.


1. Install PHP 7

Installing PHP 7 is, by far, the most involved part of this process. Thankfully, it's not as difficult as it might appear. Start by installing the following support packages:


$ sudo apt install -y ca-certificates apt-transport-https

Now, add the repository PGP key:

$ wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

Next, add the PHP repository to your apt sources:

echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list


Then update your repository index:

sudo apt update


Finally, install PHP 7.3 (or the latest version) and some common components:


sudo apt install -y php7.3 php7.3-cli php7.3-fpm php7.3-opcache php7.3-curl php7.3-mbstring php7.3-pgsql php7.3-zip php7.3-xml php7.3-gd php7.3-intl 


The command above assumes you're using PostgreSQL as your database backend and installs php7.3-pgsql. If you'd rather use MySQL or MariaDB, you can easily change this to php7.3-mysql.

Next, verify that PHP is installed and running on your Raspberry Pi:

php -v


Now it's time to install and configure the webserver.


2. Install Nginx

Nginx can be installed via apt with:

sudo apt install -y nginx


Modify the default Nginx virtual host configuration so that the webserver will recognize PHP files and know what to do with them:


You can safely delete everything in the original file and replace it with:


server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;
index index.html index.htm index.php;
server_name _;

location / {
try_files $uri $uri/ =404;

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;


Use Ctrl+O to save your new configuration file and then Ctrl+X to exit Nano. You can test your new configuration with:


$ nginx -t


If there are no errors, restart the Nginx service:


 $ systemctl restart nginx


3. Install PostgreSQL

Next up is installing the database server. Installing PostgreSQL on the Raspberry Pi is super easy:


$ sudo apt install -y postgresql postgresql-client postgis


Check to see if the database server was successfully installed by entering:


psql --version 


4. Create the Tiny Tiny RSS database

Before you can do anything else, you need to create a database that the TT-RSS software will use to store data. First, log into the PostgreSQL server:


sudo -u postgres psql


Next, create a new user and assign a password:


CREATE USER username WITH PASSWORD 'your_password' VALID UNTIL 'infinity';


Then create the database that will be used by TT-RSS:




Finally, grant full permissions to the new user:


That's it for the database. You can exit the psql app by typing \q.


5. Install Git

Installing TT-RSS requires Git, so install Git with:

$ sudo apt install git -y

Now, change directory to wherever Nginx serves web pages:

$ cd /var/www/html

Then download the latest source for TT-RSS:

$ git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss

Note that this process creates a new tt-rss folder.


6. Install and configure Tiny Tiny RSS


It's finally time to install and configure your new TT-RSS server. First, verify that you can open http://your.site/tt-rss/install/index.php in a web browser. If you get a 403 Forbidden error, your


permissions are not set properly on the /var/www/html folder. The following will usually fix this issue:

$ chmod 755 /var/www/html/ -v


If everything goes as planned, you'll see the TT-RSS Installer page, and it will ask you for some database information. Just tell it the database username and password that you created earlier;

the database name; localhost for the hostname; and 5432 for the port.

Click Test Configuration to continue. If all went well, you should see a red button labeled Initialize Database. Click on it to begin the installation. Once finished, you'll have a configuration file that

you can copy and save as config.php in the TT-RSS directory.

After finishing with the installer, open your TT-RSS installation at http://yoursite/tt-rss/ and log in with the default credentials (username: admin, password: password). The system will recommend

that you change the admin password as soon as you log in. I highly recommend that you follow that advice and change it as soon as possible.


Set up TT-RSS


If all went well, you can start using TT-RSS right away. It's recommended that you create a new non-admin user, log in as the new user, and start importing your feeds, subscribing, and

configuring it as you see fit.

Finally, and this is super important, don't forget to read the Updating Feeds section on TT-RSS's wiki. It describes how to create a simple systemd service that will update your feeds. If you skip

this step, your RSS feeds will not update automatically.



Whew! That was a lot of work, but you did it! You now have your very own RSS aggregation server. Want to learn more about TT-RSS? I recommend checking out the official FAQ, the support

forum, and the detailed installation notes. Feel free to comment below if you have any questions or issues.



Published in GNU/Linux Rules!
Tagged under