Important: Chrome will be removing support for Chrome Apps on Windows, Mac, and Linux. Chrome OS will continue to support Chrome Apps. Additionally, Chrome and the Web Store will continue to support extensions on all platforms. Read the announcement and learn more about migrating your app.
Warning: As of Chrome 33, Windows users can only download extensions hosted in the Chrome Web store, except for installs via enterprise policy or developer mode (see Protecting Windows users from malicious extensions). As of Chrome 44, no external installs are allowed from a path to a local .crx on Mac (see Continuing to protect Chrome users from malicious extensions).
This page tells you how to host
on your own server.
If you distribute your extension, app, or theme solely through the
Chrome Web Store,
you don't need this page.
Instead, consult the store developer documentation.
By convention, extensions,
installable web apps, and themes are served—whether
by the Chrome Web Store or by a custom server—as
When you upload a ZIP file with the
Chrome Developer Dashboard,
the dashboard creates the
.crx file for you.
If you aren't publishing using the dashboard,
you need to create the
.crx file yourself,
as described in Packaging.
You can also specify
autoupdate information to ensure that
your users will have the latest copy of the
A server that hosts
must use appropriate HTTP headers,
so that users can install the file
by clicking a link to it.
Google Chrome considers a file to be installable if either of the following is true:
The file has the content type
The file suffix is
.crxand both of the following are true:
The file is not served with
the HTTP header
The file is served
with one of the following content types:
- empty string
- The file is not served with the HTTP header
The most common reason for failing to recognize an installable file
is that the server sends the header
The second most common reason
is that the server sends an unknown content type—one
that isn't in the previous list.
To fix an HTTP header issue,
either change the configuration of the server
or try hosting the
.crx file at another server.