GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - buzz/newsdash: A news dashboard inspired by iGoogle and Netvibes

BranchesTags
Open more actions menu

Latest commit

 

History

376 Commits
376 Commits

Folders and files

NameName
Last commit message
Last commit date
.vscode
.vscode
 
 
artwork
artwork
 
 
packages
packages
 
 
.dockerignore
.dockerignore
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
.prettierignore
.prettierignore
 
 
.prettierrc.json
.prettierrc.json
 
 
Dockerfile
Dockerfile
 
 
LICENSE.txt
LICENSE.txt
 
 
README.md
README.md
 
 
eslint.config.js
eslint.config.js
 
 
package.json
package.json
 
 
pnpm-lock.yaml
pnpm-lock.yaml
 
 
pnpm-workspace.yaml
pnpm-workspace.yaml
 
 
tsconfig.json
tsconfig.json
 
 

Repository files navigation

newsdash

A news dashboard inspired by iGoogle and Netvibes

Features • Installation • Development • License

Screenshot

⭐ Features

  • Customizable dock-based dashboard
  • Support for Atom and RSS feeds
  • Four feed layouts: condensed, list, detailed, tiles
  • Tabbed multi-feeds
  • Import/Export settings and feeds
  • Filter feed items

💻 Installation

This is a self-hosted solution with a provided Docker image for easy installation.

Requirements

  • Reverse proxy (nginx recommended)
  • Redis

Docker

To start quickly, run the Docker image, which starts the API server. The static web app is available under the volume /client. For production, you need to serve the static files using a webserver.

$ docker run \
    -e REDIS_URL=redis://redis:6380 \
    -p 127.0.0.1:3000:3000 \
    -v ./path/to/client:/client \
    newsdash/newsdash

Redis

To persist settings and feeds, provide a Redis instance. You can start a Redis container and link it to newsdash. Docker Compose is ideal for small setups. Use the REDIS_URL environment variable to customize the connection URL.

nginx

For production deployment, use a reverse proxy like nginx for:

  • Static file serving
  • Image caching
  • Basic authentication
  • Gzip compression
  • TLS termination
# Sample nginx configuration as starting point

http {
  # ...

  # Cache for newsdash images (highly recommended)
  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=newsdash_cache:10m max_size=1g inactive=30d use_temp_path=off;

  server {
    listen 443 ssl;
    http2 on;
    server_name newsdash.example.com;
    # point this to the container volume `/client`
    root /path/to/volume/client;

    ssl on;
    ssl_certificate ...;
    ssl_certificate_key ...;

    auth_basic "Restricted";
    auth_basic_user_file htpasswd_file;

    autoindex off;

    gzip on;
    gzip_min_length 500;
    gzip_proxied any;
    gzip_types text/css text/javascript application/json;

    # Cache dynamic images
    location ~ ^/api/feed/(image|logo) {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;
      proxy_pass http://newsdash:3000; # point to newsdash API server
      proxy_http_version 1.1;
      proxy_cache newsdash_cache;
      proxy_cache_key "$scheme$request_method$host$request_uri";
      proxy_cache_valid 200 302 15d;
      proxy_cache_valid 404 1d;
      proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
      add_header X-Cache-Status $upstream_cache_status;
    }

    # Serve API endpoints
    location ~ ^/api {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;
      proxy_pass http://newsdash:3000; # point to newsdash API server
      proxy_http_version 1.1;
    }

    # Serve static files
    location / {
      try_files $uri $uri/index.html =404;
    }
  }
}

🛠️ Development

Ensure you have recent versions of Node.js and pnpm installed.

Clone the project and start a development server.

$ git clone https://github.com/buzz/newsdash.git
$ cd newsdash
$ pnpm install
$ pnpm dev

License

GNU Affero General Public License v3.0

About

A news dashboard inspired by iGoogle and Netvibes

Topics

aggregatordashboardfeed-readerfeedreaderhomepagenewsnewsfeednewsreaderrssrss-readerself-hostedstartpagewebapp

Resources

Readme
AGPL-3.0 license
Activity

Stars

66 stars

Watchers

1 watching

Forks

7 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.