small API to save articles to read later and retrieve the list as an RSS feed
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
reese sapphire 316ebf5959 quick fixes 5 months ago
.github/workflows update docker stuff 5 months ago
src quick fixes 5 months ago
.dockerignore add docker support 5 months ago
.editorconfig start of project 5 months ago
.gitignore add docker support 5 months ago
Dockerfile add docker support 5 months ago
README.md quick fixes 5 months ago
nodemon.json start of project 5 months ago
package-lock.json add simple JSON-based database 5 months ago
package.json add simple JSON-based database 5 months ago
sample.env add config 5 months ago
tsconfig.json start of project 5 months ago

README.md

readerss

basic express server for saving online articles to read later.

To do

  • basic API
    • add an article
    • RSS endpoint so you can sync it with your feed aggregator of choice
    • deduplicate articles
    • delete an article?
  • get configuration from environment variables
  • add a database (stored as JSON but i would like to use sqlite3. i just have no idea what i'm doing.)
  • add docker support
  • make a browser bookmarklet for quickly saving articles
  • log some useful info on startup, like the bookmarklet code
  • find a slightly better name

Will not do

  • make a frontend. i'm keeping it simple, why not fork it and add one yourself? 😉

Setup

Docker

docker run -d \
  -p 3000:80 \
  -e API_KEY=e44dd04a559c71f0 \
  -v ./readerdata:/data \
  reeseovine/readerss:latest

Docker Compose

version: '3.8'
services:
  readerss:
    image: reeseovine/readerss:latest
    restart: unless-stopped
    ports:
      - 3000:80
    volumes:
      - ./readerdata:/data
    environment:
      - API_KEY=5184424c7804a089  # generate a strong secret with `openssl rand -hex 32`
      
      # these variables are optional, and the defaults are provided for reference.
      - PORT=80
      - DB_FILE=/data/db.json
      - FEED_TITLE=Reading list
      - FEED_DESCRIPTION=Articles saved to be read later

Environment variables

variable description
API_KEY The password needed to be able to use the API.
PORT The port within the container that the server runs on.
DB_FILE The path and filename of the database file within the container.
FEED_TITLE The name of your reading list feed that shows up in feed readers.
FEED_DESCRIPTION A short description to accompany the above.

Usage

  1. Copy the bookmarklet code from the logs and replace <SERVER_ADDRESS> with the IP address or domain name.
  2. Create a new bookmark in your browser (in the bookmarks bar for easy access, perhaps) with the name "Read later" (or whatever you want) and set the URL to the bookmarklet code.
  3. Go to an article that you want to save, click the bookmark, et voila!
  4. Add the RSS feed endpoint (<SERVER_ADDRESS>/feed?key=<API_KEY>) to your feed reader of choice.