How to Install Tiny Tiny RSS on Elementary OS Latest

Tiny Tiny RSS is an open-source web-based news feed reader that allows you to read RSS/Atom feeds on your own server. In this tutorial, we will learn how to install Tiny Tiny RSS on Elementary OS Latest.

Prerequisites

Step 1: Update the System

Before installing Tiny Tiny RSS, let's update the system to ensure that we have the latest software installed.

sudo apt update
sudo apt upgrade

Step 2: Install Required Packages

To install Tiny Tiny RSS, we need to first install some required packages. Run the following command to install them:

sudo apt install nginx mariadb-server php php-mysql php-curl php-gd php-json php-mbstring php-xml php-zip

During the installation, you will be prompted to create a root password for the MariaDB. Please remember the password as we will need it later.

Step 3: Configure a Database

To install Tiny Tiny RSS, we need to first create a new database and user. Run the following command to log in to the MariaDB:

sudo mysql -u root -p

Enter the root password that you have previously created.

Now create a new database and user for Tiny Tiny RSS.

CREATE DATABASE ttrss;
GRANT ALL PRIVILEGES ON ttrss.* TO 'ttrssuser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit;

Remember to change 'password' to a strong password.

Step 4: Install Tiny Tiny RSS

Create a new directory that will contain the Tiny Tiny RSS installation files.

sudo mkdir /var/www/ttrss
cd /var/www/ttrss

Download the latest version of Tiny Tiny RSS from their official website.

sudo wget https://git.tt-rss.org/fox/tt-rss/archive/master.zip

Unzip the downloaded file.

sudo unzip master.zip

Rename the extracted folder to 'html'.

sudo mv tt-rss-master html

Set the file permissions.

sudo chown -R www-data:www-data /var/www/ttrss/html
sudo chmod -R 755 /var/www/ttrss/html

Step 5: Configure Nginx

We need to create a new Nginx server block for Tiny Tiny RSS. Run the following command to create a new file:

sudo nano /etc/nginx/sites-available/ttrss.conf

Copy the following Nginx configuration and paste it into the file.

server {
    listen 80;
    listen [::]:80;
    root /var/www/ttrss/html;
    index index.php index.html index.htm;
    server_name example.com www.example.com;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

Remember to replace 'example.com' with your own domain name.

Save and close the file.

Enable the new server block by creating a symlink.

sudo ln -s /etc/nginx/sites-available/ttrss.conf /etc/nginx/sites-enabled/

Test the configuration and restart Nginx.

sudo nginx -t
sudo systemctl restart nginx

Step 6: Configure Tiny Tiny RSS

We need to configure Tiny Tiny RSS to use the database that we have created earlier. Run the following command to open the configuration file.

sudo nano /var/www/ttrss/html/config.php

Find the following lines:

define('DB_TYPE', "pgsql");
define('DB_HOST', "localhost");
define('DB_USER', "fox");
define('DB_NAME', "fox");
define('DB_PASS', "password");

Change them to the following:

define('DB_TYPE', "mysql");
define('DB_HOST', "localhost");
define('DB_USER', "ttrssuser");
define('DB_NAME', "ttrss");
define('DB_PASS', "password");

Remember to change 'password' to the password that you have created earlier.

Save and close the file.

Step 7: Access Tiny Tiny RSS

Open your browser and go to your domain name. You should see the Tiny Tiny RSS login page.

Log in with the default username and password:

Remember to change the default password after logging in.

Congratulations! You have successfully installed Tiny Tiny RSS on Elementary OS Latest.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!

Alternatively, for the best virtual desktop, try Shells!