mail based rss feed aggregator
Gleam 98.1%
Nix 0.9%
Just 0.9%
65 1 0

Clone this repository

https://tangled.org/ollie.earth/eater https://tangled.org/did:plc:cezmtk5bb4zipkps3abnjjl6/eater
git@knot.nuv.sh:ollie.earth/eater git@knot.nuv.sh:did:plc:cezmtk5bb4zipkps3abnjjl6/eater

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

eater#

Email based RSS feed aggregator

Notice: This project lives on Tangled and the main development happens on Tangled. Please report issues and contribute on Tangled.


TODO#

  • License attribution

TODO (step 1)#

  • parse rss feeds
  • email sending
  • fetcher_factory_supervisor
  • feed fetcher actor per feed
    • fetch feed using database records
    • fetch all feeds periodically
      • persist time-to-check to database so the actor restarting doesnt preemptively fetch the feed again
    • (pub-sub) send feeds to user actors
    • incremental timeouts on failure
      • test that
  • sender_factory_supervisor
  • sender actor per user
    • spawn on startup
    • (pub-sub) receive new items from fetcher
    • check feed against sent items in database
    • send new items to user
      • success: persist success to db
      • failure: inremental timeout
        • test that
  • custom logging.configure to log info about supervision status n such

TODO (step 2)#

  • lustre ui (maybe) server component
    • login
      • email one time password
      • login flow email -> password -> login
      • (maybe) password
    • sessions
    • configure rss feeds to track per user
      • create / delete fetchers and sender accordingly
    • update feed subscriptions in database
    • admin panel?
      • adding new users
  • proper CSRF protection

TODO (step 3)#

  • package using docker
  • automatic builds with woodpecker
  • example compose file
  • Public instance?

IDEAS#

  • subscription management via email

Structure#


Environment variables#

Required#

  • SMTP_HOST the sqtp server hostname ex: smtp.protonmail.ch
  • SMTP_PORT the sqtp server port ex: 587
  • SMTP_USERNAME the username to authenticate with the smtp server ex: rss@ollie.earth
  • SMTP_PASSWORD the password to use when authenticating with the smtp server

Optional#

  • SMTP_SENDER_EMAIL defaults to SMTP_USERNAME when unset
  • SMTP_SENDER_NAME the 'name' of the sender to use