This repository contains resources for DigitalOcean Marketplace partners, like documentation on image requirements and creation, tools for image cleanup and validation, and templates for build automation.
The overall process for creating a Marketplace image is as follows:
-
Create and configure a build Droplet manually first to make sure your configuration works. You can create a build Droplet with any method, like the control panel, the API, or command-line tools like
doctl
. -
Clean up and validate the build Droplet with the provided scripts,
cleanup.sh
andimg_check.sh
. The scripts will check for and fix potential security concerns and verify that the image will be compatible with Marketplace. -
Take a snapshot of the build Droplet after you power it down, then test the resulting image. While there are several ways to create an image, we recommend snapshots as the most simple and consistent option.
-
Submit your final image to the Marketplace team for review.
-
Submissions for Droplet based 1-Click Apps can be made through our Vendor Portal. If you've signed expressed interest in joining the Marketplace through the form on this page but you've not received a login for the Vendor Portal, please reach out to [email protected] and we'll help you out.
-
Kubernetes 1-Click Apps can be submitted via our Marketplace Kubernetes Github repo.
This repo also contains:
-
Our Getting Started documentation that includes our image requirements, configuration recommendations, how to run commands on first boot and first login, and details on exactly what our helper scripts do.
-
A Fabric template and docs and a Packer template and docs that you can use to automate your build system with minimal additional effort.
To maintain compatibility with Marketplace tools and processes, we support a limited number of Linux distributions and releases for Marketplace images. These options provide either deb
- or rpm
-based packaging and will have security patches and updates for a reasonable time period.
We currently support the following OSes:
- Debian 9 (stretch)
- Debian 10 (buster)
- Ubuntu 20.04 (LTS)
- Ubuntu 18.04 (LTS)
- Ubuntu 16.04 (LTS)
- CentOS 7.x
All supported operating systems are available as base images to build on in the DigitalOcean cloud.
The following software packages are necessary for the initial configuration of new Droplets and to ensure connectivity:
cloud-init
0.76 or higher (0.79 or higher recommended)openssh-server
(SFTP-enabled configuration recommended)
All of these packages are provided by default in the default DigitalOcean base images.
We'd love to have your contribution to this project! You can find more details here.
Avoid building architecture specific components into your 1-Click App, as your App may be run by DigitalOcean customers across a variety of operating systems and underlying hypervisors. You should use generic machine architecture to ensure consistent use across all infrastructure.
For example, avoid building ruby gems with native extensions as the underlying machine architecture may use flags that don't exist across all hypervisors.