Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/frysztak/orpington-news
Self-hosted RSS reader with PWA support
https://github.com/frysztak/orpington-news
pwa rss rss-aggregator rss-feed rss-reader self-hosted
Last synced: 19 days ago
JSON representation
Self-hosted RSS reader with PWA support
- Host: GitHub
- URL: https://github.com/frysztak/orpington-news
- Owner: frysztak
- License: gpl-3.0
- Created: 2022-01-20T09:38:42.000Z (almost 3 years ago)
- Default Branch: dev
- Last Pushed: 2023-08-16T16:21:30.000Z (about 1 year ago)
- Last Synced: 2024-07-31T20:50:49.264Z (3 months ago)
- Topics: pwa, rss, rss-aggregator, rss-feed, rss-reader, self-hosted
- Language: TypeScript
- Homepage:
- Size: 10.7 MB
- Stars: 109
- Watchers: 3
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
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
- Light and dark theme
- 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:
- Three collection layouts
- 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](https://github.com/frysztak/orpington-news/wiki/Env-variables).
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](https://github.com/frysztak/orpington-news/blob/master/docker-compose.template.yml).
## 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](https://github.com/nvm-sh/nvm), `.nvmrc` is provided)
- Rust toolchain (`rustup` is recommended)
- [Just](https://github.com/casey/just) command runner
- [bunyan-rs](https://github.com/LukeMathWalker/bunyan) log formatter
- [cargo watch](https://github.com/watchexec/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
2. 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:
```sh
$ docker compose -f backend/docker-compose.db.yml up -d
```
You should be able now to access pgAdmin at `http://localhost:8080`.
3. Install frontend dependencies:
```sh
$ cd frontend
$ npm ci
```
4. Orpington News uses `just` as a command runner, so running both frontend and API in watch mode is as simple as:
```sh
$ just
```
5. 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
- [GNU GPL v3](http://www.gnu.org/licenses/gpl.html)
- Copyright 2021-2023