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