The best way to Self-Host a RSS Reader with FreshRSS

FreshRSS is an easy and simple to deploy web-based RSS feed reader for Linux servers. Much like Tiny Tiny RSS, it really works by offering a clear, cross-platform interface that you may entry out of your net browser.

This text will present you the way to set up FreshRSS on Ubuntu. We can even spotlight how one can configure the reader for a multi-user session.

One of many greatest promoting factors of FreshRSS is that it comes with a built-in net scraper. This implies that you may create primary RSS feeds even on web sites that don’t help it.

FreshRSS additionally helps push notifications on fashionable content material platforms. Consequently, the platform may be extremely fast and reactive to publish updates. Lastly, it is usually easy to put in which makes it a super venture for novice customers which are simply getting began with self-hosting.

A screenshot showing a fully running FreshRSS instance.

Putting in FreshRSS

Assumption: This text assumes that you’ve a working area identify with an A and PTR document pointing to your VPS occasion’s IP tackle and hostname.

We will likely be utilizing Docker to put in FreshRSS.

Set up Docker

Fetch the Docker repository’s signing key from the venture’s web site:

curl -fsSL https://obtain.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /and so on/apt/keyrings/docker.gpg
sudo chmod a+r /and so on/apt/keyrings/docker.gpg

Create a brand new repository file for Docker:

sudo nano /and so on/apt/sources.checklist.d/docker.checklist

Write the next line of code inside your new repository file:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://obtain.docker.com/linux/ubuntu jammy secure

Refresh your system repositories, replace your system, and set up the Docker binaries:

sudo apt replace && sudo apt improve
sudo apt set up docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx

Constructing the FreshRSS Docker Container

Make a brand new listing in your consumer’s residence listing for FreshRSS and go inside it:

mkdir ~/freshrss && cd ~/freshrss

Create a “docker-compose.yml” file utilizing your favourite textual content editor:

nano ./docker-compose.yml

Paste the next block of code inside your new docker-compose file:

---
model: "2.4"
volumes:
  knowledge: null
  extensions: null
providers:
  freshrss:
    picture: freshrss/freshrss:newest
    construct:
      context: https://github.com/FreshRSS/FreshRSS.git#newest
      dockerfile: Docker/Dockerfile-Alpine
    container_name: freshrss
    hostname: freshrss
    restart: unless-stopped
    logging:
      choices:
        max-size: 10m
    volumes:
      - knowledge:/var/www/FreshRSS/knowledge
      - extensions:/var/www/FreshRSS/extensions
    ports:
      - "8080:80"
    setting:
      TZ: Asia/Manila # CHANGE TO YOUR TIMEZONE
      CRON_MIN: 3,33

Save your docker-compose.yml file. Run the next command the construct your docker container:

sudo docker compose up -d

Setting Up Reverse Proxy and SSL

As soon as the FreshRSS occasion is up and operating, subsequent we are going to configure Nginx to d a reverse proxy so you’ll be able to entry it publicly by way of your area identify.

To start out, create an Nginx website configuration file in your occasion:

sudo nano /and so on/nginx/sites-available/freshrss

Paste the next block of code inside your new website configuration file:

server {
    hear 80;
    hear [::]:80;
 
    root                    /var/www/html;
    server_name             freshrss.your-domain-name.right here;
 
    location / {
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    Host $http_host;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_pass          http://localhost:8080;
    }
}

Save your new website configuration file and run the next command to create a symbolic hyperlink to “/and so on/nginx/sites-enabled”:

sudo ln -s /and so on/nginx/sites-available/freshrss /and so on/nginx/sites-enabled/

Take a look at your Nginx configuration:

If every little thing is ok, reload your Nginx server daemon and enabling it on system startup:

sudo systemctl reload nginx

Enabling SSL For Your Occasion

To acquire an SSL certificates, set up the core snap daemon to your system:

Fetch and set up the Digital Frontier Basis’s (EFF) certbot utility utilizing snap:

sudo snap set up certbot --classic

Register your certbot set up to the EFF by operating the next command:

sudo certbot register --agree-tos -m you@your-email.invalid

Request an SSL certificates in your occasion by operating the next command:

sudo certbot --nginx -d your-freshrss-domain-name

Open an internet browser and navigate to the tackle of your new FreshRSS occasion. Click on the dropdown checklist on the web page and choose the language that you really want FreshRSS to run on, then click on “Submit.”

A screenshot showing the language selection prompt for FreshRSS.

Doing that may load FreshRSS’ self-test module which can test whether or not the present occasion is operating correctly. To proceed, scroll right down to the underside of the web page, then click on “Go to the subsequent step.”

A screenshot showing the dependency check prompt.

Click on the dropdown checklist, choose “SQLite” then click on “Submit.”

A screenshot showing the database selection prompt.

Fill within the particulars of your occasion’s administrator consumer, then click on “Submit” to create it.

A screenshot showing the administrator user details for this instance.

Click on “Full set up” to correctly begin your new FreshRSS occasion.

Enabling Consumer Registration

To start out, login to your FreshRSS administrator account, then click on the cog icon on the web page’s higher proper nook.

A screenshot highlighting the settings button for FreshRSS.

Scroll to the “Administration” class, then choose “System configuration.”

Go to the “Consumer registration kind” subcategory, click on the dropdown field beside the “Registration kind”, then choose the “Enabled: No restrict of accounts.” choice.

A screenshot showing the registration toggle for the FreshRSS instance.

Save your new website configuration by clicking the “Submit” button on the underside of the web page.

Wiping an Present Consumer’s Information

Go to your FreshRSS administrator account, then click on the cog icon on the web page’s higher proper nook.

Go to the “Administration” class, then choose “Handle customers.”

A screenshot highlighting the user management link.

This can deliver up a web page with a listing of the present customers in your FreshRSS occasion. Click on the identify of the consumer that you simply need to disable.

A screenshot highlighting the clickable user name inside the user management prompt.

Click on the “Purge” button to wipe the consumer’s RSS feeds clear.

A screenshot highlighting the

Internet hosting your individual web-based RSS feed reader is simply the beginning of taking on your private knowledge on-line. Be taught how one can host your individual video sharing web site with Peertube.

Picture credit score: Yongma Website positioning by way of Unsplash and FreshRSS Github (Emblem). All alterations and screenshots by Ramces Crimson.