Creating a Static Extensions Repository

To host your own extensions and leverage Blender update system all that is required is a static JSON file on a server, pointing towards download links for the extensions.

JSON

To generate a valid JSON file you can use the command-line tool:

blender --command extension server-generate --repo-dir=/path/to/packages

This creates an index.json listing from all the packages found in the specified location.

See server-generate docs.

The generated JSON is aligned with the API.

Testing

To test the generated repository, create a new “Remote” repository from the user preferences:

  • Extensions -> Repositories -> [+] -> Add Remote Repository

  • In the URL paste the location of the generated JSON. So the example /path/to/packages would use the:

    • file:///path/to/packages/index.json on Linux/macOS.

    • file:///C:/path/to/packages/index.json on MS-Windows.

    • file://HOST/share/path/to/packages/index.json network shares on MS-Windows.

    You may wish to use a web browser to navigate to the file-system location and copy that URL into Blender.

HTML

The server-generate command can optionally create a simple website using the --html argument. which can be used to view extensions online, the links can dropped into Blender for installation.

For a sample of the HTML code you can use to list all the extensions in the repository, use the html option when generating the server.

blender --command extension server-generate --repo-dir=/path/to/packages --html

This creates an index.html file with all the extra URLs parameters ready to use.