---
title: Apache CloudStack Downloads
---

<%
    #
    #  Version details in data/cloudstack.yml
    #
%>
<div class="row">

<div class="col-lg-12">

<div class="page-header">

<h1 id="indicators">Apache CloudStack: Downloads</h1>

</div>

</div>

</div>

<div class="bs-example">

<div class="row">

<div class="col-lg-6">

<h2>Latest CloudStack Release</h2>

<h4>Source Release</h4>

<p>Apache CloudStack's most current release is <%= data.cloudstack.versions.main %>.
</p>

<p>
    <a href="http://www.apache.org/dyn/closer.lua/cloudstack/releases/<%= data.cloudstack.versions.main %>/apache-cloudstack-<%= data.cloudstack.versions.main %>-src.tar.bz2">
        <button type="button" class="btn btn-primary btn-lg">
            Get the <%= data.cloudstack.versions.main %> Source!
        </button>
    </a>
    <a href="http://www.apache.org/dist/cloudstack/KEYS">
        <button type="button" class="btn btn-info btn-xs">
            KEYS
        </button>
    </a>
    <a href="http://www.apache.org/dist/cloudstack/releases/<%= data.cloudstack.versions.main %>/apache-cloudstack-<%=  data.cloudstack.versions.main %>-src.tar.bz2.asc">
        <button type="button" class="btn btn-info btn-xs">
            PGP
        </button>
    </a>
    <a href="http://www.apache.org/dist/cloudstack/releases/<%= data.cloudstack.versions.main %>/apache-cloudstack-<%=  data.cloudstack.versions.main %>-src.tar.bz2.md5">
        <button type="button" class="btn btn-info btn-xs">
            MD5
        </button>
    </a>
    <a href="http://www.apache.org/dist/cloudstack/releases/<%= data.cloudstack.versions.main %>/apache-cloudstack-<%=     data.cloudstack.versions.main %>-src.tar.bz2.sha512">
        <button type="button" class="btn btn-info btn-xs">
            SHA512
        </button>
    </a>
</p>

<% data.cloudstack.versions.others.each do |other_version| %>
<p>
    <a href="http://www.apache.org/dyn/closer.lua/cloudstack/releases/<%= other_version %>/apache-cloudstack-<%= other_version %>-src.tar.bz2">
        <button type="button" class="btn btn-primary btn-md">
            Get the <%= other_version %> Source!
        </button>
    </a>
    <a href="http://www.apache.org/dist/cloudstack/KEYS">
        <button type="button" class="btn btn-info btn-xs">
            KEYS
        </button>
    </a>
    <a href="http://www.apache.org/dist/cloudstack/releases/<%= other_version %>/apache-cloudstack-<%=  other_version %>-src.tar.bz2.asc">
        <button type="button" class="btn btn-info btn-xs">
            PGP
        </button>
    </a>
    <a href="http://www.apache.org/dist/cloudstack/releases/<%= other_version %>/apache-cloudstack-<%=  other_version %>-src.tar.bz2.md5">
        <button type="button" class="btn btn-info btn-xs">
            MD5
        </button>
    </a>
    <a href="http://www.apache.org/dist/cloudstack/releases/<%= other_version %>1/apache-cloudstack-<%=     other_version %>-src.tar.bz2.sha512">
        <button type="button" class="btn btn-info btn-xs">
            SHA512
        </button>
    </a>
</p>

<% end %>


<h4>Community Packages</h4>

<p>For easier installation or upgrades, the official source code release has been supplemented by community members who have chosen to provide package repositories that also include noredis libraries.</p>

<ul>
    <li>DEB repository: <a href="http://download.cloudstack.org/ubuntu">http://download.cloudstack.org/ubuntu</a></li>
    <li>CentOS/RHEL 6 RPM repository: <a href="http://download.cloudstack.org/centos/6/">http://download.cloudstack.org/centos/6/</a></li>
    <li>CentOS/RHEL 7 RPM repository: <a href="http://download.cloudstack.org/centos/7/">http://download.cloudstack.org/centos/7/</a></li>
</ul>

<p>Instructions for using these community provided repositories can be found in the <a href="http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/latest/management-server/index.html#configure-package-repository">Configure Package Repository</a> section of the Installation Guide.</p>


<h4>Third-Party Distributions</h4>

<ul>
    <li>CloudStack Packages by ShapeBlue: <a href="http://shapeblue.com/packages/">http://shapeblue.com/packages</a></li>
</ul>


</div>

<div class="col-lg-6">

<div class="panel panel-default">

<div class="panel-heading">

<h3 class="panel-title">Verifying Downloads</h3>

</div>

<div class="panel-body">

<p>
It's essential that you verify the integrity of the downloaded files using the PGP or MD5 signatures.
The PGP signatures can be verified using PGP or GPG. First download the
<a href="https://dist.apache.org/repos/dist/release/cloudstack/KEYS">KEYS</a> as well as the asc
signature file for the relevant distribution. Make sure you get these files from the
main distribution directory, rather than from a mirror. Then verify the signatures using:
</p>
<pre>
    % pgpk -a KEYS
    % pgpv apache-cloudstack-X.X.X-src.tar.bz2.asc
</pre>
<p>or</p>
<pre>
    % pgp -ka KEYS
    % pgp apache-cloudstack-X.X.X-src.tar.bz2.asc
</pre>
<p>or</p>
<pre>
    % gpg --import KEYS
    % gpg --verify apache-cloudstack-X.X.X-src.tar.bz2.asc
</pre>
<p>
Additionally, you can verify the MD5 or SHA512 signatures on the files.
</p>

</div>
</div>
</div>
</div>
</div>

<h4>Release Notes for CloudStack <%= data.cloudstack.versions.main %></h4>

<p>Full release notes can be found in the <a href="http://docs.cloudstack.apache.org/projects/cloudstack-release-notes/en/<%= data.cloudstack.versions.branch %>/">Version <%= data.cloudstack.versions.main %> Release Notes</a> document.</p>

<p>Instructions for building from source and installing Apache CloudStack can be found in the <a href="http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/latest/">Installation Guide</a>.</p>

<p>Instructions for building from source and upgrading from a previous version of CloudStack to Apache CloudStack <%= data.cloudstack.versions.main%> can be found in the upgrade section of the <a href="http://docs.cloudstack.apache.org/projects/cloudstack-release-notes/en/<%= data.cloudstack.versions.branch %>/">Release Notes</a>.</p>

<a name="cloudmonkey"></a>

<div class="row">

<div class="col-lg-12">

<div class="page-header">

<h2 id="indicators">Latest CloudMonkey Release</h2>

</div>

</div>

</div>

Apache CloudStack's CloudMonkey tool is a CLI and shell environment designed for interacting with CloudStack-based clouds.

#### Source Release

CloudMonkey's most current release is <%= data.cloudstack.cloudmonkey.version %>.

<p>
<a href="http://www.apache.org/dyn/closer.lua/cloudstack/releases/cloudmonkey-<%= data.cloudstack.cloudmonkey.version %>/apache-cloudstack-cloudmonkey-<%= data.cloudstack.cloudmonkey.version %>-src.tar.bz2"><button type="button" class="btn btn-primary btn-lg">Get the <%= data.cloudstack.cloudmonkey.version %> Source!</button></a>

<a href="http://www.apache.org/dist/cloudstack/KEYS"><button type="button" class="btn btn-info btn-xs">KEYS</button></a>
<a href="http://www.apache.org/dist/cloudstack/releases/cloudmonkey-<%= data.cloudstack.cloudmonkey.version %>/apache-cloudstack-cloudmonkey-<%= data.cloudstack.cloudmonkey.version %>-src.tar.bz2.asc"><button type="button" class="btn btn-info btn-xs">PGP</button></a>
<a href="http://www.apache.org/dist/cloudstack/releases/cloudmonkey-<%= data.cloudstack.cloudmonkey.version %>/apache-cloudstack-cloudmonkey-<%= data.cloudstack.cloudmonkey.version %>-src.tar.bz2.md5"><button type="button" class="btn btn-info btn-xs">MD5</button></a>
<a href="http://www.apache.org/dist/cloudstack/releases/cloudmonkey-<%= data.cloudstack.cloudmonkey.version %>/apache-cloudstack-cloudmonkey-<%= data.cloudstack.cloudmonkey.version %>-src.tar.bz2.sha"><button type="button" class="btn btn-info btn-xs">SHA</button></a>

</p>

Instructions for building and installing from source can be found in the included [README.md](https://gitbox.apache.org/repos/asf?p=cloudstack-cloudmonkey.git;a=blob_plain;f=README.md) file.

#### PyPi Package

For easier installation or upgrades, the official source code release has been supplemented by community members who have pushed the python package to the [Python Package Index](https://pypi.python.org/pypi/cloudmonkey/).

For installing the package from pypi, use:

    $ pip install cloudmonkey

To upgrade:

    $ pip install --upgrade cloudmonkey

Though a clean upgrade is recommended:

    $ pip uninstall cloudmonkey
    $ pip install cloudmonkey


<a name="archives"></a>

<div class="row">

<div class="col-lg-12">

<div class="page-header">

<h2 id="indicators">Archived Releases</h2>

You can find links to older releases of Apache CloudStack on the <a href="archives.html">archives page</a>.
