hamdashboard

Ham Dashboard (hamdashboard)

Live demo: Hamdash Demo

This repository provides a simple, browser-based ham radio dashboard that displays images, maps, web pages, and feeds in a configurable grid. It is lightweight, easy to host, and suitable for use on a local computer, Raspberry Pi, or a static host such as GitHub Pages or Cloudflare Pages.

Quick demo videos:

User-submitted public dashboards

These live dashboards were shared by members of the ham community:

Quick start

  1. Download the following files from this repository into a single folder: hamdash.html, config.js, and wheelzoom.js.
  2. Open hamdash.html in your browser.
  3. Use the right-side menu and select “Setup” to open the settings UI and configure your dashboard.
  4. Alternatively, edit config.js in a text editor to set sources, menus, and layout.
  5. Load configuration from the browser (Local Storage) or from config.js, then save your settings.

Notes

Settings UI

The settings UI provides buttons to manage configurations and backups:

Public dashboards and safety

The “Setup” UI cannot modify the server-side config.js file. When a visitor switches a public dashboard to Local Storage, the change affects only that visitor’s browser. To hide the Setup option or Load Cfg option on public installations, add the following lines to your config.js:

const disableSetup = true;
const disableLdCfg = true;

Video guides

Docker

Michael Stevens maintains a Docker image: michaelsteven/hamdashboard

How to use

Pi-Star iFrame embedding (fix)

If a remote site sets the X-Frame-Options header it may prevent embedding via iframes. On Pi-Star you can temporarily switch to read/write, edit the nginx security config, and restart nginx:

rpi-rw
sudo nano /etc/nginx/default.d/security.conf
# comment out: add_header X-Frame-Options  "SAMEORIGIN";

sudo systemctl restart nginx.service

This screenshot shows Pi-Star settings:

iFrame tips

If the source server forbids embedding and you cannot change its headers, options are limited. A local proxy that strips the header can work but adds complexity. Use the online tool to test a URL before adding it to a tile: iFrame Tester online

Changelog highlights (most recent)

See the chronological entries below for full details. Notable recent changes:

Upgrade notes

var aURL = [  
  ["f3de21ff", "SATS", "satellite.js"],
  ["f3de21ff", "WX", "weather.js", "1", "R"]
];

Rotating Tile Titles Usage:

Pass an array as the first element of a tile configuration.

// Example in config.js
[
  ["Radar CONUS", "Radar Local"], 
  "https://radar.com/map1.gif", 
  "https://radar.com/map2.gif"
]

Example images

Grid examples

More notes and history

The repository includes a detailed changelog documenting fixes, features, and upgrade instructions dating back through 2024. Please review the changelog entries below before performing upgrades.

Releases & Change logs

Host with Cloudflare Pages (free)

Tutorial contributed by Robert W3RDW: How to host your dashboard with Cloudflare Pages, free

Sample dashboards submitted by users

VA3HDL Sample Dashboard

N4NBC Sample Dashboard

KM4ACK Sample Dashboard

TI3GB Sample Dashboard

N5NG Sample Dashboard

VK3MLT Sample Dashboard

VK5TUX Sample Dashboard

VK5TUX Sample Dashboard Sources

N4TDX Sample Dashboard

WG5EEK Sample Dashboard

KJ5FMX Sample Dashboard

N0RMJ Sample Dashboard

N5GAH Sample Dashboard

OES MarTech Sample Dashboard

TheSky Sample Dashboard

KJ7T Sample Dashboard

K4HNH Sample Dashboard

CT1ETE Sample Dashboard

VK3FS Sample Dashboard

W5EAK Sample Dashboard

WI5L Sample Dashboard

WX9WTF Sample Dashboard

Dual menu example

Dual side Menu Sample Dashboard

Sources display example

Sources display example