Skip to content

extension.json ​

The extension.json file contains the metadata for an OPanel extension, including its basic information. Place it in the resources directory of your project's source code.

Example ​

json
{
  "extId": "example-extension",
  "version": "1.0.0",
  "name": "Example Extension",
  "description": "An example OPanel extension.",
  "author": "Norcleeh",
  "pages": [
    {
      "name": "Example Page",
      "url": "/"
    }
  ]
}

Fields ​

FieldTypeDescriptionRequired
extIdstringThe extension ID. It must be unique among all extensions.√
versionstringThe extension version√
namestringThe extension name√
descriptionstringA short description of the extension√
authorstringThe author's name√
pagesobject[]Extension pages to display in the dashboard sidebar

pages ​

Each item in pages is displayed as an entry in the Extensions section of the dashboard sidebar. An extension can register multiple pages. Omit this field if the extension does not need any pages in the sidebar.

FieldTypeDescriptionRequired
namestringThe non-empty page name displayed in the dashboard sidebarYes
urlstringThe page path under the extension's resources/web directory; it must start with /Yes

url is an internal extension path, not a complete external URL. It cannot contain a scheme or host, and it cannot use .. to escape the resources/web directory. For example:

  • / maps to resources/web/index.html
  • /hello/ maps to resources/web/hello/index.html

See Frontend Pages for page assets and a complete example.

Released under the GPL-3.0 License