Skip to content
/ feedo Public

A non-fancy personal feed reader for self-hosting

Notifications You must be signed in to change notification settings

maluio/feedo

Repository files navigation

Feedo - Personal Feed Reader

A non-fancy personal feed reader for self-hosting

Goals

  • Easy + cheap to self-host
    • Low JS (no JS build steps required!)
    • No need for a "big" DB server; uses SQlite + Litestream
  • No built-in access control
    • Access control of main UI must happen on another architecture level; it is not part of Feedo, but there are recommandations (see section Architecture)
    • However, Feedo uses the Django Admin module to manage feeds; how to create an admin user

Supported Feed Sources

  • RSS
  • Reddit (using PRAW)
  • e-mail (planned)

Features

  • Import articles from different sources
  • Tag your feeds
  • Save articles for later

Screenshots

UI

screenshot

Django Admin

screenshot

Requirements

  • Python3
  • SQlite3
  • A Reddit account with subscriptions to the subreddits you'd like to fetch

Architecture

Feedo doesn't require a specific architecture. Any environment that runs a webserver + python3 code that gets backupped regularly should be fine.

Here are some possible ways to run Feedo:

Simple hosting

architecture

A bit more sophisticated hosting

architecture

Production

Set the following env variables in your production environment:

# change to your local path!
DB_FILE=/path/to/your/db/feedo.db3
APP_ENV=prod

# Reddit credentials
REDDIT_USERNAME=
REDDIT_PASSWORD=
REDDIT_CLIENT_ID=
REDDIT_CLIENT_SECRET=
  • If using docker: Create a docker file for Python + uWSGI like this one

Development

Create a .env file in the document root with:

# change to your local path!
DB_FILE=/path/to/your/db/feedo.db3
APP_ENV=dev
# for pytest
DJANGO_SETTINGS_MODULE=config.settings

Run:

$ pip3 install -r requirements.txt
$ ./manage.py runserver

Tests

Run:

$ pytest

About

A non-fancy personal feed reader for self-hosting

Topics

Resources

Stars

Watchers

Forks