Skip to content

OpenWRT

Learn more about OpenWRT.

Provides information from OpenWRT

widget:
  type: openwrt
  url: http://host.or.ip
  username: homepage
  password: pass
  interfaceName: eth0 # optional

Interface

Setting interfaceName (e.g. eth0) will display information for that particular device, otherwise the widget will display general system info.

Authorization

In order for homepage to access the OpenWRT RPC endpoints you will need to create an ACL and new user in OpenWRT.

Create an ACL named homepage.json in /usr/share/rpcd/acl.d/, the following permissions will suffice:

{
  "homepage": {
    "description": "Homepage widget",
    "read": {
      "ubus": {
        "network.interface.wan": ["status"],
        "network.interface.lan": ["status"],
        "network.device": ["status"],
        "system": ["info"]
      }
    }
  }
}

Create a crypt(5) password hash using the following command in the OpenWRT shell:

uhttpd -m "<somepassphrase>"

Then add a user that will use the ACL and hashed password in /etc/config/rpcd:

config login
        option username 'homepage'
        option password '<hashedpassword>'
        list read homepage

This username and password will be used in Homepage's services.yaml to grant access.