---
title: Apache CloudStack: Downloads
---

<div class="bs-example">

<div class="row">

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

<h2>Latest CloudStack Releases</h2>
<p>The CloudStack community maintains two types of releases; the main releases and the LTS (Long Term Support) releases. The LTS releases receive bug and security fixes for a period of two years (for more details <a href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/LTS"><i>click here</i></a>). The main releases receive only critical bug fixes for a short period. The general expectation is that the users of the 'main' will upgrade to a new version in order to receive fixes.</p>

<h3>Source Releases</h3>
<p>Apache CloudStack's most recent release is <%= data.cloudstack.versions.main %>.
</p>
<% if data.cloudstack.versions.main_islts %>
<p>This is current CloudStack LTS release.</p>
<% else %>
<p>This is non-LTS release of CloudStack.</p>
<% end %>

<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-md">
            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="https://dist.apache.org/repos/dist/release/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="https://dist.apache.org/repos/dist/release/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="https://dist.apache.org/repos/dist/release/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>

<p>Full release notes can be found in the <a href="http://docs.cloudstack.apache.org/en/<%= data.cloudstack.versions.main %>/releasenotes/">version <%= data.cloudstack.versions.main %> Release Notes</a> website.</p><br />

<% if data.cloudstack.versions.main_islts == false %>

<p>Apache CloudStack's previous LTS release was <%= data.cloudstack.versions.lts %>.
</p>

<p>
    <a href="http://www.apache.org/dyn/closer.lua/cloudstack/releases/<%= data.cloudstack.versions.lts %>/apache-cloudstack-<%= data.cloudstack.versions.lts %>-src.tar.bz2">
        <button type="button" class="btn btn-primary btn-md">
            Get the <%= data.cloudstack.versions.lts %> 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.lts %>/apache-cloudstack-<%= data.cloudstack.versions.lts %>-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.lts %>/apache-cloudstack-<%= data.cloudstack.versions.lts %>-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.lts %>/apache-cloudstack-<%= data.cloudstack.versions.lts %>-src.tar.bz2.sha512">
        <button type="button" class="btn btn-info btn-xs">
            SHA512
        </button>
    </a>
</p>

<p>Full release notes can be found in the <a href="http://docs.cloudstack.apache.org/projects/cloudstack-release-notes/en/<%= data.cloudstack.versions.lts %>/">version <%= data.cloudstack.versions.lts %> Release Notes</a> website.</p>
<% end %>
<p>Instructions for building from source and installing Apache CloudStack can be found in the <a href="http://docs.cloudstack.apache.org/en/<%= data.cloudstack.versions.main %>/installguide/">Installation Guide</a>. 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 Release Notes (see above).</p>

</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>

<h2>Packages</h2>

<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/en/4.11.2.0/installguide/management-server/#configure-package-repository">Configure Package Repository</a> section of the Installation Guide.</p>

<h4>Packages hosted by 3rd Parties</h4>

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

<div class="row">

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

<div class="page-header">

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

</div>

</div>

</div>

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

<h4 id="source-release">Source Release</h4>

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

<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-md">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>

<h4 id="github-release">Binary Builds Release</h4>

<p>For easier installation or upgrades, the official source code release has been supplemented by community members who have pushed the python package to the <a href="https://github.com/apache/cloudstack-cloudmonkey/releases">Apache CloudStack CloudMonkey Github release</a> page.</p>

<p>For installing, upgrade, usage, please see the project <a href="https://github.com/apache/cloudstack-cloudmonkey/wiki/Getting-Started#installation">wiki</a>.</p>

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

<div class="row">

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

<div class="page-header">

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

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

