Table of Contents
Was this article helpful?
Try Vultr Today with

$50 Free on Us!

Want to contribute?

You could earn up to $600 by adding new articles.

Vultr Marketplace Requirements

Last Updated: Tue, May 25, 2021
Vultr Marketplace

If you are new to the Vultr Marketplace, please see the documentation overview to get started.


Vultr Marketplace has a few technical requirements for your application.

  1. Use the smallest filesystem possible.
  2. Use an OS that supports cloud-init.
  3. Include the Vultr kernel option.

1. Start with a Small Filesystem

When a customer deploys a Marketplace app, Vultr can expand your app to fill the filesystem but cannot shrink it. If you create a 20 GB Marketplace app, and the customer deploys an 80 GB subscription, Vultr will expand the app to fill the entire 80 GB filesystem. However, if you create an app with an 80 GB filesystem, customers cannot deploy the app on smaller Vultr instances.

2. Install cloud-init

Vultr Marketplace uses cloud-init to initialize the instance with network addresses, passwords, and startup scripts. These operating systems have the correct version of cloud-init pre-installed if you use Vultr's images:

  • Alma Linux
  • Arch Linux (located in Vultr Marketplace)
  • CentOS 8 Stream
  • Debian 11
  • Rocky linux
  • VZ Linux

Canonical added support for Vultr in cloud-init version 21.2. Until this version is available in your OS repository, please install Vultr's cloud-init. Please see the install_cloud_init() function in our helper script on GitHub, or follow the steps below.

RHEL, CentOS, and other yum-based distributions should install as follows.

# cd /tmp
# wget
# yum install -y cloud-init_rhel_latest.rpm

Debian must use this version. Do not compile from source or install from the Debian repositories.

# cd /tmp
# wget
# apt-get update -y
# apt-get install -y /tmp/cloud-init_debian_latest.deb

Ubuntu should use the universal build.

# cd /tmp
# wget
# apt-get update -y
# apt-get install -y /tmp/cloud-init_universal_latest.deb

NetworkManager Note

Cloud-init may not correctly interface with NetworkManager on some distros, such as CentOS and RHEL. On these distributions, the network will not be configured correctly, and the boot process fails. If this occurs, disable NetworkManager, then install and enable the network-scripts package. NetworkManager must be disabled but does not need to be uninstalled.

3. Set the Vultr Kernel Option

The Marketplace requires the kernel option vultr on Bare Metal instances. It's optional for cloud deployment, but it's a best practice to make your application compatible with both VPS and Bare Metal deployments. If your application is based on one of Vultr's OS images, this kernel option may already exist.

Check the Kernel Option

Check /etc/default/grub:

# grep 'vultr' /etc/default/grub

You may see vultr in the output:


If there is no vultr option, you must add it.

Add the Kernel Option

  1. Edit /etc/default/grub

    # nano /etc/default/grub
  2. Find the line starting with GRUB_CMDLINE_LINUX_DEFAULT and add vultr to the end.

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vultr"
  3. Save the file and close the editor.

  4. Update grub. Check the documentation for your distribution to determine the correct procedure. Ubuntu/Debian systems may use the update-grub utility.

    # update-grub


CentOS/RHEL systems may use this one-line solution to add the kernel option.

# /sbin/grubby --update-kernel=ALL --args vultr

Next Steps

After installing the required software, create your provisioning scripts and include any Marketplace variables you've defined.

More Information

For more information, see this example script, which installs cloud-init on an apt-based system.

This guide is part of the Vultr Marketplace documentation. Please see the documentation overview for more information.

Want to contribute?

You could earn up to $600 by adding new articles.