Skip to main content
Software Licensing

Downloads / Releases

Use Moonbase to host secure downloads of your software releases

Written By Tobias Lønnerød Madsen

If you’re using Moonbase, you’re likely selling digital products of some kind, whether that’s actual applications with installers, or just .zip archives of files. And to actually deliver these files to customers, you use what we call “Releases”, found when configuring your products:

Releases section of Helios Synth listing a pre-release 2.2.0, the active 2.1.0 and a published 2.0.0

Releases are versioned, so that we can easily support update notifications for users of the application, but you can also maintain a single release where you update the files within.

Click New release, enter the version and add the files, then choose Create release to keep it as a pre-release, or Create & publish to make it the current release straight away. A pre-release isn’t shown in customer portals: click Publish on its row when it’s ready. To roll back, click Promote on an earlier published release, which makes it the current release again.

Downloading releases

Your customers can access releases through a couple of different ways:

  1. Direct links to downloads you have on your website

  2. Through the customer portal, from products they own

For example, in the Moonbase Embedded Storefront, any user can access downloads from the product view:

It will highlight the best files to download based on the users platform, and provide direct access as long as it’s permitted by the security settings. The same features can be found in the hosted customer portal.

Limiting access

By default, access to files in a release requires ownership of the product. This is great for digital products where there is no DRM other than a secure download, but for products with licensing integrated, we suggest lowering the security settings. Click Actions > Configure security to choose who can download: anyone (Open access to download), signed-in customers (Require authenticated customer), owners (Require ownership) or members of a customer group (Require group membership).

Configure release access dialog with the Download access list open on four options: open access, authenticated customer, ownership and group membership

Turn on Set a level per release type to set the current release, past releases and pre-releases separately, for example the current release open to everyone and older versions for owners only:

Configure release access with a level per release type: current release open to anyone, past releases and pre-releases for owners only

Group membership admits only members of that group, so owning the product isn’t enough. The releases of a Private product always require ownership, whatever you pick here.

By allowing open access to download, any customer can download installers directly from your website, and install immediately.

For software products, Actions > Default manifests sets, per platform, which files a release installs and where, for install hubs that read them.

Static links to platform downloads

Some times you may want to directly link to downloads, especially if you have the security settings set to allow open access to download. To do this, you may link to some endpoints on our storefront API.

To download the latest version for a specific platform, you may use the following endpoint: https://<accountId>.moonbase.sh/api/customer/inventory/products/<productId>/download/<'mac'|'windows'|'linux'|'universal'>/latest. In case you have multiple files for the given platform, the endpoint will return the first file uploaded.

For example, https://<account-id>.moonbase.sh/api/customer/inventory/products/<productId>/download/mac/latest downloads the latest Mac file of that product.

Alternatively, you may also link directly to the hosted download page to offer UI for selecting which files to download, and support authentication in the process: https://<account-id>.moonbase.sh/download/<productId>, also shown in the header of the product’s Releases section.

Publishing releases from your build

You can also publish releases without opening Moonbase. Our command-line tool uploads the files and creates the release in one step, for example from GitHub Actions when you push a version tag: npx @moonbase.sh/cli release <product-id> <version> <files...> --publish. It uses an API key from Account settings > Developer, and sends large files in parts. See the guide: https://moonbase.sh/docs/guides/github-actions-product-releases/.