---
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 %>1/apache-cloudstack-<%=     data.cloudstack.versions.main %>-src.tar.bz2.sha">
        <button type="button" class="btn btn-info btn-xs">
            SHA
        </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.sha">
        <button type="button" class="btn btn-info btn-xs">
            SHA
        </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://cloudstack.apt-get.eu/ubuntu">http://cloudstack.apt-get.eu/ubuntu</a></li>
    <li>CentOS/RHEL 6 RPM repository: <a href="http://cloudstack.apt-get.eu/centos/6/">http://cloudstack.apt-get.eu/centos/6/</a></li>
    <li>CentOS/RHEL 7 RPM repository: <a href="http://cloudstack.apt-get.eu/centos/7/">http://cloudstack.apt-get.eu/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/4.8/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.branch %></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.main %>/">Version <%= data.cloudstack.versions.branch %> 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/<%= data.cloudstack.versions.branch %>/">Installation Guide</a>.</p>

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