Web application

reader comes with a minimal web application, intended to work across all browsers, including light-weight / text-only ones.

Warning

The web application is not fully supported, see the roadmap for details.

Note

The web application is optional, use the app extra to install its dependencies.

Serving the web application

reader exposes a standard WSGI application as reader._app.wsgi:app. See the Flask documentation for more details on how to deploy it. The path to the reader database can be configured through the config file or the READER_DB environment variable.

Warning

The web application has no authentication / authorization whatsoever; it is expected a server / middleware will provide that.

An example uWSGI configuration file (probably not idiomatic, from here):

[uwsgi]
socket = /apps/reader/uwsgi/sock
manage-script-name = true
mount = /reader=reader._app.wsgi:app
plugin = python3
virtualenv = /apps/reader/
env = READER_CONFIG=/apps/reader/reader.yaml

You can also run the web application with the serve command. serve uses Werkzeug’s development server, so it probably won’t scale well past a single user.

Note

For privacy reasons, you may want to configure your web server to not send a Referer header (by setting Referrer-Policy header to same-origin for all responses; nginx example). The serve command does it by default.

If running on a personal computer, you can use cron to run serve at boot:

@reboot     sleep 60; reader serve -p 8080 2>&1 ) >>"/tmp/$LOGNAME.reader.serve.boot.log"

Screenshots

Main page

_images/entries.png

main page

Feed page

_images/entries-feed.png

feed page

Feeds page

_images/feeds.png

feeds page

Entry page

_images/entry-one.png

entry page

_images/entry-two.png

entry page

Search page

_images/search.png

search page

Lightweight browsers

_images/lynx.png

Lynx

_images/dillo.png

Dillo