ServerBee

Dashboards & Widgets

Build custom monitoring dashboards with draggable widgets and reusable layouts.

ServerBee dashboards are configurable pages made of widgets. You can keep the default overview dashboard, create separate dashboards for regions or teams, and choose one dashboard as the default for all users.

Managing Dashboards

Use the dashboard switcher in the top bar of the home page to:

  • Switch between dashboards
  • Create a new dashboard
  • Rename a dashboard
  • Delete dashboards you no longer need
  • Set a dashboard as the default

The first dashboard is created automatically if none exists. A dashboard marked as default cannot be unset directly; set another dashboard as default instead.

Editing Layouts

  1. Open a dashboard.
  2. Click Edit.
  3. Add widgets from the widget picker.
  4. Drag widgets to rearrange them.
  5. Resize widgets within their min/max size constraints.
  6. Configure each widget's data source and title.
  7. Click Save.

The layout is stored as grid coordinates (grid_x, grid_y, grid_w, grid_h) and widget configuration JSON. Saving a dashboard performs a diff: existing widgets are updated, new widgets are inserted, and widgets removed from the layout are deleted.

Widget Types

WidgetCategoryTypical use
stat-numberReal-timeShow one metric from one server, such as CPU or memory
server-cardsReal-timeShow compact server cards for selected servers
gaugeReal-timeGauge visualization for one metric and server
line-chartChartsHistorical chart for one metric on one server
multi-lineChartsCompare one metric across multiple servers
top-nReal-timeRank servers by a selected metric
alert-listStatusShow active or recent alert state
service-statusStatusShow Service Monitor status
traffic-barChartsShow traffic usage for one server
disk-ioChartsShow disk read/write throughput history
server-mapStatusShow server locations on a map when GeoIP is installed
markdownStatusAdd notes, runbooks, or links using Markdown
uptime-timelineStatusShow uptime bars for selected servers

Common Widget Configuration

Most widgets store their settings in config_json. Common fields include:

FieldUsed byMeaning
server_idSingle-server widgetsServer ID to query
server_idsMulti-server widgetsList of server IDs to include
metricMetric widgetsMetric key such as CPU, memory, disk, traffic, or load
hoursHistorical widgetsLookback window for chart data
intervalHistorical widgetsData granularity (raw, hourly, or auto)
monitor_idsService StatusService Monitor IDs to display
contentMarkdownMarkdown content

GeoIP and Server Map

The Server Map widget requires GeoIP data. You can either:

  • Configure a custom MaxMind-compatible MMDB file with geoip.mmdb_path, or
  • Download the DB-IP Lite database from Settings → GeoIP Database.

The widget shows an installation prompt when GeoIP data is missing.

API

MethodPathDescription
GET/api/dashboardsList dashboards
GET/api/dashboards/defaultGet the default dashboard, creating one if needed
GET/api/dashboards/{id}Get a dashboard with widgets
POST/api/dashboardsCreate a dashboard
PUT/api/dashboards/{id}Update metadata and/or widgets
DELETE/api/dashboards/{id}Delete a dashboard

Update request example:

{
  "name": "Production",
  "is_default": true,
  "widgets": [
    {
      "widget_type": "stat-number",
      "title": "Web CPU",
      "config_json": {
        "server_id": "server-id",
        "metric": "cpu",
        "unit": "%"
      },
      "grid_x": 0,
      "grid_y": 0,
      "grid_w": 2,
      "grid_h": 1,
      "sort_order": 0
    }
  ]
}

On this page