Feedlynx

Feedlynx collects weblinks and generates a RSS feed with these links for your prefered RSS reader to read them later. Every time you transfer a link to Feedlynx, it fetches the URL to determine a title and description. With this information, Feedlynx generates a new entry to the feed.


Note

For this guide you should be familiar with the basic concepts of

Prerequisites

If you want to use Feedlynx with your own domain you need to setup your domains first:

[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$

Installation

Create a directory for the application:

[isabell@stardust ~]$ mkdir ~/feedlynx
[isabell@stardust ~]$

Find the latest version from the release page, then download and extract it into the Feedlynx directory.

[isabell@stardust ~]$ VERSION=0.3.0
[isabell@stardust ~]$ wget -qO- https://releases.wezm.net/feedlynx/$VERSION/feedlynx-$VERSION-x86_64-unknown-linux-musl.tar.gz | tar xvz -C ~/feedlynx
[isabell@stardust ~]$

Make the downloaded binary executable:

[isabell@stardust ~]$ chmod u+x ~/feedlynx/feedlynx
[isabell@stardust ~]$

Configuration

Setup daemon

Feedlynx requires two environment variables to be set:

FEEDLYNX_PRIVATE_TOKEN used to authenticate requests to add a new link. FEEDLYNX_FEED_TOKEN used in the path to the generated feed.

Both of these tokens must be at least 32 characters long and hard to guess. Suitable values can be generated with feedlynx gen-token, which will print a randomly generated token:

[isabell@stardust ~]$ ~/feedlynx/feedlynx gen-token
[isabell@stardust ~]$ VERY_LONG_FEED_TOKEN
[isabell@stardust ~]$ ~/feedlynx/feedlynx gen-token
[isabell@stardust ~]$ VERY_LONG_PRIVATE_TOKEN
[isabell@stardust ~]$

Create ~/etc/services.d/feedlynx.ini with the following content:

[program:feedlynx]
environment=FEEDLYNX_FEED_TOKEN="VERY_LONG_FEED_TOKEN",FEEDLYNX_PRIVATE_TOKEN="VERY_LONG_PRIVATE_TOKEN",FEEDLYNX_ADDRESS="0.0.0.0"
directory=%(ENV_HOME)s/feedlynx/
command=%(ENV_HOME)s/feedlynx/feedlynx feed.xml
autostart=yes
autorestart=yes
startsecs=60

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

Write down the feed token and the private token, because you’ll need them later for accessing the feed and adding links.

Web backend

Note

The default port from Feedlynx is 8001, so we have to configure the web backend to this port.

To make the application accessible from the outside, configure a web backend:

[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$

Testing the installation

Point your browser to your domain, for example https://isabell.uber.space, where the available RSS feed is shown. You can access the feed with your prefered RSS reader by adding your VERY_LONG_FEED_TOKEN to the feed url.

Adding links to the feed is possible via the API, the browser extension or Apple Shortcuts. You’ll need the VERY_LONG_PRIVATE_TOKEN for that.

Updates

Note

Check the Feedlynx release page regularly to stay informed about the newest version.

If there is a new version available, you only have to stop the service, exchange the binary file, make the file executable and start the service again.

[isabell@stardust ~]$ supervisorctl stop feedlynx
feedlynx: stopped
[isabell@stardust ~]$ rm ~/feedlynx/feedlynx
[isabell@stardust ~]$ $VERSION=NEW_VERSION
[isabell@stardust ~]$ wget -qO- https://releases.wezm.net/feedlynx/$VERSION/feedlynx-$VERSION-x86_64-unknown-linux-musl.tar.gz | tar xvz -C ~/feedlynx
feedlynx
[isabell@stardust ~]$ chmod u+x ~/feedlynx/feedlynx
[isabell@stardust ~]$ supervisorctl start feedlynx
feedlynx: started
[isabell@stardust ~]$

Tested with Feedlynx v0.3.0 and Uberspace 7.16.1

Written by: Jan Klomp <https://jan.klomp.de>