CydNoxzed / webferea2

A single-user web counterpart to the news aggregator Liferea. Webferea syncs the sqlite-db of Liferea over http on a server which runs your Webferea instance.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Important

This repository moved to https://codeberg.org/noxzed/webferea2 and will no longer receive any updates on github.com

Webferea2

This is a web single-user counterpart to the GTK+ news aggregator Liferea. Webferea syncs the sqlite-database of Liferea over http on a server which runs your Webferea instance. You can read selected feeds over the webinterface and flag their items as read or marked. On the next sync, the flags are applied to your local sqlite-database of Liferea and the merged database will be uploaded to the server again.

You can only access your feed list on the web with a correct password, which you can set in the config. In the config you can list all feeds which unread items should be listed in Webferea.

The layout of the webinterface is optimized for the use on a smartphone.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes or on your server for production usage.

Prerequisites

Installing

Clone the files from the repository into a directory on your server and a directory on your desktop pc, who runs Liferea.

git clone https://codeberg.org/noxzed/webferea2.git

Run pip install -r requirements.txt to install all dependencies.

Server

Copy the example-config.json to instance/config.json and edit it, till it fit your needs.

You can start webferea by creating a screen/tmux-session and start the run.sh in it. You should proxy the traffic over a webserver to use SSL. Please change the ENV variables and the SECRET_KEY in the run.sh

If you want to use FCGI, you need to customize Webferea. You can use the flask fastcgi tutorial.

Configuration

The configuration should be placed as "config.json" inside the instance folder.

  • USERNAME: Name for the login on the webfrontend
  • PASSWORD: Password for the login on the webfrontend
  • NODES: Names of the feeds who should be shown in webferea (that is the title of the subscription you can edit in liferea). Should be a valid json list.
  • DATABASE: Name of the database on the server (default "liferea.db")
  • ITEMS_PER_PAGE: number of items on a page (default: 10)
  • WORDS_PER_MINUTE: Words you can read per minute. Used to calculate the aprox. reading time (default: 240)
  • SHOW_READ_ENTITIES_PER_DEFAULT: Should the already read items be seen? (default: False)
  • THEME: Name of the layout/theme (default "default")
  • THEMES_DIR: Path to the directory which contains the user defined themes (default: '')

Docker

If you want to run webferea with docker, use the Dockerfile or the docker-compose.yaml.

lighttpd

$HTTP["host"]=~"myserver.de" {
    proxy.server = ( "" => ((
        "host" => "127.0.0.1",
        "port" => "8000",
    )))
}

nginx

server {
    server_name myserver.de;
    proxy_set_header X-Forwarded-For $remote_addr;
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:8000;
        proxy_buffering off;
        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
        proxy_send_timeout  36000s;
        send_timeout  36000s;
        client_max_body_size 0;
    }
}

Client

The clientscript webferea_sync.py will upload/download the liferea.db from you desktop client to the server instance and merge its read/mark contents into your local liferea.db.

See webferea_sync.py -h for usage.

Example: webferea_sync.py myserver.de username password

After the sync you can restart Liferea on your local machine, to see the proper sums of the unread items on every feed.

Versioning

This project uses SemVer for versioning. For the changelog, see the CHANGELOG.md file for details.

License

This project is licensed under the GPLv3 License - see the LICENSE.md file for details

About

A single-user web counterpart to the news aggregator Liferea. Webferea syncs the sqlite-db of Liferea over http on a server which runs your Webferea instance.

License:GNU General Public License v3.0


Languages

Language:Python 37.5%Language:CSS 35.5%Language:HTML 21.2%Language:JavaScript 5.5%Language:Shell 0.2%Language:Dockerfile 0.2%