<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Apache Usergrid — </title>
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
    <meta name="keywords" content="Apache Usergrid, Usergrid, BaaS, Backend-as-a-Service">
    <meta name="description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
    <meta property="og:title" content="Apache Usergrid" />
    <meta property="og:description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
    <!-- Loading Typekit -->
    <script type="text/javascript" src="//use.typekit.net/ddl7izx.js"></script>
    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
    <!-- Loading Bootstrap -->
    <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type='text/css'>
    <link href="/css/bootflat.css" rel="stylesheet" type='text/css'>
    <link href="/css/usergrid-site.css" rel="stylesheet" type='text/css'>
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:200,400,500,300,600,800,700,400italic,600italic,700italic,800italic,300italic" rel="stylesheet" type="text/css">
    <link href="/css/font-awesome.min.css" rel="stylesheet" type='text/css'>

    

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
    <!--[if lt IE 9]>
      <script src="js/html5shiv.js"></script>
      <script src="js/respond.min.js"></script>
    <![endif]-->
</head>
<body>

    <header class="navbar navbar-inverse navbar-fixed-top bf-docs-nav " role="banner">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bf-navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <a href="/" class="navbar-brand">
                <img id="home-logo" src="/img/apache_usergrid_logo_white_small.png" />
            </a>
        <nav class="collapse navbar-collapse bf-navbar-collapse" role="navigation">
            <ul class="nav navbar-nav navbar-right">
                <li class=""><a href="/community/"><span class="icns icon-group"></span></a></li>
                <li><a href="/docs" target="_blank"><span class="icns icon-book"></span></a></li>
                <li><a href="http://github.com/apache/usergrid" target="_blank"><span class="icns icon-github-sign"></span></a></li>
                <!--<li><a href="https://trello.com/b/exQmJIOn/usergrid" target="_blank"><span class="icns icon-trello"></span></a></li>-->
                <li><a href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=23&view=planning&selectedIssue=USERGRID-362&epics=visible" 
                       target="_blank"><span class="icns icon-bug"></span></a></li>
                <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank"><span class="icns icon-stackexchange"></span></a></li>
                <li><a href="/community/#live"><span class="icns icon-comments"></span></a></li>
                <!--<li><a href="https://groups.google.com/forum/#!forum/usergrid" target="_blank"><span class="icns icon-envelope"></span></a></li>-->
                <li><a href="https://twitter.com/usergrid" target="_blank"><span class="icns icon-twitter"></span></a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/usergrid/" target="_blank"><span class="icns icon-wiki"></span></a></li>
                <li><a href="/releases/"><span class="icns icon-releases"></span></a></li>
            </ul>
        </nav>
    </div>
    </header>




<section class="bf-tagline">
    <div class="container">
    	<div class="row">
    	    <div class="col-md-12">
    	    	<h2>Usergrid Releases</h2>
			</div>
		</div>
	</div>
</section> 

<section class="bf-releases">
    <div class="container">
    	<div class="row">
    	    <div class="col-md-12" id="events">
    	    	<h2 class="icns-download"><span>Releases</span></h2>
			</div>
		</div>
		</br>
		<div class="row">
    		<div class="col-md-9 done">
    			<p>
				Releases of Usergrid are made available to the general public at no charge, under the <a href="http://apache.org/licenses/">Apache License</a>, in both binary and source distributions.
				</p>
				<p>
					General Availability (GA) Releases - Usergrid 2.1.0
				</p>
				<p>
					Download the release from a <a href="http://www.apache.org/dyn/closer.cgi/usergrid/usergrid-2/v2.1.0">mirror: http://www.apache.org/dyn/closer.cgi/usergrid/usergrid-2/v2.1.0</a>
				</p>
				<p>
					Project releases are approved by vote of the Apache Usergrid Project Management Committee (PMC). Support for a release is provided by project volunteers on the project <a href="http://usergrid.apache.org/community/#mailing-lists">mailing lists</a>. Bugs found in a release may be discussed on the list and reported through the <a href="https://issues.apache.org/jira/browse/USERGRID">issue tracker</a>. The user mailing list and issue tracker are the only support options hosted by the Apache Usergrid project.
				</p>
				<p>
					Note: When downloading from a mirror, please be sure to verify that checksums and signatures are correct. To do so, use the checksum and signature files from the main Apache site at <a href="https://dist.apache.org/repos/dist/release/usergrid/usergrid-2/v2.1.0/">https://dist.apache.org/repos/dist/release/usergrid/usergrid-2/v2.1.0/</a>. Find here the KEYS file, which contains all OpenPGP keys we use to sign releases here: <a href="https://dist.apache.org/repos/dist/release/usergrid/KEYS">https://dist.apache.org/repos/dist/release/usergrid/KEYS</a>
				</p>
				<p>
					The PGP signatures can be verified using PGP or GPG. First download the <a href="https://dist.apache.org/repos/dist/release/usergrid/KEYS">KEYS</a> as well as the <a href="https://dist.apache.org/repos/dist/release/usergrid/usergrid-2/v2.1.0/">asc signature</a> file for the particular distribution. Then verify the signatures using:
				</p>
				<p>
       				% pgpk -a KEYS
					</br></br>
        			% pgpv ${filename}.tar.gz.asc
        			</br></br>
    				or
    				</br></br>
        			% pgp -ka KEYS
        			</br></br>
        			% pgp ${filename}.tar.gz.asc
        			</br></br>
    				or
    				</br></br>
        			% gpg --import KEYS
        			</br></br>
        			% gpg --verify ${filename}.tar.gz.asc
        			</br></br>
        		</p>
    			<p>
					Alternatively, you can verify the MD5 signature on the files. A Unix program called md5 or md5sum is included in many Unix distributions. It is also available as part of <a href="http://www.gnu.org/software/textutils/textutils.html">GNU Textutils</a>. Windows users can get binary md5 programs from <a href="http://www.fourmilab.ch/md5/">here</a>, <a href="http://www.pc-tools.net/win32/md5sums/">here</a>, or <a href="http://www.slavasoft.com/fsum/">here</a>.
			</div>
		</div>
	</div>
</section>




<footer class="bf-footer" role="contentinfo">
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header"><a href="/">Home</a></li>
                    <li class="nav-header"><a href="/community/">Community</a></li>
                        <li><a href="/community/#events">Events</a></li>
                        <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
                        <li><a href="/community/#deployments">Deployments</a></li>
                        <li><a href="/community/#committers">Commiters</a></li>
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header"><a href="https://github.com/apache/usergrid/" target="_blank">Code</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/stack" target="_blank">Server Stack</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/portal" target="_blank">Admin Portal</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/ugc" target="_blank">ugc command line</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/ios" target="_blank">iOS SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/android" target="_blank">Android SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/html5-javascript" target="_blank">HTML5/JS SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/nodejs" target="_blank">node.js module</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/ruby-on-rails" target="_blank">Ruby on Rails gem</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/ruby" target="_blank">Ruby gem</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/php" target="_blank">PHP SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/java" target="_blank">Java SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/dotnet" target="_blank">.NET / Windows SDK</a></li>
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header">Resources</li>
                    <li><a href="http://github.com/apache/usergrid" target="_blank">GitHub Code</a></li>
                    <li><a href="docs" target="_blank">Docs</a></li>
                    <li><a href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=23&view=planning&selectedIssue=USERGRID-362&epics=visible" target="_blank">JIRA Bug Tracker</a></li>
                    <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank">StackOverflow</a></li>
                    <li><a href="/community/#live">Live Chat</a></li>
                    <li><a href="https://twitter.com/usergrid" target="_blank">Twitter</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/stack#requirements" target="_blank">Getting Started</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/usergrid/GitHub+Based+Contribution+Workflow" target="_blank">Contribution Guidelines</a></li>
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header">Apache</li>
                    <li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
                    <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
                    <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                    <li><a href="http://www.apache.org/security/">Security</a></li>
                    <li><a href="http://www.apache.org/" target="_blank">Apache Foundation</a></li>
                </ul>
            </div>
            <div class="col-md-4">
                <a class="twitter-timeline" href="https://twitter.com/search?q=%23usergrid" data-widget-id="401499136807038976"  data-related="usergrid" height="400px" style="overflow:hidden">Tweets about "usergrid"</a>
                <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
            </div> 
        <!--
            <div class="col-md-4">
                <div class="input-group form-search">
                    <input type="text" class="form-control search-query">
                    <span class="input-group-btn">
                        <button type="submit" class="btn btn-primary" data-type="last">Search</button>
                    </span>
                </div>
            </div> -->
        </div> 
        <div class="row">
            <div id="copyright">
                <img src="/img/egg-logo.png" /><br/><br/>
                <p>Copyright © 2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
                Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
                <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> .</p>
            </div>
        </div>
    </div>
</footer>

<script type="text/javascript" src="/js/head.js"></script>
<script type="text/javascript">
    head.js("/js/jquery-1.10.1.min.js", "/js/bootstrap.min.js", "/js/usergrid-site.js");
</script>
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-45815079-1', 'apache.org');
  ga('send', 'pageview');

</script>



</body>
</html>
