---
title: History of Apache CloudStack
---

<div class="row">

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

<div class="page-header">

<h1 id="indicators">CloudStack's History</h1>

</div>

</div>

</div>

The CloudStack project began as a project of a start-up known as VMOps in 2008. The company eventually changed its name to Cloud.com, and it released much of the source to CloudStack in May 2010 under the GNU General Public License version 3 (GPLv3).

Cloud.com was purchased in July 2011 by Citrix, and the remainder of CloudStack's code was released (again, under the GPLv3) in August 2011. Citrix released CloudStack 3.0 in early 2012.

In April 2012, Citrix re-licensed CloudStack under the Apache Software License 2.0 (ASLv2) and submitted CloudStack to the [Apache Incubator](http://incubator.apache.org/). It was [accepted into the Incubator on April 16th, 2012](http://incubator.apache.org/projects/cloudstack.html).

After getting its infrastructure and community processes in place, CloudStack made its first major release (4.0.0-incubating) from the Apache Incubator on November 6th, 2012. The first minor release (4.0.1-incubating) came out on February 12, 2013.

Apache CloudStack graduated from the Incubator on March 20, 2013, and the announcement was released on [March 25, 2013](https://blogs.apache.org/cloudstack/entry/the_apache_software_foundation_announces).

