Orpington News
Orpington News is a self-hosted RSS/Atom feed reader with PWA support.
🎮 View Demo
Features •
Installation •
Development Quick Start
Features
- RSS 1.0/RSS 2.0/Atom feed support
- Nested collections drag-n-drop
organize_collections.mp4
- Light and dark theme
- Mobile-friendly UI with PWA support
mobile.mp4
- 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:
- Three collection layouts
- RSS feed auto-detection from page URL
feed_autodetect.mp4
- 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 useopenssl 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:
- Checkout the repo:
dev
branch, if you want latest and greatestmaster
branch, if you want last tagged release
- 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
.
- Install frontend dependencies:
$ cd frontend
$ npm ci
- Orpington News uses
just
as a command runner, so running both frontend and API in watch mode is as simple as:
$ just
- You should be able to access the app on
http://localhost:3000
, API will be available onhttp://localhost:5000/api
. You'll need to create your user account. That's it!
License
- GNU GPL v3
- Copyright 2021-2023