Skip to content

OpenClaw Dashboard Builder - Create custom dashboards

License

Notifications You must be signed in to change notification settings

ssentamu/LobsterBoard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

107 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦞 LobsterBoard

A self-hosted, drag-and-drop dashboard builder with 50 widgets, a template gallery, custom pages, and zero cloud dependencies. One Node.js server, no frameworks, no build step needed.

Works standalone or with OpenClaw. LobsterBoard is a general-purpose dashboard β€” use it to monitor your homelab, track stocks, display weather, manage todos, or anything else. OpenClaw users get bonus widgets (auth status, cron jobs, activity logs), but they're completely optional.

LobsterBoard

LobsterBoard Dashboard

Quick Start

npm install lobsterboard
cd node_modules/lobsterboard
node server.cjs

Or clone it:

git clone https://github.com/Curbob/LobsterBoard.git
cd LobsterBoard
npm install
node server.cjs

Open http://localhost:8080 β†’ press Ctrl+E to enter edit mode β†’ drag widgets from the sidebar β†’ click πŸ’Ύ Save.

Edit Mode

Features

  • Drag-and-drop editor β€” visual layout with 20px snap grid, resize handles, property panel
  • 50 widgets β€” system monitoring, weather, calendars, RSS, smart home, finance, AI/LLM tracking, notes, and more
  • Template Gallery β€” export, import, and share dashboard layouts with auto-screenshot previews; import as merge or full replace
  • Custom pages β€” extend your dashboard with full custom pages (notes, kanban boards, anything)
  • Canvas sizes β€” preset resolutions (1920Γ—1080, 2560Γ—1440, etc.) or custom sizes
  • Live data β€” system stats stream via Server-Sent Events, widgets auto-refresh
  • Dark theme β€” the only correct choice
  • No cloud β€” everything runs locally, your data stays yours

Configuration

PORT=3000 node server.cjs              # Custom port
HOST=0.0.0.0 node server.cjs           # Expose to network

Widget settings are edited in the right-hand panel during edit mode. All configuration saves to config.json.

Template Gallery

Template Gallery

LobsterBoard includes a built-in template system for sharing and reusing dashboard layouts.

Template Import

  • Export your current dashboard as a template (auto-captures a screenshot preview)
  • Browse the template gallery to discover pre-built layouts
  • Import templates in two modes:
    • Replace β€” swap your entire dashboard for the template
    • Merge β€” append the template's widgets below your existing layout
  • Templates are stored in the templates/ directory and can be shared as folders

Dashboard Example

Widgets

πŸ–₯️ System Monitoring

Widget Description
CPU / Memory Real-time CPU load and memory usage
Disk Usage Disk space with ring gauge
Network Speed Upload/download throughput
Uptime Monitor System uptime, CPU load, memory summary
Docker Containers Container list with status

🌀️ Weather

Widget Description
Local Weather Current conditions for your city
World Weather Multi-city weather overview

⏰ Time & Productivity

Widget Description
Clock Analog/digital clock
World Clock Multiple time zones
Countdown Timer to a target date
Todo List Persistent task list
Pomodoro Timer Work/break timer
Notes Persistent rich-text notes with auto-save

πŸ“° Media & Content

Widget Description
RSS Ticker Scrolling feed from any RSS/Atom URL
Calendar iCal feed display (Google, Apple, Outlook)
Now Playing Currently playing media
Quote of Day Random inspirational quotes
Quick Links Bookmark grid

πŸ€– AI / LLM Monitoring

Widget Description
Claude Usage Anthropic API spend tracking
AI Cost Tracker Monthly cost breakdown
API Status Provider availability
Active Sessions OpenClaw session monitor
Token Gauge Context window usage

πŸ’° Finance

Widget Description
Stock Ticker Live stock prices (requires API key)
Crypto Price Cryptocurrency tracker

🏠 Smart Home

Widget Description
Indoor Climate Temperature/humidity sensors
Camera Feed IP camera stream
Power Usage Energy monitoring

πŸ”— Embeds & Media

Widget Description
Image / Random Image / Web Image / Latest Image Static, rotating, remote, or latest images (with browse button for directory selection)
Iframe Embed Embed any webpage

πŸ”§ Utility

Widget Description
Auth Status Authentication status display
Sleep Score Garmin sleep score widget
GitHub Stats Repository stats β€” stars, forks, open issues, open PRs
Unread Emails Email inbox counter
System Log Recent system log entries
Activity List Activity timeline
Cron Jobs Cron job status monitor
LobsterBoard Release Version update checker
OpenClaw Release OpenClaw version checker
Release Generic release tracker

🎨 Layout

Widget Description
Header / Text Custom text with formatting
Horizontal Line Divider
Vertical Line Vertical divider
Pages Menu Navigation for custom pages

Custom Pages

LobsterBoard includes a pages system for adding full custom pages beyond the widget dashboard. Pages get their own route, nav entry, and optional server-side API.

pages/
└── my-page/
    β”œβ”€β”€ page.json       # Metadata (title, icon, order)
    β”œβ”€β”€ index.html      # Page UI
    └── api.cjs         # Optional: server-side API routes

Pages are auto-discovered on startup. Drop a folder in pages/, restart the server, and it appears in the nav.

πŸ‘‰ Full guide with examples: pages/README.md

Run on Boot

macOS (launchd)

cat > ~/Library/LaunchAgents/com.lobsterboard.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key><string>com.lobsterboard</string>
    <key>RunAtLoad</key><true/>
    <key>KeepAlive</key><true/>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/node</string>
      <string>/path/to/lobsterboard/server.cjs</string>
    </array>
    <key>WorkingDirectory</key><string>/path/to/lobsterboard</string>
    <key>EnvironmentVariables</key>
    <dict>
      <key>PORT</key><string>8080</string>
      <key>HOST</key><string>0.0.0.0</string>
    </dict>
  </dict>
</plist>
EOF

launchctl load ~/Library/LaunchAgents/com.lobsterboard.plist

Update the paths to match your install location and Node.js binary (which node).

Linux (systemd)

sudo cat > /etc/systemd/system/lobsterboard.service << 'EOF'
[Unit]
Description=LobsterBoard Dashboard
After=network.target

[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/lobsterboard
ExecStart=/usr/bin/node server.cjs
Environment=PORT=8080 HOST=0.0.0.0
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable lobsterboard
sudo systemctl start lobsterboard

pm2 (any OS)

npm install -g pm2
cd /path/to/lobsterboard
PORT=8080 HOST=0.0.0.0 pm2 start server.cjs --name lobsterboard
pm2 save
pm2 startup

API Endpoints

Endpoint Method Description
/config GET/POST Load/save dashboard layout
/api/stats/stream GET Live system stats (SSE)
/api/pages GET List custom pages
/api/todos GET/POST Todo list data
/api/notes GET/POST Notes widget data
/api/templates GET List available templates
/api/templates/:id GET Get template config
/api/templates/:id/preview GET Template preview image
/api/templates/import POST Import a template (merge/replace)
/api/templates/export POST Export current dashboard as template
/api/calendar?url= GET Proxy iCal feed
/api/rss?url= GET Proxy RSS/Atom feed
/api/lb-release GET LobsterBoard version check

File Structure

lobsterboard/
β”œβ”€β”€ server.cjs          # Node.js server
β”œβ”€β”€ app.html            # Dashboard builder
β”œβ”€β”€ config.json         # Your saved layout
β”œβ”€β”€ js/
β”‚   β”œβ”€β”€ builder.js      # Editor: drag-drop, zoom, config I/O
β”‚   β”œβ”€β”€ widgets.js      # All 50 widget definitions
β”‚   └── templates.js    # Template gallery & export system
β”œβ”€β”€ css/
β”‚   └── builder.css     # Dark theme styles
β”œβ”€β”€ templates/          # Dashboard templates
β”‚   β”œβ”€β”€ templates.json  # Template index
β”‚   └── */              # Individual template folders
β”œβ”€β”€ pages/              # Custom pages (auto-discovered)
β”‚   └── README.md       # Page creation guide
└── package.json

License

This project is licensed under the Business Source License 1.1 (BSL-1.1).

You are free to use, modify, and self-host LobsterBoard for non-commercial purposes. Commercial use requires a separate license. See LICENSE for full terms.

Commercial Licensing

For commercial use, OEM licensing, or enterprise deployments, contact:

πŸ“§ curbob on GitHub β€” github.com/Curbob


Made with 🦞 by Curbob

About

OpenClaw Dashboard Builder - Create custom dashboards

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 78.9%
  • HTML 13.7%
  • CSS 7.4%