Skip to content

Self–hosted RSS for everyone. Built in 7 days, comes with rolling releases.

License

Notifications You must be signed in to change notification settings

markus-beuckelmann/universs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Universs

universs is a minimalistic, self-hosted RSS reader implemented in Python, developed to bring back control over your feeds. It uses Celery as an asynchronous task queue to update feeds in the background and write them to a MongoDB database backend. The HTTP part of the application is handled by the excellent Flask micro framework. Overall, universs aims to be simple, fast and to be able to cope with possibly millions of articles.

Installation

The current release is mostly suitable for developers. Have look at the Development section below.

Features

Please note that universs is still under development. At the moment we only support the following core features:

  • Entirely self-hosted RSS reader
  • Automatic feed update
  • Tags/Categories
  • Keyboard shortcuts

Have a look at the feature requests below if you want to contribute!

Requirements

universs is written for Python 3. You can find all requirements in the requirement.txt file in this repository, and install them using pip install -r requirements.txt.

Development

There are many way to get started with the development setup, feel free to adjust that to your own needs. Here is what I do:

  • Create a virtual environment: mkvirtualenv -p /usr/bin/python3 universs
  • Activate the environment: source <PATH>/universs/bin/activate.env
  • git clone the repository and install universs using pip install -e .

Then to actually run the development server:

  • export FLASK_APP=universs
  • export FLASK_DEBUG=true
  • flask run

Finally, you need to start at lest one Celery instance to fetch the feeds automatically in the background:

  • celery -A universs.tasks worker -B --loglevel=info

Further Information for Developers

  • The Celery backend can be configured in universs/__init__.py.
  • You can find and modify the Celery schedule in universs/tasks.py. The current default is a roulette update every ten minutes and a full update once a day.

Feature Requests

If you want to work on one of the following features, please look out for existing issues first and let other people know some details on how you plan to contribute this feature.

  • Filters for articles
  • i18n (currently only available in German)
  • Import/Export (OPML)
  • Support for RSS output
  • Save articles to Pocket / Wallabag
  • Full-text RSS (wherever necessary)
  • Search feeds / articles
  • Overall and per-feed statistics (including graphs)
  • Improve appearance and usability on mobile devices (e.g. smartphones, tablets)
  • Authentication (possibly OAuth 2.0)
  • LaTeX support e.g. using MathJax

MongoDB

  • Backup: mongodump -d universs -o mongodump/
  • Restore: mongorestore -d universs mongodump/universs

License

GNU Affero General Public License (AGPL), see LICENSE.txt for further details.

About

Self–hosted RSS for everyone. Built in 7 days, comes with rolling releases.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published