Private hosting for enterprises
How to self host the CheerpJ Applet Runner extension
This guide is designed to assist enterprise users in privately hosting the CheerpJ Applet Runner extension.
It is a general guide that applies to both Chrome and Edge browsers.
For detailed instructions on self-hosting extensions for either browser, please refer to the official documentation for Chrome
and Edge
.
Requirements:
To self-host the CheerpJ Applet Runner extension, you will need a web server to host the extension’s CRX
and manifest.xml
files.
This hosting location should not require authentication and must be accessible by devices regardless of their location.
This is important to keep in mind if you are considering hosting the files on an internal repository.
The following steps assume that you have knowledge of group policy and using the Windows registry.
The CRX File
The CRX file is a compressed format used for extensions in browsers that are part of the Chromium family, such as Google Chrome and Edge.
For enterprise users, you may have already received the Applet Runner’s CRX file from us, or we may have sent you the extension files in a compressed folder. In the latter case, you will need to pack the extension yourself. We provide detailed documentation on how to do this for Chrome and Edge.
Ensure that you host the extension CRX file in the appropriate location within your IT infrastructure and that the file is accessible via a URL.
Extension ID
The extension ID is a unique identifier used to differentiate one extension from another. It is required when configuring extensions using the Windows Group Policy Editor or setting them in the registry.
We have either already forwarded you the custom extension ID, or you will need to obtain it yourself. To obtain the extension ID for a custom build, drag the CRX file onto your browser’s Extensions page. You can navigate there by clicking the three dots in the top-right corner of the browser and selecting Extensions. Once the extension is loaded, you can note the ID.
Manifest XML file
To self host the extension you will also need a manifest XML file. The file contains important information of the extension:
- appid - The extension ID from the previous step.
- codebase - The download URL for the CRX file.
- version - The version of the extension. Can be retrieved from
chrome://extensions/
,edge://extensions/
or it was provided by us.
If we provided you with the manifest.xml file you can skip this step. Otherwise you can use this template to create your own:
<?xml version='1.0' encoding='UTF-8'?><gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <app appid='exampleid'> <updatecheck codebase='https://app.somecompany.com/extension.crx' version='1.0' /> </app></gupdate>
You will need to update the appid
, codebase
and version
attributes to ensure it works with your custom build.
The appid
should be changed to the extension ID you noted previously. The codebase
string should be the public URL of the extension’s CRX file.
And the version
should be changed to the actual extension version.
Just like with the CRX file, you will need to host the manifest.xml
file, and it should be accessible via a URL.
You will need this URL to create the policy string when configuring the extension.
Hosting the extension files
The server hosting your extension’s CRX files must employ appropriate HTTP headers to allow users to install the extension through a link. Browsers belonging to the Chromium family (such as Google Chrome and Edge) consider a file installable, if it follows conditions:
- The file has the content type
"application/x-chrome-extension"
. - The file suffix is .crx, and both conditions are met:
- The file is not served with the HTTP header
"X-Content-Type-Options: nosniff"
. - The file is served with one of the specified content types:
empty string
,"text/plain"
,"application/octet-stream"
,"unknown/unknown"
,"application/unknown"
or"/"
.
- The file is not served with the HTTP header
To fix an HTTP header issue, either change the configuration of the server or try hosting the .crx file at another server.
Distributing the extension
To allow users to install a self-hosted extensions, you need to add the extension CRX IDs to the ExtensionInstallAllowList
policy
and add the URL of the location where the CRX file is hosted to the ExtensionInstallSources
policy.
Alternatively, you can use group policy ExtensionInstallForceList to Force-install an extension on your users’ devices.
Keep in mind that for self-hosted extensions the policy string for the
ExtensionInstallForceList
policy should look like this extension_id;update_url
where update_url
points to the location of the manifest XML
file. For example:
exampleid;https://example.net/manifest.xml
To further configure the extension you can follow our documentation on how to configure extensions for enteprises.