Toparr
Get Started with Apps!
Keywords: monitoring, gpu, intel, hardware
Train: Community
Home Page: https://github.com/ajthom90/toparr
Added: 2026-03-11
Last Updated: 2026-03-13
Real-time Intel GPU monitoring dashboard with live-updating gauges, sparkline history, and per-process GPU client tracking.
Run as Context- Container [toparr] runs as root user and group.
Group: 0 / Host group is [root]
User: 0 / Host user is [root]

Host Mounts
- /dev/dri : Required for Intel GPU access.
- /sys/kernel/debug : Required for GPU client enumeration via debugfs.
Security Capabilities
- Toparr is able to bypass read/execute permission checks
- Toparr is able to access performance monitoring interfaces
- Toparr is able to perform system administration operations
- Toparr is able to trace and control other processes
App Metadata (Raw File)
{
"1.0.1": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/toparr/1.0.1",
"last_update": "2026-03-13 14:44:15",
"required_features": [],
"human_version": "1.2.0_1.0.1",
"version": "1.0.1",
"app_metadata": {
"app_version": "1.2.0",
"capabilities": [
{
"description": "Toparr is able to bypass read/execute permission checks",
"name": "DAC_READ_SEARCH"
},
{
"description": "Toparr is able to access performance monitoring interfaces",
"name": "PERFMON"
},
{
"description": "Toparr is able to perform system administration operations",
"name": "SYS_ADMIN"
},
{
"description": "Toparr is able to trace and control other processes",
"name": "SYS_PTRACE"
}
],
"categories": [
"monitoring"
],
"changelog_url": "https://github.com/ajthom90/toparr/releases",
"date_added": "2026-03-11",
"description": "Real-time Intel GPU monitoring dashboard with live-updating gauges, sparkline history, and per-process GPU client tracking.",
"home": "https://github.com/ajthom90/toparr",
"host_mounts": [
{
"description": "Required for Intel GPU access.",
"host_path": "/dev/dri"
},
{
"description": "Required for GPU client enumeration via debugfs.",
"host_path": "/sys/kernel/debug"
}
],
"icon": "https://media.sys.truenas.net/apps/toparr/icons/icon.svg",
"keywords": [
"monitoring",
"gpu",
"intel",
"hardware"
],
"lib_version": "2.2.8",
"lib_version_hash": "76b40b42163deb26edbad5f973f1bd69b68bd85625bcd8247545194d99b9f912",
"maintainers": [
{
"email": "dev@truenas.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "toparr",
"run_as_context": [
{
"description": "Container [toparr] runs as root user and group.",
"gid": 0,
"group_name": "Host group is [root]",
"uid": 0,
"user_name": "Host user is [root]"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/toparr/screenshots/screenshot1.png"
],
"sources": [
"https://github.com/ajthom90/toparr",
"https://ghcr.io/ajthom90/toparr"
],
"title": "Toparr",
"train": "community",
"version": "1.0.1"
},
"schema": {
"groups": [
{
"name": "Toparr Configuration",
"description": "Configure Toparr"
},
{
"name": "Network Configuration",
"description": "Configure Network for Toparr"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Toparr"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Toparr"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Toparr"
}
],
"questions": [
{
"variable": "TZ",
"group": "Toparr Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "toparr",
"label": "",
"group": "Toparr Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "gpu_tdp_watts",
"label": "GPU TDP (Watts)",
"description": "The TDP of your Intel GPU in watts.\nUsed to scale the power gauge on the dashboard.\n",
"schema": {
"type": "int",
"default": 60,
"min": 1,
"required": true
}
},
{
"variable": "additional_envs",
"label": "Additional Environment Variables",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "env",
"label": "Environment Variable",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "network",
"label": "",
"group": "Network Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "web_port",
"label": "WebUI Port",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "bind_mode",
"label": "Port Bind Mode",
"description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
"schema": {
"type": "string",
"default": "published",
"enum": [
{
"value": "published",
"description": "Publish port on the host for external access"
},
{
"value": "exposed",
"description": "Expose port for inter-container communication"
},
{
"value": "",
"description": "None"
}
]
}
},
{
"variable": "port_number",
"label": "Port Number",
"schema": {
"type": "int",
"default": 30391,
"show_if": [
[
"bind_mode",
"=",
"published"
]
],
"min": 1,
"max": 65535,
"required": true
}
},
{
"variable": "host_ips",
"label": "Host IPs",
"description": "IPs on the host to bind this port",
"schema": {
"type": "list",
"show_if": [
[
"bind_mode",
"=",
"published"
]
],
"default": [],
"items": [
{
"variable": "host_ip",
"label": "Host IP",
"schema": {
"type": "string",
"required": true,
"$ref": [
"definitions/node_bind_ip"
]
}
}
]
}
}
]
}
},
{
"variable": "host_network",
"label": "Host Network",
"description": "Bind to the host network. It's recommended to keep this disabled.\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "networks",
"label": "Networks",
"description": "The docker networks to join",
"schema": {
"type": "list",
"show_if": [
[
"host_network",
"=",
false
]
],
"default": [],
"items": [
{
"variable": "network",
"label": "Network",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "The name of the network to join.</br>\nThe network must already exist.\n",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "containers",
"label": "Containers",
"description": "The containers to add to this network.",
"schema": {
"type": "list",
"items": [
{
"variable": "container",
"label": "Container",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Container Name",
"schema": {
"type": "string",
"required": true,
"enum": [
{
"value": "toparr",
"description": "toparr"
}
]
}
},
{
"variable": "config",
"label": "Container Network Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "aliases",
"label": "Aliases (Optional)",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "alias",
"label": "Alias",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "interface_name",
"label": "Interface Name (Optional)",
"schema": {
"type": "string"
}
},
{
"variable": "mac_address",
"label": "MAC Address (Optional)",
"schema": {
"type": "string"
}
},
{
"variable": "ipv4_address",
"label": "IPv4 Address (Optional)",
"schema": {
"type": "string"
}
},
{
"variable": "ipv6_address",
"label": "IPv6 Address (Optional)",
"schema": {
"type": "string"
}
},
{
"variable": "gw_priority",
"label": "Gateway Priority (Optional)",
"schema": {
"type": "int",
"null": true
}
},
{
"variable": "priority",
"label": "Priority (Optional)",
"schema": {
"type": "int",
"null": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "additional_storage",
"label": "Additional Storage",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "storage_entry",
"label": "Storage Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to as a volume.</br>\nNFS Share: Is a NFS share that is mounted to as a volume.\n",
"schema": {
"type": "string",
"required": true,
"default": "ix_volume",
"enum": [
{
"value": "host_path",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ix_volume",
"description": "ixVolume (Dataset created automatically by the system)"
},
{
"value": "cifs",
"description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
},
{
"value": "nfs",
"description": "NFS Share (Mounts a volume to a NFS share)"
}
]
}
},
{
"variable": "read_only",
"label": "Read Only",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mount_path",
"label": "Mount Path",
"schema": {
"type": "path",
"required": true
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "path",
"label": "Host Path",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"schema": {
"type": "string",
"required": true,
"default": "storage_entry"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": []
}
}
]
}
},
{
"variable": "cifs_config",
"label": "SMB Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"cifs"
]
],
"attrs": [
{
"variable": "server",
"label": "Server",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "username",
"label": "Username",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "password",
"label": "Password",
"schema": {
"type": "string",
"required": true,
"private": true
}
},
{
"variable": "domain",
"label": "Domain",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "nfs_config",
"label": "NFS Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"nfs"
]
],
"attrs": [
{
"variable": "server",
"label": "Server",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "labels",
"label": "",
"group": "Labels Configuration",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "label",
"label": "Label",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "containers",
"label": "Containers",
"description": "Containers where the label should be applied",
"schema": {
"type": "list",
"items": [
{
"variable": "container",
"label": "Container",
"schema": {
"type": "string",
"required": true,
"enum": [
{
"value": "toparr",
"description": "toparr"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "resources",
"label": "",
"group": "Resources Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "limits",
"label": "Limits",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "cpus",
"label": "CPUs",
"description": "CPUs limit for Toparr.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Toparr.",
"schema": {
"type": "int",
"default": 512,
"required": true
}
}
]
}
},
{
"variable": "gpus",
"group": "Resources Configuration",
"label": "GPU Configuration",
"schema": {
"type": "dict",
"$ref": [
"definitions/gpu_configuration"
],
"attrs": []
}
}
]
}
}
]
},
"readme": "<h1>Toparr</h1> <p><a href=\"https://github.com/ajthom90/toparr\">Toparr</a> is a real-time Intel GPU monitoring dashboard in Docker, wrapping intel_gpu_top in a web UI with live-updating gauges, sparkline history, and per-process GPU client tracking.</p>",
"changelog": null,
"chart_metadata": {
"app_version": "1.2.0",
"capabilities": [
{
"description": "Toparr is able to bypass read/execute permission checks",
"name": "DAC_READ_SEARCH"
},
{
"description": "Toparr is able to access performance monitoring interfaces",
"name": "PERFMON"
},
{
"description": "Toparr is able to perform system administration operations",
"name": "SYS_ADMIN"
},
{
"description": "Toparr is able to trace and control other processes",
"name": "SYS_PTRACE"
}
],
"categories": [
"monitoring"
],
"changelog_url": "https://github.com/ajthom90/toparr/releases",
"date_added": "2026-03-11",
"description": "Real-time Intel GPU monitoring dashboard with live-updating gauges, sparkline history, and per-process GPU client tracking.",
"home": "https://github.com/ajthom90/toparr",
"host_mounts": [
{
"description": "Required for Intel GPU access.",
"host_path": "/dev/dri"
},
{
"description": "Required for GPU client enumeration via debugfs.",
"host_path": "/sys/kernel/debug"
}
],
"icon": "https://media.sys.truenas.net/apps/toparr/icons/icon.svg",
"keywords": [
"monitoring",
"gpu",
"intel",
"hardware"
],
"lib_version": "2.2.8",
"lib_version_hash": "76b40b42163deb26edbad5f973f1bd69b68bd85625bcd8247545194d99b9f912",
"maintainers": [
{
"email": "dev@truenas.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "toparr",
"run_as_context": [
{
"description": "Container [toparr] runs as root user and group.",
"gid": 0,
"group_name": "Host group is [root]",
"uid": 0,
"user_name": "Host user is [root]"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/toparr/screenshots/screenshot1.png"
],
"sources": [
"https://github.com/ajthom90/toparr",
"https://ghcr.io/ajthom90/toparr"
],
"title": "Toparr",
"train": "community",
"version": "1.0.1"
}
}
}Support, maintenance, and documentation for applications within the Community catalog is handled by the TrueNAS community. The TrueNAS Applications Market hosts but does not validate or maintain any linked resources associated with this app.
There currently aren’t any resources available for this application!
Please help the TrueNAS community add resources here or discuss this application in the TrueNAS Community forum.


