Delivering a Customization Package through the Nuxeo Marketplace

Updated: August 19, 2019

The Nuxeo Marketplace is the channel provided by Nuxeo to distribute addons and patches to the Nuxeo Platform. nuxeoctl provides an integrated way to browse this catalog of add-ons and install them.

This catalog of packages is public, although some addons require a valid Nuxeo Online Services account to be able to install them.

The Nuxeo Marketplace also provides a private channel to distribute packages to a specific audience. Nuxeo Online Services users can provide their own users with the same safe, integrated method of browsing and installing private packages.

Example Use Cases

The purpose of the private channel is to enable Nuxeo Platform users who do some customization on the Platform to easily distribute their customization. Here are some examples of how this private channel can be helpful.

For example, if you configure your Nuxeo instance with Nuxeo Studio as well as Nuxeo CLI for additional Java customization, you can create your Nuxeo Package and allow other people (ie/ sysadmin) to install the whole project using a single package, instead of installing them separately. Once the private package is uploaded on Nuxeo Marketplace, the Application Definition screen in your Nuxeo Studio project lets you bundle them easily.

Another example is if you create your own application on top of the Nuxeo Platform and distribute it to your own clients (who may add Studio configurations themselves), you can use this private channel to provide hot fixes of your base application.

Who Can Use the Private Marketplace Channel

The Nuxeo Marketplace private channel is available to any Nuxeo Online Services user. Nuxeo Online Services trial users can also use it.


The Marketplace private channel can be used to provide any type of customization: simple XML configuration, Java code, configuration templates, libraries, etc. The only requirement is that the customization must be provided as a Nuxeo Package.

The target instance(s) can retrieve the package from Nuxeo Online Services. Otherwise, you can upload the package via the Local packages tab in the Admin Center or from the server command line with NuxeoCtl.

Uploading a Nuxeo Package

Using the Marketplace Interface

To provide customers with a private package:

  1. After logging in, navigate to Nuxeo Marketplace upload page page or click on the button Add your Nuxeo Package to the Marketplace, located at the bottom of the screen.
  2. Fill in the form "Upload a Marketplace package" (see below for details).
  3. Click on the Submit button. The package is uploaded. It can be installed using nuxeoctl, and is available in the Private packages tab of the Update Center when using JSF UI, for the instances that match your package's client(s) and project(s).
Package data Select your Nuxeo package. Expected format is ZIP. See the documentation for Creating Nuxeo Packages and the Nuxeo Package code samples.
Owner client Select the Nuxeo Online Services client who will own the package.
In most cases, the owner is your company. But typically, system integrators can act in the name of several clients. Once a given package name is used, the name is reserved to the owner of that initial package.
Associated clients or projects Select the clients and projects for which the package must be available.
You can select a client to make the package available for all that client's projects.

Using the REST API

A REST API is available for automation (such as integrating the upload of the Nuxeo Package from a release script or from the Continuous Integration).

Sample calls from command-line with curl

# Upload a package (owner parameter is required, one of client or project parameter is required)
curl -i -u login:password -F [email protected]/path/to/ ""

# Delete a package
curl -i -u login:password -X DELETE ""


  • CLIENT_ID: Comma-separated client IDs.
  • PROJECT_ID: Comma-separated project IDs and/or names. The parameter can also include comma-separated client IDs prefixed with client:.
  • OWNER_ID: A unique client ID.
More documentation about the Marketplace

We'd love to hear your thoughts!

All fields required