Download the PHP package drakelid/librenms-dashboard-widgets without Composer

On this page you can find all versions of the php package drakelid/librenms-dashboard-widgets. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package librenms-dashboard-widgets

LibreNMS Dashboard Widget Bundle

Twelve dashboard widgets for LibreNMS, packaged as a plugin.

These widgets previously lived as hand-placed files inside the LibreNMS tree, with their routes added directly to core's routes/web.php. The LibreNMS 26.8.1 upgrade overwrote that file and silently removed every registration, leaving the widgets installed but unreachable. Packaging them as a plugin means upgrades no longer break them.

See widget enhancements for the new controls, data-age labels, filter previews and optional history.

Widgets

Widget Key What it shows
Device Group Down Count device-group-down-count Down device counts per selected device group, with a combined total
Top Bandwidth Usage by Device Group top-bandwidth-device-group Busiest ports by combined in + out throughput
Uplink Utilization Overview uplink-utilization-overview Regex-matched uplinks ranked by peak utilisation, with summary stats across all matches
Top Device Temperatures top-device-temperatures Hottest devices by temperature sensor, one row per device
Flapping Devices / Unstable Links flapping-devices Devices and ports that changed state repeatedly in a lookback window
Offline Devices Map offline-devices-map Permission-filtered map and synchronized outage list, including devices without coordinates
Recently Added Devices recently-added-devices Most recently added devices, newest first

ISP additions (1.2.0)

Chosen from the gap analysis in docs/future-spec.md.

Widget Key What it shows
Optical Light Levels optical-light-levels Transceiver RX/TX levels ranked by margin above the low threshold
BGP Session Health bgp-session-health Sessions admin-up but not established, recently re-established, or losing prefixes
Site Power and Battery site-power-status Battery runtime, charge and DC voltage, per device or per site
Customer Ports Down customer-port-status Customer-facing ports admin-up but operationally down
Poller Health poller-health Devices whose data has gone stale, and pollers that stopped reporting

Three of these depend on what your installation actually collects. Check before expecting output:

An empty result means the widget has nothing to display — it is not misconfigured.

The widget keys are permanent identifiers stored in users_widgets.widget. Never rename one — existing dashboard placements reference them by key.

Requirements

Installation

Scripted (recommended)

install.sh installs or updates the plugin, clears and rebuilds the caches, enables the plugin and verifies that all six widget routes registered. Re-run the same command to update later.

Useful flags: --dir (LibreNMS path, default /opt/librenms), --user, --version, --no-enable, --uninstall, --dry-run. Run ./install.sh --help for details.

Manual

From the LibreNMS base directory, as the librenms user:

Then enable it under Overview → Plugins → Plugins Admin if the CLI could not, and add widgets from a dashboard via Add Widget.

php artisan route:clear is mandatory. LibreNMS caches routes in production, and widgets are discovered by scanning the route table. A stale route cache is by far the most common reason a correctly installed plugin appears to do nothing. If you also see stale markup, run php artisan view:clear.

Docker

Upgrading from the hardcoded widgets

Saved settings are preserved. Both the widget keys and every settings key are unchanged, so existing dashboard placements keep working with their stored configuration.

After enabling the plugin, delete the old files from the LibreNMS tree so they cannot shadow or confuse a future upgrade:

Group World Map (retired)

Earlier dashboards used a custom group-world-map widget. LibreNMS's built-in World Map widget already supports filtering by device group, so the custom widget was removed and existing placements should be migrated to it. Saved settings — centre, zoom, layer, grouping radius, status filter and device group — are preserved, and the widget title is unchanged.

See docs/RETIRE-GROUP-WORLD-MAP.md for the procedure. The target slug is worldmap, not world-map.

Behaviour worth knowing

Carried over deliberately from the original widgets:

Changes from the original implementation

If a LibreNMS install goes wrong

recover.sh restores a server left unbootable by a failed plugin install (symptom: every page shows "Whoops, looks like something went wrong", and storage/logs/laravel.log reports a missing or uncompilable class from this package).

A Laravel package registers itself in four places -- composer.json, composer.lock, vendor/composer/installed.json and bootstrap/cache/packages.php. Removing it from some but not all leaves Laravel loading a provider class that no longer exists, which fails every request. recover.sh clears all four, and falls back to installing a no-op placeholder provider if anything is still wrong.

Development

The Support/ layer is free of Eloquent and framework facades so it can be tested without a LibreNMS install:

Three gates run in CI on every push and tag, on PHP 8.2 and 8.4:

Check Catches
php -l syntax errors
tests/blade-lint.php templates that compile to invalid PHP
tests/load-check.php compile-time fatals and broken class contracts
vendor/bin/phpunit logic regressions in the Support/ layer

tests/load-check.php exists because of a real outage: 1.0.0 declared a hook class as extends on an interface. That is a compile-time fatal, so php -l passed it happily, and because Laravel loads this package's service provider on every request it took the whole LibreNMS UI down. Loading each class in a subprocess is the only way to catch that before release.

Never tag a release that has not passed CI. A broken release of this package does not break a widget; it breaks LibreNMS.

Widget controllers and views need a real LibreNMS instance; see TESTING.md for the manual acceptance checklist.

Further reading:

Licence

MIT.


All versions of librenms-dashboard-widgets with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
librenms/plugin-interfaces Version ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package drakelid/librenms-dashboard-widgets contains the following files

Loading the files please wait ...