Home
Softono

Orpington News

Open source TypeScript
116
Stars
4
Forks
3
Issues
2
Watchers
3 years
Last Commit

 About Orpington News

Self-hosted RSS reader with PWA support

Platforms

Web Self-hosted

Languages

TypeScript

Links

Need Help Installing Orpington News?

We provide expert installation service for this software. Our team will install, configure, and secure Orpington News on your server. plans start at just $30.

Orpington News

View on GitHub

logo

Orpington News

Orpington News is a self-hosted RSS/Atom feed reader with PWA support.

🎮 View Demo

GitHub release (latest SemVer) Docker image size License Codecov
Dev pipeline Main pipeline

Features • Installation • Development Quick Start

dark theme screenshot

Features

  • RSS 1.0/RSS 2.0/Atom feed support
  • Nested collections drag-n-drop
  • Light and dark theme
    light theme screenshot dark theme screenshot
  • Mobile-friendly UI with PWA support
  • Syntax highlighting in code snippets
  • Configurable fonts

    Supported article fonts:
    • Nunito (default)
    • Ubuntu
    • Lato
    • OpenDyslexic

    Supported monospace fonts:
    • Source Code Pro (default)
    • Ubuntu Mono
    • Fira Mono
    • OpenDyslexic Mono

    Settings live preview:
    settings screenshot
  • Three collection layouts
    • Card
      card layout
    • Magazine
      card layout
    • List
      card layout
  • RSS feed auto-detection from page URL
  • OPML import
  • Small Docker image size (40 MB uncompressed)

Installation

You need two things: Docker and PostgresSQL instance.

Docker image (ghcr.io/frysztak/orpington-news) exposes the app on port 8000. You also need to provide a handful of environmental variables:

  • APP_URL
  • DB_HOST
  • DB_PASS
  • COOKIE_SECRET - at least 64 characters long random string. If not set will use a fallback value. You can use openssl rand -base64 64 to generate it.

For DB_PASS and COOKIE_SECRET, _FILE suffix is also supported. For example, DB_PASS_FILE=./secrets/db_pass will read database password from file secrets/db_pass. All variables are described in Wiki page.

Sample Docker invocation:

docker run -it --name orpington-news --restart=always \
-e APP_URL=[ your public URL, including protocol ]  \
-e DB_HOST=[ your DB address ]  \
-e DB_PASS=[ your DB password ]  \
-p [ public port ]:8000  \
-d ghcr.io/frysztak/orpington-news

Sample docker-compose.yml is available here.

Development quick start

Orpington News backend is written in Rust, frontend is written in TypeScript using Next.js. To run the app locally, you need:

  • Node 18 (if you're using nvm, .nvmrc is provided)
  • Rust toolchain (rustup is recommended)
  • Just command runner
  • bunyan-rs log formatter
  • cargo watch
  • (optional) Docker, if you want to easily setup Postgres

Step-by-step guide:

  1. Checkout the repo:
  • dev branch, if you want latest and greatest
  • master branch, if you want last tagged release
  1. Start Postgres instance. You can do it any way you like, but for convenience, a docker-compose.db.yml file is provided. To run it:
$ docker compose -f backend/docker-compose.db.yml up -d

You should be able now to access pgAdmin at http://localhost:8080.

  1. Install frontend dependencies:
$ cd frontend
$ npm ci
  1. Orpington News uses just as a command runner, so running both frontend and API in watch mode is as simple as:
$ just
  1. You should be able to access the app on http://localhost:3000, API will be available on http://localhost:5000/api. You'll need to create your user account. That's it!

License