AdGuard Home

Get Started with Apps!
Keywords: dns, adblock
Train: Community
Home Page: https://github.com/AdguardTeam/AdGuardHome
Added: 2024-06-20
Last Updated: 2025-04-23
Free and open source, powerful network-wide ads & trackers blocking DNS server.
Run as Context- AdGuard Home runs as root user.
Group: 0 / root
User: 0 / root


Security Capabilities
- AdGuard Home is able to bind to a privileged port.
- AdGuard Home is able to chown files.
- AdGuard Home is able to bypass permission checks for it's sub-processes.
- AdGuard Home is able to bypass permission checks.
- AdGuard Home is able to bind to a privileged port.
App Metadata (Raw File)
{
"1.1.26": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/adguard-home/1.1.26",
"last_update": "2025-04-23 17:40:39",
"required_features": [],
"human_version": "v0.107.61_1.1.26",
"version": "1.1.26",
"app_metadata": {
"app_version": "v0.107.61",
"capabilities": [
{
"description": "AdGuard Home is able to bind to a privileged port.",
"name": "NET_BIND_SERVICE"
},
{
"description": "AdGuard Home is able to chown files.",
"name": "CHOWN"
},
{
"description": "AdGuard Home is able to bypass permission checks for it's sub-processes.",
"name": "FOWNER"
},
{
"description": "AdGuard Home is able to bypass permission checks.",
"name": "DAC_OVERRIDE"
},
{
"description": "AdGuard Home is able to bind to a privileged port.",
"name": "NET_RAW"
}
],
"categories": [
"networking"
],
"changelog_url": "https://github.com/AdguardTeam/AdGuardHome/releases",
"date_added": "2024-06-20",
"description": "Free and open source, powerful network-wide ads & trackers blocking DNS server.",
"home": "https://github.com/AdguardTeam/AdGuardHome",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/adguard-home/icons/icon.svg",
"keywords": [
"dns",
"adblock"
],
"lib_version": "2.1.16",
"lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "adguard-home",
"run_as_context": [
{
"description": "AdGuard Home runs as root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/adguard-home/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/adguard-home/screenshots/screenshot2.png"
],
"sources": [
"https://github.com/AdguardTeam/AdGuardHome",
"https://hub.docker.com/r/adguard/adguardhome"
],
"title": "AdGuard Home",
"train": "community",
"version": "1.1.26"
},
"schema": {
"groups": [
{
"name": "AdGuard Home Configuration",
"description": "Configure AdGuard Home"
},
{
"name": "Network Configuration",
"description": "Configure Network for AdGuard Home"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for AdGuard Home"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for AdGuard Home"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for AdGuard Home"
}
],
"questions": [
{
"variable": "adguard",
"label": "",
"group": "AdGuard Home Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "use_https_probe",
"label": "Use HTTPS Probe",
"description": "Use HTTPS probe for AdGuard Home.</br>\nOnly enable this after you have configured HTTPS\nin the AdGuard Home web UI.\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "https_port_to_probe",
"label": "HTTPS Port to Probe",
"description": "The port to probe for HTTPS.</br>\nOnly enable this after you have configured HTTPS\nin the AdGuard Home web UI.</br>\nNote that usually this port is different from the WebUI port.\n",
"schema": {
"type": "int",
"default": 30004,
"required": true,
"show_if": [
[
"use_https_probe",
"=",
true
]
]
}
},
{
"variable": "additional_envs",
"label": "Additional Environment Variables",
"description": "Configure additional environment variables for AdGuard Home.",
"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",
"required": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "network",
"label": "",
"group": "Network Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "web_port",
"label": "WebUI Port",
"description": "The port for AdGuard Home WebUI",
"schema": {
"type": "int",
"default": 30004,
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "dns_port",
"label": "DNS Port",
"description": "The port for AdGuard Home DNS",
"schema": {
"type": "int",
"default": 53,
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "host_network",
"label": "Host Network",
"description": "Bind to the host network. It's recommended to keep this disabled.\n",
"schema": {
"type": "boolean",
"show_if": [
[
"dhcp_enabled",
"=",
false
]
],
"default": false
}
},
{
"variable": "dhcp_enabled",
"label": "DHCP Enabled",
"description": "Enable DHCP for the network.</br>\nThis will automatically enable host network.\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "additional_ports",
"label": "Additional Ports",
"schema": {
"type": "list",
"show_if": [
[
"host_network",
"=",
false
]
],
"items": [
{
"variable": "port",
"label": "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",
"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"
}
]
}
},
{
"variable": "port_number",
"label": "Port Number",
"schema": {
"type": "int",
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "container_port",
"label": "Container Port",
"schema": {
"type": "int",
"min": 1,
"max": 65535,
"required": true
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"required": true,
"default": "tcp",
"enum": [
{
"value": "tcp",
"description": "TCP"
},
{
"value": "udp",
"description": "UDP"
}
]
}
},
{
"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": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "config",
"label": "AdGuard Home Config Storage",
"description": "The path to store AdGuard Home Config.",
"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.\n",
"schema": {
"type": "string",
"required": true,
"immutable": 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)"
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "config"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": []
}
}
]
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"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",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "work",
"label": "AdGuard Home WorkDir Storage",
"description": "The path to store AdGuard Home WorkDir.",
"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.\n",
"schema": {
"type": "string",
"required": true,
"immutable": 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)"
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "work"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": []
}
}
]
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"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",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "additional_storage",
"label": "Additional Storage",
"description": "Additional storage for AdGuard Home.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "storageEntry",
"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.\n",
"schema": {
"type": "string",
"required": true,
"default": "ix_volume",
"immutable": true,
"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)"
}
]
}
},
{
"variable": "read_only",
"label": "Read Only",
"description": "Mount the volume as read only.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mount_path",
"label": "Mount Path",
"description": "The path inside the container to mount the storage.",
"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",
"description": "Enable ACL for the storage.",
"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",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": 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",
"description": "The configuration for the SMB dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"cifs"
]
],
"attrs": [
{
"variable": "server",
"label": "Server",
"description": "The server to mount the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "path",
"label": "Path",
"description": "The path to mount the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "username",
"label": "Username",
"description": "The username to use for the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "password",
"label": "Password",
"description": "The password to use for the SMB share.",
"schema": {
"type": "string",
"required": true,
"private": true
}
},
{
"variable": "domain",
"label": "Domain",
"description": "The domain to use for the SMB share.",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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": "adguard",
"description": "adguard"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Adguard Home.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Adguard Home.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>AdGuard Home</h1> <p><a href=\"https://github.com/AdguardTeam/AdGuardHome\">AdGuard Home</a> is a network-wide ads & trackers blocking DNS server</p> <p>During the setup wizard, AdGuard Home presents an option to select on which port the web interface will be available. (Defaults to 80. Which is a privileged port and also usually the TrueNAS SCALE UI uses that port) Because of that, App will force the webUI to listen to port 30000 (or the port selected by user in the TrueNAS SCALE UI).</p> <p>If you select a different port in the wizard, the Dashboard will not work initially but after a couple of minutes container will automatically restart and the Dashboard will be available on the port you selected on the TrueNAS SCALE UI.</p>",
"changelog": null,
"chart_metadata": {
"app_version": "v0.107.61",
"capabilities": [
{
"description": "AdGuard Home is able to bind to a privileged port.",
"name": "NET_BIND_SERVICE"
},
{
"description": "AdGuard Home is able to chown files.",
"name": "CHOWN"
},
{
"description": "AdGuard Home is able to bypass permission checks for it's sub-processes.",
"name": "FOWNER"
},
{
"description": "AdGuard Home is able to bypass permission checks.",
"name": "DAC_OVERRIDE"
},
{
"description": "AdGuard Home is able to bind to a privileged port.",
"name": "NET_RAW"
}
],
"categories": [
"networking"
],
"changelog_url": "https://github.com/AdguardTeam/AdGuardHome/releases",
"date_added": "2024-06-20",
"description": "Free and open source, powerful network-wide ads & trackers blocking DNS server.",
"home": "https://github.com/AdguardTeam/AdGuardHome",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/adguard-home/icons/icon.svg",
"keywords": [
"dns",
"adblock"
],
"lib_version": "2.1.16",
"lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "adguard-home",
"run_as_context": [
{
"description": "AdGuard Home runs as root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/adguard-home/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/adguard-home/screenshots/screenshot2.png"
],
"sources": [
"https://github.com/AdguardTeam/AdGuardHome",
"https://hub.docker.com/r/adguard/adguardhome"
],
"title": "AdGuard Home",
"train": "community",
"version": "1.1.26"
}
}
}
Support, maintenance, and documentation for applications within the Community catalog is handled by the TrueNAS community. The TrueNAS Applications Portal 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 create content or discuss this application in the TrueNAS Community forum.