Third-Party Attributions
SysDeck integrates with external tools and plugins. Each
integration invokes the external tool as a separate process via
cockpit.spawn — no external code is bundled within the suite. The
suite (MIT) and the external tools remain independent programs.
This file satisfies the attribution requirements of the licenses listed
below and documents every external integration point.
Bundled Dependencies (shipped with the suite)
None. The suite is self-contained MIT-licensed code with no vendored
third-party libraries.
External Tool Integrations (invoked via cockpit.spawn)
These tools are called as separate processes. They must be installed
on the target system for their corresponding module to function. Each
module fails closed with an install hint when its tool is absent.
Prometheus — Monitoring & Log Pipeline
| Field |
Value |
| Module |
cockpit-prometheus |
| Tool |
Prometheus server / pushgateway |
| License |
Apache-2.0 |
| Author |
Prometheus Authors |
| Source |
https://github.com/prometheus/prometheus |
| Install |
pacman -S prometheus |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.prometheus", "push-log"]) |
| License compat |
MIT calling Apache-2.0 via subprocess — independent programs |
Grafana — Dashboards & Visualization
| Field |
Value |
| Module |
cockpit-grafana |
| Tool |
Grafana server |
| License |
AGPL-3.0 |
| Author |
Grafana Labs |
| Source |
https://github.com/grafana/grafana |
| Install |
pacman -S grafana |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.grafana", "dashboards"]) |
| License compat |
MIT calling AGPL-3.0 via subprocess — independent programs |
DB Engines — Database Control
| Field |
Value |
| Module |
cockpit-db |
| Tool |
psql, mysql, sqlite3, and others |
| License |
PostgreSQL License (psql), GPL-2.0 (mysql), Public Domain (sqlite3) |
| Author |
PostgreSQL Global Dev Group, Oracle, SQLite Contributors |
| Source |
https://www.postgresql.org/, https://dev.mysql.com/, https://sqlite.org/ |
| Install |
pacman -S postgresql mysql sqlite |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.db", "summary"]) |
| License compat |
MIT calling permissively-licensed CLIs via subprocess — independent programs |
hwalert — Hardware Alert Aggregation
| Field |
Value |
| Module |
Bridge helper only (panel integration pending) |
| Tool |
sensors, smartctl, mcelog |
| License |
MIT / LGPL-2.1+ (lm_sensors), GPL-2.0 (smartmontools), GPL-2.0 (mcelog) |
| Author |
Various |
| Source |
https://github.com/lm-sensors/lm-sensors, https://github.com/smartmontools/smartmontools |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.hwalert", "summary"]) |
| License compat |
MIT calling GPL/LGPL/MIT via subprocess — independent programs |
Glances — System Monitor
| Field |
Value |
| Module |
cockpit-glances |
| Tool |
glances CLI |
| License |
GPL-3.0 |
| Author |
Nicolargo |
| Source |
https://github.com/nicolargo/glances |
| Install |
pip install glances |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.glances", "snapshot"]) |
| License compat |
MIT calling GPL-3.0 via subprocess — independent programs |
lm_sensors — Hardware Sensors
| Field |
Value |
| Module |
cockpit-sensors |
| Tool |
sensors CLI (from lm_sensors) |
| License |
MIT / LGPL-2.1+ (varies by component) |
| Author |
lm_sensors project |
| Source |
https://github.com/lm-sensors/lm-sensors |
| Install |
pacman -S lm_sensors |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.sensors", "summary"]) |
| License compat |
MIT calling MIT/LGPL — compatible |
cockpit-sensors — Standalone Cockpit Plugin (reference)
| Field |
Value |
| Module |
Referenced by cockpit-sensors (not bundled) |
| License |
MIT |
| Author |
ocristopfer |
| Source |
https://github.com/ocristopfer/cockpit-sensors |
| Note |
The suite provides its own sensor rendering panel. The standalone cockpit-sensors plugin may be installed separately via the in-suite 3rd-Party Modules panel (v0.0.46+, see plugins/sysdeck-modules/ and bridge/modules3p.py). The legacy cockpit-module-pull.sh script remains as a CLI fallback. |
sysbench — System Benchmark
| Field |
Value |
| Module |
cockpit-benchmark |
| Tool |
sysbench CLI |
| License |
GPL-2.0 |
| Author |
Alexey Kopytov |
| Source |
https://github.com/akopytov/sysbench |
| Install |
pacman -S sysbench |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.benchmark", "run-cpu"]) |
| License compat |
MIT calling GPL-2.0 via subprocess — independent programs |
cockpit-benchmark — Standalone Cockpit Plugin (reference)
| Field |
Value |
| Module |
Referenced by cockpit-benchmark (not bundled) |
| License |
MIT |
| Author |
ealier |
| Source |
https://github.com/ealier/cockpit-benchmark |
| Note |
The suite provides its own benchmark panel. The standalone cockpit-benchmark plugin may be installed separately. |
pacman / dnf / apt — Package Manager
| Field |
Value |
| Module |
cockpit-packages |
| Tool |
pacman (Arch), dnf (Fedora/RHEL), apt (Debian/Ubuntu) |
| License |
GPL-2.0+ (pacman), GPL-2.0+ (dnf), GPL-2.0+ (apt) |
| Author |
Pacman Development Team, RPM project, Debian project |
| Source |
https://archlinux.org/pacman/, https://github.com/rpm-software-management/dnf, https://salsa.debian.org/apt-team/apt |
| Install |
Pre-installed on respective distros |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.packages", "summary"]) |
| License compat |
MIT calling GPL-2.0+ via subprocess — independent programs |
cockpit-identities — Standalone Cockpit Plugin (reference)
| Field |
Value |
| Module |
Referenced by cockpit-auth identities extension (not bundled) |
| License |
LGPL-2.1 |
| Author |
cockpit-project |
| Source |
https://github.com/cockpit-project/cockpit-identities |
| Note |
The suite's auth identities enumeration invokes the same underlying tools (ssh-add, pkcs11-tool, klist). The standalone cockpit-identities plugin may be installed separately via the in-suite 3rd-Party Modules panel (v0.0.46+, see plugins/sysdeck-modules/ and bridge/modules3p.py). |
OpenSSH — SSH Key Enumeration
| Field |
Value |
| Module |
cockpit-auth (identities) |
| Tool |
ssh-add, ssh-keygen |
| License |
BSD-2-Clause |
| Author |
OpenBSD project |
| Source |
https://www.openssh.com/ |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.auth", "ssh-keys"]) |
| License compat |
MIT calling BSD-2-Clause — compatible |
MIT Kerberos — Kerberos Principal Enumeration
| Field |
Value |
| Module |
cockpit-auth (identities) |
| Tool |
klist |
| License |
MIT (Kerberos) |
| Author |
MIT Kerberos Consortium |
| Source |
https://web.mit.edu/kerberos/ |
| Integration |
cockpit.spawn(["python3", "-m", "sysdeck.bridge.auth", "kerberos"]) |
| License compat |
MIT calling MIT — compatible |
External Tools Used by Pre-existing Modules (v0.0.10 and earlier)
Listed for completeness. All invoked as separate processes.
v0.0.35 — Jellyfin, Photos, Remote FS backends
Intentionally excluded (per v0.0.35 directive)
| Tool |
Reason |
nfsd (NFS) |
Kernel-builtin; no cluster; no remote-FS-as-data-store semantics. Use cockpit-nfs. |
amanda (AMANDA) |
Backup system (Advanced Maryland Automatic Network Disk Archiver), not a remote/distributed filesystem. Use a dedicated backup solution. |
License Compatibility Summary
The suite is MIT licensed. All external tools are invoked as separate
programs via cockpit.spawn (subprocess). Under copyright law,
communicating with a separate program via pipes or sockets does not
create a combined work. The licenses of the external tools impose
obligations on the tools themselves, not on the suite.
For GPL-family tools (Glances, nft, lynis, sysbench, ss, lsblk, Grafana):
- The suite does not link against, embed, or distribute their code.
- The suite invokes them as subprocesses, which is permitted without
imposing GPL on the calling program.
- Users who distribute the suite alongside these tools should verify
their own compliance with each tool's license terms.
For MIT/LGPL/BSD/Apache tools: fully compatible with the suite's MIT license.
v0.0.46 — In-Suite 3rd-Party Module Installer
Prior to v0.0.46, the only way to install third-party Cockpit modules
(45Drives Navigator, cockpit-pacman, cockpit-identities, etc.) was the
side-channel cockpit-module-pull.sh shell script. That script bundled
a single blanket license prompt at the top and wrote a post-install
text audit log — but it did not surface per-module license / credit /
install-plan disclosures BEFORE the pull, and it had no per-module
opt-out.
v0.0.46 replaces that flow with a first-class 3rd-Party Modules
panel (plugins/sysdeck-modules/) backed by a Python bridge helper
(bridge/modules3p.py). Each catalog entry declares its license,
author, source URL, and install hook. The panel renders all four
fields INLINE in every row, right next to a 1-click Install button —
clicking Install is the operator's acceptance of the inline-displayed
license. No modal, no separate confirmation step.
The bridge itself refuses silent installs (no --accept-license=1
⇒ license-not-accepted) as a guard against malicious callers. The
JS always passes that flag because the license is rendered inline next
to the button — the click IS the acceptance gesture.
Every install / uninstall is appended to
/etc/cockpit/MODULE_LICENSES.log as a JSON record. Legacy plain-text
lines from cockpit-module-pull.sh are preserved as {raw: ...}
records, so a single audit view shows both old and new entries.
Catalog entries (v0.0.46)
Adding a new module to the catalog is a single dict append to
CATALOG in bridge/modules3p.py. No per-module code branches.
License compatibility
All entries are invoked as separate processes via
cockpit.spawn. The suite (MIT) does not link against, embed, or
distribute any of these modules. Under copyright law, communicating
with a separate program via pipes or sockets does not create a
combined work. The licenses of the upstream modules impose
obligations on the modules themselves, not on SysDeck.
For GPL-family modules (cockpit-navigator, cockpit-file-sharing,
cockpit-zfs-manager, cockpit-pacman): operators who distribute SysDeck
alongside these modules should verify their own compliance with each
module's license terms.
For MIT/LGPL/BSD/Apache modules: fully compatible with the suite's MIT
license.