Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/buzz/newsdash
A news dashboard inspired by iGoogle and Netvibes
https://github.com/buzz/newsdash
feedreader news newsfeed newsreader rss self-hosted webapp
Last synced: 4 days ago
JSON representation
A news dashboard inspired by iGoogle and Netvibes
- Host: GitHub
- URL: https://github.com/buzz/newsdash
- Owner: buzz
- License: agpl-3.0
- Created: 2019-09-01T10:35:21.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-03T05:00:16.000Z (over 1 year ago)
- Last Synced: 2024-03-02T04:35:20.889Z (4 months ago)
- Topics: feedreader, news, newsfeed, newsreader, rss, self-hosted, webapp
- Language: JavaScript
- Homepage:
- Size: 2.76 MB
- Stars: 57
- Watchers: 2
- Forks: 7
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Lists
- awesome_AF - newsdash - A news dashboard inspired by iGoogle and Netvibes. `AGPL-3.0` `Nodejs` (Software / Feed Readers)
- awesome-selfhosted - newsdash - A news dashboard inspired by iGoogle and Netvibes. `AGPL-3.0` `NodeJS` (Feed Readers / Institutional repository and digital library software.)
- awesome-selfhosted - newsdash - A news dashboard inspired by iGoogle and Netvibes. `AGPL-3.0` `NodeJS` (Feed Readers / Institutional repository and digital library software.)
- awesome-selfhosted - newsdash - A news dashboard inspired by iGoogle and Netvibes. `AGPL-3.0` `NodeJS` (Feed Readers / Institutional repository and digital library software.)
README
![]()
A news dashboard inspired by iGoogle and Netvibes
Features •
Motivation •
Installation •
Development •
Credits •
License![Screenshot](https://i.imgur.com/NGpqacs.gif)
## :star: Features
- Customizable grid-based dashboard
- Support for Atom and RSS feeds
- 4 different feed layouts: condensed, list, detailed, tiles
- Tabbed multi-feeds
- Import/Export of settings and feeds
- Filter feed items
- Clean and simple design
- Carefully handcrafted## :thinking: Motivation
I couldn't find a modern and simple web-based feed reader that meets my
requirements. So I wrote my own.## :computer: Installation
### Docker
To get you up and running start the Docker image. You can then access the web
app at http://localhost:3001/.```bash
$ docker run \
-e REDIS_URL=redis://redis:6380 \
-p 127.0.0.1:3001:3001 \
newsdash/newsdash
```#### Redis
To persist your settings and feeds you need to provide a
[Redis](http://redis.io) instance. You can start a Redis container and link it
to newsdash. [Docker Compose](https://docs.docker.com/compose/) works great for
small setups. Use the environment variable `REDIS_URL` to customize the
connection URL. It's possible to run without Redis in
[API-less mode](#api-less).#### nginx
For a production deployment you should use some sort of reverse proxy like
[nginx](https://nginx.org/). This way you can add things like basic
authentication, gzip compression and TLS termination. nginx is also much better
at serving the static files. The container exports the minified production
build in the volume `/newsdash/client`.A sample nginx configuration snippet you can start from.
```nginx
server {
listen 443 ssl http2;
server_name newsdash.example.com;
root /path/to/newsdash-client;ssl on;
ssl_certificate [...];auth_basic "Restricted";
auth_basic_user_file htpasswd_file;gzip on;
gzip_min_length 500;
gzip_proxied any;
gzip_types
text/css
text/xml
application/atom+xml
application/javascript
application/manifest+json
application/rdf+xml
application/rss+xml
application/xml;location /api/ {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3001;
}location / {
try_files $uri $uri/index.html =404;
}
}```
#### API-less
It's possible to run newsdash without the API part.
The upside is, it's easy to deploy. You just have to upload a bunch of static
files. Grab the
[dist package](https://github.com/buzz/newsdash/releases/latest/download/newsdash-dist.zip)
and unzip it to a folder on your webserver.The web app will detect that it doesn't have access to the API and runs in
fallback mode. It will be fully functional although some limitations apply.* Feeds are fetched using a public CORS proxy.
* Images are only present if the feed has image URLs included. Usually they
come in low resolution.
* All settings and feeds are stored locally in your browser. You need to
transfer them manually to another computer using the import/export function.## :hammer_and_wrench: Development
Make sure you have recent versions of [Node.js](https://nodejs.org/) and
[Yarn](https://yarnpkg.com/) installed.Check out the project and start a development server.
```bash
$ git clone https://github.com/buzz/newsdash.git
$ cd newsdash
$ yarn install
$ yarn client:dev
$ yarn server:dev
```## :love_letter: Credits
Kudos to [Netvibes](https://www.netvibes.com/) and defunct iGoogle. That's
where this project drew its inspiration.The following packages are used:
- [Babel](https://babeljs.io/)
- [Font Awesome](https://fontawesome.com/)
- [Node.js](https://nodejs.org/)
- [PostCSS](https://postcss.org/)
- [React-Grid-Layout](https://github.com/STRML/react-grid-layout)
- [React](https://reactjs.org/)
- [Redux](https://redux.js.org/)
- [rss-parser](https://github.com/rbren/rss-parser)
- [webpack](https://webpack.js.org/)
- and many more…## License
[GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.en.html)