<!DOCTYPE html>
<html>  
  <head>
    <title>Apache CloudStack: Open Source Cloud Computing</title>

    <meta name="description" content="CloudStack is open source cloud computing software for creating, managing, and deploying infrastructure cloud services">

    <meta itemprop="name" content="Apache Cloudstack">
    <meta itemprop="description" content="CloudStack is open source cloud computing software for creating, managing, and deploying infrastructure cloud services">
    <meta itemprop="image" content="https://cloudstack.apache.org/images/monkey-144.png">

    <meta property="og:title" content="Apache Cloudstack">
    <meta property="og:description" content="CloudStack is open source cloud computing software for creating, managing, and deploying infrastructure cloud services">
    <meta property="og:site_name" content="Apache Cloudstack"/>
    <meta property="og:image" content="https://cloudstack.apache.org/images/monkey-144.png">

    <meta name="twitter:card" content="summary">
    <meta name="twitter:title" content="Apache Cloudstack">
    <meta name="twitter:description" content="CloudStack is open source cloud computing software for creating, managing, and deploying infrastructure cloud services">
    <meta name="twitter:image:src" content="https://cloudstack.apache.org/images/monkey-144.png">

    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1">

    <link href="stylesheets/bootstrap.css" rel="stylesheet" media="screen">
    <link href="stylesheets/font-awesome.css" rel="stylesheet">
    <link href="stylesheets/bootswatch.min.css" rel="stylesheet">
    <link href="stylesheets/custom.css" rel="stylesheet">

    <link rel="shortcut icon" href="images/favicon.ico">
    <link rel="icon" href="images/favicon.ico">
    
<!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
        <!-- Twitter Bootstrap and jQuery after this line. -->
        <script src="https://code.jquery.com/jquery-latest.js"></script>
        <script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
        <script>
            $('.dropdown-toggle').dropdown();
            $('.nav-collapse').collapse();
        </script>
  </head>
  <body>
    <div class="navbar navbar-default navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <a href="index.html" class="navbar-brand"><img class="" src="images/new-logo-sm.png" style="width: 200px" alt="Apache Cloudstack"></a>
                <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#navbar-main">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
            </div>
            <div class="navbar-collapse collapse" id="navbar-main">
                <ul class="nav navbar-nav">
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="about">About <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="about">
                <li><a tabindex="-1" href="about.html">About</a></li>
                <li class="divider"></li>
                <li><a tabindex="-1" href="https://blogs.apache.org/cloudstack/" target="_blank">Blog<span class="glyphicon glyphicon-share-alt pull-right"></span></a></li>
                <li><a tabindex="-1" href="history.html">History</a></li>
                <li><a tabindex="-1" href="features.html">Features</a></li>
                <li><a tabindex="-1" href="cloudstack-faq.html">FAQ</a></li>
                <li><a tabindex="-1" href="who.html">Who We Are</a></li>
                <li><a tabindex="-1" href="security.html">Security</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="community">Community <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="community">
                <li><a tabindex="-1" href="contribute.html">Get Involved</a></li>
                <li><a tabindex="-1" href="developers.html">Developers</a></li>
                <li><a tabindex="-1" href="mailing-lists.html">Mailing Lists</a></li>
                <li><a tabindex="-1" href="http://cloudstackcollab.org/" target="_blank">Events &amp; Meetups <span class="glyphicon glyphicon-share-alt pull-right"></span></a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="users">Users <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="users">
                <li><a tabindex="-1" href="users.html">Known Users</a></li>
                <li><a tabindex="-1" href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/Case+Studies" target="_blank">Case Studies <span class="glyphicon glyphicon-share-alt pull-right"></span></a></li>
                <li><a tabindex="-1" href="survey.html">Take Survey</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="docs">Documentation <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="docs">
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org" target="_blank">CloudStack Documentation</span></a></li>
                <li><a tabindex="-1" href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/Home" target="_blank">Wiki</a></li>
                <li><a tabindex="-1" href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+Books" target="_blank">Books</a></li>
                <li><a tabindex="-1" href="api.html">API Documentation</a></li>
                <li class="divider"></li>
                <li><a tabindex="-1">Archived Documentation</a></li>
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org/projects/archived-cloudstack-getting-started" target="_blank">&nbsp;&nbsp;&nbsp;Getting Started Docs</span></a></li>
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org/projects/archived-cloudstack-installation" target="_blank">&nbsp;&nbsp;&nbsp;Installation Docs</a></li> 
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org/projects/archived-cloudstack-administration" target="_blank">&nbsp;&nbsp;&nbsp;Administration Docs</a></li>
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org/projects/archived-cloudstack-release-notes" target="_blank">&nbsp;&nbsp;&nbsp;Release Notes</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="download">Download <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="download">
                <li><a tabindex="-1" href="downloads.html">CloudStack Releases</a></li>
                <li><a tabindex="-1" href="downloads.html#cloudmonkey">CloudMonkey</a></li>
                <li><a tabindex="-1" href="archives.html">Release Archive</a></li>
              </ul>
            </li>
			<li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="apache">Apache <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="apache">
				<li><a tabindex="-1" href="http://apache.org">Apache Software Foundation</a></li>
                <li><a tabindex="-1" href="http://www.apache.org/licenses/">License</a></li>
                <li><a tabindex="-1" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a tabindex="-1" href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
              </ul>
            </li>
          </ul>
            </div>
        </div>
    </div>
    <div class="container">
        <div class="bs-docs-section">
            <div class="row">
  <div class="col-lg-12">
    <div class="bs-example">
      <div class="jumbotron">
        <div class="row">
          <div class="col-lg-8" style="margin-top:22px;">
            <h1 style="margin-top:28px;">Apache CloudStack&#8482;</h1>
            <p>Open Source Cloud Computing&#8482;</p>
          </div>

          <div class="col-lg-4">
            <img src="images/monkey.png" style="width: 210px; margin-left: 115px;" alt="Cloud friendly">
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

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

    <div class="panel panel-default">
      <div class="panel-heading">
        About CloudStack
      </div>
      <div class="panel-body">
        <p>Apache CloudStack is open source software designed to deploy and manage large networks of virtual machines, as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform. CloudStack is used by a number of service providers to offer public cloud services, and by many companies to provide an on-premises (private) cloud offering, or as part of a hybrid cloud solution.</p>
        <p>CloudStack is a turnkey solution that includes the entire "stack" of features most organizations want with an IaaS cloud: compute orchestration, Network-as-a-Service, user and account management, a full and open native API, resource accounting, and a first-class User Interface (UI).</p>
        <p>CloudStack currently supports the most popular hypervisors: VMware, KVM, Citrix XenServer, Xen Cloud Platform (XCP), Oracle VM server and Microsoft Hyper-V.</p>
        <p>Users can manage their cloud with an easy to use Web interface, command line tools, and/or a full-featured RESTful API. In addition, CloudStack provides an API that's compatible with AWS EC2 and S3 for organizations that wish to deploy hybrid clouds.</p>
        <a href="about.html"><button type="button" class="btn btn-info">Learn More</button></a>
      </div>
    </div>


    <div class="panel panel-default">
      <div class="panel-heading">
        Latest Announcements
        <a href="https://blogs.apache.org/cloudstack/feed/entries/atom"><img src="images/feed-icon-14x14.png" class="pull-right" alt=""></a>
      </div>
      <div class="panel-body">
        <div id="atom-cloudstack" style="margin-left: 4px;"></div>
      </div>
    </div>


    <div class="panel panel-default">
      <div class="panel-heading">
        CloudStack Events
      </div>
      <div class="panel-body" id="events">
        <h4>Upcoming CloudStack Events</h4>
        <p>There's always plenty of Cloudstack Events happening in different parts of the world. These range from Meetups, User Groups to <a href="http://cloudstackcollab.org/">CloudStack Collaboration Conference</a>
        events. Each event will feature a lot of opportunities to learn,
        collaborate and engage with the CloudStack community. The CloudStack
        Collaboration Conferences are valuable for both developers and users, and
        are a great way to get involved with the community.</p>
        <ul type="disc" style="padding-inline-start: 15px">
          <div id="csv-events"></div> 
        </ul>
        <p> View videos from previous CloudStack Collaboration Conferences:</p>
        <ul type="disc" style="padding-inline-start: 15px">
            <li>
                <a
                    href="https://www.youtube.com/playlist?list=PLU2OcwpQkYCwcPxZMKX2BFoKE0Z7g1ENH"
                    target="_blank">
                    CloudStack Collaboration Conference June 2018 in Montreal
                </a>
            </li>  
            <li>
                <a
                    href="https://www.youtube.com/playlist?list=PLCfLScXpEyAS4YkJpeqDriP7JcU82Tx2r"
                    target="_blank">
                    CloudStack Collaboration Conference June 2016 in Montreal
                </a>
            </li>
            <li>
                <a
                    href="https://www.youtube.com/playlist?list=PLGeM09tlguZSeNyOyQKJHNX4pxgK-yoTA"
                    target="_blank">
                    CloudStack Collaboration Conference Europe 2015 in Dublin
                </a>
            </li>
        </ul>
      </div>
    </div>


    <div class="panel panel-default">
      <div class="panel-heading">
        Join Us
      </div>
      <div class="panel-body">
	<p>Learn more about getting involved with Apache CloudStack on the <a href="contribute.html">Contributing to Apache CloudStack</a> page, or go straight to our <a href="developers.html">Developer Resources</a> page.</p>
      </div>
    </div>
    
    
  </div>
  
  <div class="col-lg-6">


    <div class="panel panel-default">
      <div class="panel-heading">
        Get CloudStack
      </div>
      <div class="panel-body">
        <p class="text-warning">Apache CloudStack 4.12.0.0 is out!</p>
          <p>This is non-LTS release of CloudStack.</p>
        <a href="downloads.html"><button type="button" class="btn btn-success">Download</button></a>
        <a href="http://docs.cloudstack.apache.org/en/4.12.0.0/"><button type="button" class="btn btn-success">Documentation</button></a>
        <p style="margin-top: 20px;">If you prefer proven stability rather than the newest features, please take a look at the previous LTS release.</p>
        <p class="text-warning">Previous Apache CloudStack LTS Release is 4.11.2.0.</p>
        <a href="downloads.html"><button type="button" class="btn btn-success">Download</button></a>
        <a href="http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/4.11/"><button type="button" class="btn btn-success">Documentation</button></a>
        <p style="margin-top: 20px;">
        Looking for other versions of Apache CloudStack? You can find them in our <a href="archives.html">archives</a> page as well.
        </p>
      </div>
    </div>


    <div class="panel panel-default">
      <div class="panel-heading">
        What are people saying?
      </div>
      <div class="panel-body">
        <div class="tw">
          <a class="twitter-timeline" data-height="1000" data-theme="light" href="https://twitter.com/CloudStack?ref_src=twsrc%5Etfw">Tweets by CloudStack</a>
          <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 
        </div>
      </div>
    </div>
  </div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="javascripts/FeedEk.min.js"></script>

<script type="text/javascript">
  $(function () {
    $('#atom-cloudstack').FeedEk({
      FeedUrl: 'https://blogs.apache.org/cloudstack/feed/entries/atom',
      ShowDesc: false,
      MaxCount: 3,
      DateFormat: 'D',
      DateFormatLang: 'en'
    });
  });
</script>

<script type="text/javascript">
  $(document).ready(function() {
    $.ajax({
      type: "GET",
      // github controlled datasource
      url: "https://raw.githubusercontent.com/apache/cloudstack-www/master/data/acs-events.csv",
      dataType: "text",
      success: function(data) {processData(data);}
    });
  });
  
 function processData(data) {
      var lines = data.split(/\r\n|\n/);

      //Set up the data arrays

      var event_title = [];
      var event_link = [];
      var event_location = [];
      var event_date = [];

      var headings = lines[0].split(','); // Splice up the first row to get the headings - not used after atm

      for (var j=1; j<lines.length; j++) {
      var values = lines[j].split(','); // Split up the comma seperated values
         // read in event details as arrays 
         event_title.push(values[0]); 
         event_link.push(values[1]);
         event_location.push(values[2]);
         event_date.push(values[3]);
      }
// alert(lines);

    var div = document.getElementById("csv-events");
    var html = "";
    for (var i=0;i<lines.length;i++) {
      if (typeof event_location[i] !== "undefined") {
        html += '<li> <a href=\"' + event_link[i] + '\" target=\"_blank\">' + event_title[i] + "</a> , " + event_location[i] + ", " + event_date[i] + "</li>";
      }
    }
    
    // write html to page
    div.innerHTML = html;
}
	
</script>



            <footer>
                <p>Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br/>
                "Apache", "CloudStack", "Apache CloudStack", the Apache CloudStack logo, the Apache CloudStack Cloud Monkey logo and the Apache feather logos are registered trademarks or trademarks of The Apache Software Foundation.</p>
                <p><a href="/trademark-guidelines.html">Apache CloudStack Trademark Usage</a> - <a href="/bylaws.html">Apache CloudStack Community ByLaws</a></p>
            </footer>

        </div>
    </div>
</div>
  </body>
</html>
