brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tbou...@apache.org
Subject [19/25] brooklyn-docs git commit: Move website content up a level and simplify config
Date Fri, 16 Feb 2018 10:26:58 GMT
http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/index.md
----------------------------------------------------------------------
diff --git a/index.md b/index.md
index f5f5862..e3f8099 100644
--- a/index.md
+++ b/index.md
@@ -1,19 +1,221 @@
 ---
-layout: website-normal
-title: Brooklyn Website and Docs (dev build)
+layout: website-landing
+title: Home
+children:
+- learnmore/
+
+- link: /v/latest/start/index.html
+  title_in_menu: Get Started
+  href_link: /v/latest/start/index.md
+  menu:
+  - link: /v/latest/start/running.html
+    title_in_menu: "Running Apache Brooklyn"
+    not_external: true
+
+  - link: /v/latest/start/blueprints.html
+    title_in_menu: "Deploying Blueprints"
+    not_external: true
+
+  - link: /v/latest/start/managing.html
+    title_in_menu: "Monitoring and Managing Applications"
+    not_external: true
+
+  - link: /v/latest/start/policies.html
+    title_in_menu: "Policies"
+    not_external: true
+
+  - link: /v/latest/start/concept-quickstart.html
+    title_in_menu: "Brooklyn Concepts Quickstart"
+    not_external: true
+
+- path: documentation/
+  menu:
+
+  - link: /v/latest/index.html
+    title_in_menu: "User Guide"
+    menu_customization: { dropdown_section_header: true }
+    not_external: true
+
+  - link: /v/latest/blueprints/creating-yaml.html
+    title_in_menu: Writing Blueprints
+    not_external: true
+
+  - link: /v/latest/locations/index.html
+    title_in_menu: Deploying Blueprints
+    not_external: true
+
+  - link: /v/latest/ops/index.html
+    title_in_menu: Reference Guide
+    menu_customization: { dropdown_section_header: true }
+    not_external: true
+
+  - link: /v/latest/dev/index.html
+    title_in_menu: Developer Guide
+    not_external: true
+
+  - path: meta/versions.md
+    title_in_menu: Versions
+    menu_customization: { dropdown_new_section: true }
+
+  - path: documentation/other-docs.md
+    title_in_menu: Other Resources
+
+- community/
+
+- developers/
+
+- path: download/
+  menu: null
+  type: button
+  menu_customization: {type: button}
 ---
 
-<i>This page is not copied into release builds. It is here as a convenience when doing dev builds.</i>
+<section class="text-center hero" markdown="1">
+
+# <span class="text-apache">apache</span> <span class="text-brooklyn">brooklyn</span>
+
+## Your applications, any clouds, any containers, anywhere.
+ 
+<a href="#get-started" class="btn btn-primary btn-lg">Get started</a>
+<a href="https://github.com/apache/brooklyn" class="btn btn-link btn-lg"><i class="fa fa-fw fa-github"></i> View code</a>
+
+</section>
+
+<section class="container about">
+<h3 class="text-center">Use Apache brooklyn for &hellip;</h3>
+<div class="row">
+
+<div class="col-md-4" markdown="1">
+<p>
+<span class="fa-stack fa-2x">
+<i class="fa fa-circle-thin fa-stack-2x "></i>
+<i class="fa fa-archive fa-stack-1x modeling"></i>
+</span>
+</p>
+
+#### Modeling
+
+*Blueprints* describe your application, stored as *text files* in *version control*
+
+*Compose* from the [*dozens* of supported components](learnmore/catalog/) or your *own components* using *bash, Java, Chef...*
+
+<div class="text-muted" markdown="1">
+#### JBoss &bull; Cassandra &bull; QPid &bull; nginx &bull; [many more](learnmore/catalog/)
+</div>
+</div>
+
+<div class="col-md-4" markdown="1">
+<p>
+<span class="fa-stack fa-2x">
+<i class="fa fa-circle-thin fa-stack-2x "></i>
+<i class="fa fa-rocket fa-stack-1x deploying"></i>
+</span>
+</p>
+
+#### Deploying
+
+Components *configured &amp; integrated* across *multiple machines* automatically
+
+*20+ public clouds*, or your *private cloud* or bare servers - and *Docker* containers
+
+<div class="text-muted" markdown="1">
+#### Amazon EC2 &bull; CloudStack &bull; OpenStack &bull; SoftLayer &bull; many more
+</div>
+</div>
+
+<div class="col-md-4" markdown="1">
+<p>
+<span class="fa-stack fa-2x">
+<i class="fa fa-circle-thin fa-stack-2x "></i>
+<i class="fa fa-cog fa-stack-1x managing"></i>
+</span>
+</p>
+
+#### Managing
+
+*Monitor* key application *metrics*; *scale* to meet demand; *restart* and *replace* failed components
 
-Consider looking at:
+View and modify using the *web console* or automate using the *REST API*
 
-* <a href="{{ site.path.website }}/">the brooklyn website</a>
-* <a href="{{ site.path.guide }}/">the brooklyn user guide (version 1.0.0-SNAPSHOT) <!-- BROOKLYN_VERSION --></a>
+<div class="text-muted" markdown="1">
+#### Metric-based autoscaler &bull; Restarter &amp; replacer &bull; Follow the sun &bull; Load balancing 
+</div>
 
-Also see the file <code>README.md</code> in this directory.
+</div>
+</div>
+</section>
 
-For reference, this build uses the following variables:
 
-* url root:  `{{ site.url_root }}`
-* path map: `{{ site.path }}`
+<section class="jumbotron get-started" id="get-started">
+  <div class="container">
+    <div class="row">
+      <div class="col-md-12">
+        <h3 class="text-center">Get started</h3>
+        <div class="shell">
+          <div class="shell-toolbar">
+            <i class="red"></i>
+            <i class="yellow"></i>
+            <i class="green"></i>
+            <span>bash</span>
+          </div>
+{% highlight bash %}
+curl -SL --output apache-brooklyn-{{site.brooklyn-stable-version}}-vagrant.tar.gz "https://www.apache.org/dyn/closer.lua?action=download&filename=brooklyn/apache-brooklyn-{{site.brooklyn-stable-version}}/apache-brooklyn-{{site.brooklyn-stable-version}}-vagrant.tar.gz"
+tar xvf apache-brooklyn-{{site.brooklyn-stable-version}}-vagrant.tar.gz
+cd apache-brooklyn-{{site.brooklyn-stable-version}}-vagrant
+vagrant up brooklyn
+{% endhighlight %}
+        </div>
+        <div class="text-muted row">
+          <div class="col-md-9">Paste the above at a Terminal prompt. It will download and start Brooklyn automatically.</div>
+          <div class="col-md-3 text-rigth">Looking for <a href="{{ site.path.guide }}/start/running.html">more installation options?</a></div>
+        </div>
+        <p>Congratulation! Next, let's <a href="{{ site.path.guide }}/start/blueprints.html">deploy a blueprint</a>.</p>
+      </div>
+    </div>
+  </div>
+</section>
 
+<section class="container text-center social">
+    <div class="row">
+        <div class="col-md-12">
+            <h3 class="text-center">Get in touch</h3>
+            <p>The community is available on the following channels in case you need anything</p>
+        </div>
+        <div class="col-sm-4">
+            <a href="http://webchat.freenode.net/?channels=brooklyncentral"
+               data-toggle="tooltip" data-placement="bottom" title="IRC: freenode #brooklyncentral">
+                <p>
+                    <span class="fa-stack fa-2x">
+                        <i class="fa fa-circle-thin fa-stack-2x"></i>
+                        <i class="fa fa-slack fa-stack-1x"></i>
+                    </span>
+                </p>
+                <h4 id="deploy">IRC</h4>
+            </a>
+        </div>
+        <div class="col-sm-4">
+            <a href="https://lists.apache.org/list.html?dev@brooklyn.apache.org"
+               data-toggle="tooltip" data-placement="bottom" title="Mailing list: dev@brooklyn.apache.org">
+                <p>
+                    <span class="fa-stack fa-2x">
+                        <i class="fa fa-circle-thin fa-stack-2x"></i>
+                        <i class="fa fa-envelope-o fa-stack-1x"></i>
+                    </span>
+                </p>
+                <h4 id="deploy">Mailing list</h4>
+            </a>
+        </div>
+        <div class="col-sm-4">
+            <a href="https://twitter.com/#!/search?q=brooklyncentral"
+               data-toggle="tooltip" data-placement="bottom" title="Twitter: @brooklyncentral"/>
+                <p>
+                    <span class="fa-stack fa-2x">
+                        <i class="fa fa-circle-thin fa-stack-2x"></i>
+                        <i class="fa fa-twitter fa-stack-1x"></i>
+                    </span>
+                </p>
+                <h4 id="deploy">Twitter</h4>
+            </a>
+        </div>
+    </div>
+</section>

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/blueprint-tour.md
----------------------------------------------------------------------
diff --git a/learnmore/blueprint-tour.md b/learnmore/blueprint-tour.md
new file mode 100644
index 0000000..0a7795b
--- /dev/null
+++ b/learnmore/blueprint-tour.md
@@ -0,0 +1,191 @@
+---
+layout: website-normal
+title: A Quick Tour of a Brooklyn Blueprint
+title_in_menu: Blueprint Tour
+---
+
+<div class="jumobotron annotated_blueprint" markdown="1">
+  <div class="code_scroller">
+    <div class="initial_notice"><div><div>
+      Hover over an element to learn more
+      <div class="ann_light">This message will go away in <span id="countdown">3s</span></div>
+      <div class="ann_play fa fa-play-circle-o"></div>
+    </div></div></div>
+    <div class="code_viewer">
+  
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div class="annotations">
+        <div class="short">
+          Describe your application
+        </div>
+        <div class="long"><p>
+            Start by giving it a name, 
+            optionally adding a version and other metadata.
+            The format is YAML -- a human-friendly extension to JSON --
+            following the  
+            <a href="{{ site.path.website }}/learnmore/theory.html#standards">CAMP</a> standard.
+          </p><p>
+            Treat it like source code: use comments, version control it, test it with CI.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div><span class="ann_highlight"># java chatroom with ruby chatbot and couchbase backend (example)</span>    
+name: Chatroom with Chatbot
+services:</div></div>
+    
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div class="annotations">
+        <div class="short">
+          Compose blueprints
+        </div>
+        <div class="long"><p>
+            Choose your building blocks from a large curated catalog,  
+            and compose them together to form new blueprints
+            you can deploy and share.
+          </p><p>
+            Customize with config keys, such as the initial size
+            and, for Couchbase, the data buckets required.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div><span class="ann_highlight">- type: couchbase-cluster</span>
+  initialSize: 3
+  createBuckets: [{ bucket: chatroom }]
+  id: chat-couchbase</div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div class="annotations">
+        <div class="short">
+          Run scripts and recipes
+        </div>
+        <div class="long"><p>
+            Use bash, with variables supplied by Brooklyn;
+            or Chef recipes, with attributes passed from config;
+            or package managers, dockerfiles, etc.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>- type: bash-server
+  launch.command: |
+<span class="ann_highlight">    wget http://example.com/couchbase-chat/chat-bot/{server.rb,Gemfile,install_ruby_and_libs.sh}
+    bash install_ruby_and_libs.sh
+    ruby ./server.rb $COUCHBASE_URL</span></div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div class="annotations">
+        <div class="short">
+          Inject dependencies
+        </div>
+        <div class="long"><p>
+            Connect entities with each other using 
+            <i>sensors</i> published at runtime to give
+            just-in-time resolution for
+            shell variables, template expansion, REST calls,
+            and any other "happens-before" or "on-change" behaviour.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>  shell.env:
+    COUCHBASE_URL:
+<span class="ann_highlight">      $brooklyn:entity("chat-couchbase").
+        attributeWhenReady("couchbase.cluster.connection.url")</span></div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div class="annotations">
+        <div class="short">
+          Configure locations
+        </div>
+        <div class="long"><p>
+            Give generic VM properties or specific images and flavors.
+            Networking topologies and geographic constraints are also supported.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>  provisioning.properties:
+<span class="ann_highlight">    osFamily: ubuntu
+    minRam: 4gb</span>
+</div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div class="annotations">
+        <div class="short">
+          Extend using Java
+        </div>
+        <div class="long"><p>
+            Create new entities, policies, and "effector" operations
+            using Java or JVM bridges to many languages, workflow systems,
+            or PaaSes.
+          </p><p>
+            Add new blueprints to the catalog, dynamically,
+            with versions and libraries handled 
+            under the covers automatically with OSGi.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>- type: <span class="ann_highlight">org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster:1.1.0</span>
+  war: http://example.com/couchbase-chat/chatroom.war
+  java.sysprops:
+    chat.db.url: $brooklyn:entity("chat-couchbase").attributeWhenReady("couchbase.cluster.connection.url")</div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div class="annotations">
+        <div class="short">
+          Attach management logic
+        </div>
+        <div class="long"><p>
+          Set up policies which subscribe to real-time metric sensors
+          to scale, throttle, failover, or follow-the-{sun,moon,action,etc}.
+          Cloud should be something that <i>applications</i> consume, not people!
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>  brooklyn.policies:
+  - type: <span class="ann_highlight">autoscaler</span>
+    brooklyn.config:
+      metric: $brooklyn:sensor("webapp.reqs.perSec.windowed.perNode")
+      metricLowerBound: 400
+      metricUpperBound: 600</div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div class="annotations">
+        <div class="short">
+          Run across many locations
+        </div>
+        <div class="long"><p>
+          Blueprints are designed for portability.
+          Pick from dozens of clouds in hundreds of datacenters. 
+          Or machines with fixed IP addresses, localhost, 
+          Docker on <a href="http://clocker.io">Clocker</a>, etc.
+        </p><p>
+          And you're not limited to servers:
+          services, PaaS, even networks can be locations.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>location:
+  <span class="ann_highlight">jclouds:aws-ec2</span>:
+    region: us-east-1
+    identity: <i>AKA_YOUR_ACCESS_KEY_ID</i>
+    credential: <i>[access-key-hex-digits]</i></div></div>
+
+  </div></div>
+</div>
+
+<script language="JavaScript" type="application/javascript">
+
+{% comment %}
+I've done all I could manage with pure CSS. Just one thing, the bg color
+on hover doesn't apply full width to the row if it extends the code_scroller.
+Fix it with JS. 
+
+Also resize the warning to be full size, and after first hover get rid of it.
+{% endcomment %} 
+
+$(function() {
+  maxCodeWidth = Math.max.apply(Math, $(".annotated_blueprint div.block > div:last-child").map(function(){ return this.scrollWidth; }).get());
+  $(".annotated_blueprint div.block").width(maxCodeWidth);
+})
+
+$(".annotated_blueprint .code_scroller .initial_notice > div").height($(".annotated_blueprint .code_scroller .code_viewer").height());
+$(".annotated_blueprint .code_scroller .initial_notice > div").width($(".annotated_blueprint .code_scroller").width());
+$(".annotated_blueprint .code_scroller").hover(function() {
+  $(".annotated_blueprint .initial_notice").css("display", "none");
+});
+$(function() {
+  setTimeout(function() { $(".annotated_blueprint .initial_notice").hide(400); }, 3000);
+  setTimeout(function() { $(".annotated_blueprint #countdown").text("2s"); }, 1000);
+  setTimeout(function() { $(".annotated_blueprint #countdown").text("1s"); }, 2000);
+});
+</script>

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/catalog/catalog-item.html
----------------------------------------------------------------------
diff --git a/learnmore/catalog/catalog-item.html b/learnmore/catalog/catalog-item.html
new file mode 100644
index 0000000..ab9b5b7
--- /dev/null
+++ b/learnmore/catalog/catalog-item.html
@@ -0,0 +1,137 @@
+---
+title: Catalog
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+  <title>Brooklyn Entity - Brooklyn Node</title>
+  <meta name="fragment" content="!">
+
+  {% include head.html %}
+  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+  <link rel="stylesheet" href="{{site.path.style}}/css/catalog_items.css" type="text/css" media="screen"/>
+</head>
+<body>
+{% include header.html %}
+<div id="container">
+  <div id="summary"></div>
+
+  <ul class="nav nav-tabs">
+    <li class="active"><a href="#configKeys" data-toggle="tab">Config Keys</a></li>
+    <li id="sensorsTab"><a href="#sensors" data-toggle="tab">Sensors</a></li>
+    <li id="effectorsTab"><a href="#effectors" data-toggle="tab">Effectors</a></li>
+  </ul>
+
+  <div class="tab-content">
+    <div class="tab-pane active" id="configKeys"></div>
+    <div class="tab-pane" id="sensors"></div>
+    <div class="tab-pane" id="effectors"></div>
+  </div>
+</div>
+
+<script src="{{site.path.style}}/js/underscore-min.js" type="text/javascript"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+<script src="{{site.path.style}}/js/catalog/common.js" type="text/javascript"></script>
+<script src="{{site.path.style}}/js/catalog/items.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+  $(document).ready(function () {
+    $(window).on('hashchange', updateItem);
+
+    updateItem(items);
+
+    function updateItem(items) {
+      var args, catalog_type;
+      args = getArgs();
+      if(args.length!=2) {
+        alert('bad entity format')
+        return;
+      }
+
+      // e.g. entities/org.apache.brooklyn.entity.brooklynnode.BrooklynNode
+      if (!brooklyn) return;
+      var item = brooklyn.findItemOfType(items[args[0]], args[1]);
+
+      $("#summary").html(brooklyn.typeSummary(item));
+      if(args[0] == 'entities') {
+        catalog_type = 'Entity';
+      } else if(args[0] == 'policies') {
+        catalog_type = 'Policy';
+      } else if(args[0] == 'locations') {
+        catalog_type = 'Location'
+      }
+
+      document.title = 'Brooklyn ' + catalog_type + ' - ' + item.name;
+
+      item.config.forEach(function (element) {
+        $("#configKeys").append(brooklyn.configKeyCard(element));
+      });
+
+      if(args[0] == 'entities') {
+        $("#sensorsTab").show();
+        $("#effectorsTab").show();
+        item.sensors.forEach(function (element) {
+          $("#sensors").append(brooklyn.sensorCard(element));
+        });
+        if (item.effectors != undefined) {
+          item.effectors.forEach(function (element) {
+            $("#effectors").append(brooklyn.effectorCard(element));
+          });
+        }
+        
+      } else {
+        $("#sensorsTab").hide();
+        $("#effectorsTab").hide();
+      }
+    }
+
+    function getArgs() {
+      var args;
+      var params = window.location.hash;
+      if(params) {
+        if(params.length <= 2) {
+          alert('No such catalog item');
+        }
+        args = params.substring(2).split('/');
+      } else {
+        params = getParameterByName('_escaped_fragment_');
+        args = params.split('/');
+      }
+
+      return args;
+
+      function getParameterByName(name) {
+        var search = window.location.search || document.location.search;
+        if(search === undefined) {
+          alert('No get parameter specified for a catalog item')
+        }
+
+        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
+        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
+                results = regex.exec(search);
+        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
+      }
+    }
+  });
+</script>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/catalog/index.html
----------------------------------------------------------------------
diff --git a/learnmore/catalog/index.html b/learnmore/catalog/index.html
new file mode 100644
index 0000000..78b8a26
--- /dev/null
+++ b/learnmore/catalog/index.html
@@ -0,0 +1,155 @@
+---
+title: Catalog
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<head>
+
+  {% include head.html %}
+  <script type="text/javascript" src="{{site.path.style}}/js/catalog/items.js"></script>
+  <link rel="stylesheet" href="{{site.path.style}}/css/catalog_items.css" type="text/css" media="screen"/>
+</head>
+
+
+<body>
+
+{% include header.html %}
+
+
+
+<div id="container">
+
+  <ul class="nav nav-tabs">
+    <li class="active"><a href="#entities" data-toggle="tab">Entities</a></li>
+    <li><a href="#policies" data-toggle="tab">Policies</a></li>
+    <li><a href="#locations" data-toggle="tab">Locations</a></li>
+  </ul>
+
+  <div class="tab-content">
+    <div class="tab-pane active" id="entities">
+      <input class="filter form-control" type="text" placeholder="Filter by type, e.g. webapp or nosql">
+    </div>
+    <div class="tab-pane" id="policies">
+      <input class="filter form-control" type="text" placeholder="Filter by type, e.g. ha">
+    </div>
+    <div class="tab-pane" id="enrichers">
+      <!-- TODO, and above -->
+      <input class="filter form-control" type="text" placeholder="Filter by type, e.g. http">
+    </div>
+    <div class="tab-pane" id="locations">
+      <input class="filter form-control" type="text" placeholder="Filter by type, e.g. http">
+    </div>
+    <div class="tab-pane" id="locationResolvers"></div>
+  </div>
+</div>
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
+<script src="{{site.path.style}}/js/underscore-min.js" type="text/javascript"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+<script src="{{site.path.style}}/js/catalog/bloodhound.js" type="text/javascript"></script>
+<script src="{{site.path.style}}/js/catalog/common.js" type="text/javascript"></script>
+<script type="text/javascript">
+
+  var filter = function (element, items) {
+    var ESCAPE_KEY = 27;
+
+    var $element = $(element),
+            $tab = $element.parent(),
+            kind = $tab.attr("id"),
+            collection = items[kind];
+    if (!collection) {
+      console.warn("Unable to determine type for input", element);
+      return;
+    }
+
+    // Number.MAX_VALUE configures Bloodhound to return all matches.
+    var bloodhound = new Bloodhound({
+      name: kind,
+      local: collection,
+      limit: Number.MAX_VALUE,
+      datumTokenizer: function (d) {
+        return Bloodhound.tokenizers.nonword(d.type);
+      },
+      queryTokenizer: Bloodhound.tokenizers.nonword
+    });
+    bloodhound.initialize();
+
+    // Filter items as input changes
+    var allAnchors = $tab.find("a").map(function (index, a) { return $(a); });
+    var hideAnchorsNotMatchingQuery = function () {
+      var query = $element.val();
+      query = query.trim();
+      if (!query) {
+        $tab.find("a").removeClass("hide");
+      } else {
+        var matchedTypes = {};
+        bloodhound.get(query, function (suggestions) {
+          _.each(suggestions, function (s) {
+            // approximate a set!
+            matchedTypes[s.type] = true;
+          });
+        });
+        _.each(allAnchors, function (a) {
+          if (_.has(matchedTypes, a.data("type"))) {
+            a.removeClass("hide");
+          } else {
+            a.addClass("hide");
+          }
+        });
+      }
+    };
+    $element.on("input", hideAnchorsNotMatchingQuery);
+    // In case page is loaded with text in input, e.g. from back button.
+    hideAnchorsNotMatchingQuery();
+
+    $element.on("keydown", function (e) {
+      if (e.keyCode == ESCAPE_KEY) {
+        $element.val("");
+        hideAnchorsNotMatchingQuery();
+      }
+    });
+  };
+  
+  $(document).ready(function () {
+    updateItems(items);
+
+    function updateItems(items) {
+      if (!String.prototype.trim) {
+        String.prototype.trim = function () {
+          return this.replace(/^\s+|\s+$/g, '');
+        };
+      }
+      var card = function (collection, cardFunction, target) {
+        var cards = _.map(collection, cardFunction);
+        $(target).append(cards.join(""));
+      };
+
+      card(items.entities, brooklyn.entityCard, "#entities");
+      card(items.policies, brooklyn.policyCard, "#policies");
+      //card(items.enrichers, brooklyn.enricherCard, "#enrichers");
+      card(items.locations, brooklyn.locationCard, "#locations");
+      
+      //transformItemAndAddToElement(items.locations, brooklyn.locationCard, "#locations");
+      //items.locationResolvers.forEach(function (element) { $("#locationResolvers").append("<tr><td>" + element + "</td></tr>"); });
+      $("input.filter").each(function (index, element) {
+        filter(element, items);
+      });
+    }
+  });
+</script>

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/blueprint-compose.png
----------------------------------------------------------------------
diff --git a/learnmore/features/blueprint-compose.png b/learnmore/features/blueprint-compose.png
new file mode 100644
index 0000000..b446c66
Binary files /dev/null and b/learnmore/features/blueprint-compose.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/blueprint-machine-specs.png
----------------------------------------------------------------------
diff --git a/learnmore/features/blueprint-machine-specs.png b/learnmore/features/blueprint-machine-specs.png
new file mode 100644
index 0000000..140f056
Binary files /dev/null and b/learnmore/features/blueprint-machine-specs.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/blueprinting.md
----------------------------------------------------------------------
diff --git a/learnmore/features/blueprinting.md b/learnmore/features/blueprinting.md
new file mode 100644
index 0000000..c79d98b
--- /dev/null
+++ b/learnmore/features/blueprinting.md
@@ -0,0 +1,24 @@
+
+### Blueprinting
+
+
+{% include feature-item.html title="Composable blueprints" %}
+
+A YAML service spec can refer to other blueprints,
+either in the catalog or by URL,
+and can supply custom configuration.
+
+{% include feature-image.html src="blueprint-compose.png" %}
+{% include feature-item-end.html %}
+
+
+
+{% include feature-item.html title="Portable machines specs -- or location-specific identifiers" img="blueprint-machine-specs.png" %}
+
+<p>
+Define machine specs using portable constraints,
+or, when you need to, use specific <code>imageId</code>, hardware profiles, and more
+</p>
+
+{% include feature-item-end.html img="blueprint-machine-specs.png" %}
+

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/index.md
----------------------------------------------------------------------
diff --git a/learnmore/features/index.md b/learnmore/features/index.md
new file mode 100644
index 0000000..fff6864
--- /dev/null
+++ b/learnmore/features/index.md
@@ -0,0 +1,18 @@
+---
+layout: website-normal
+title: Features
+children:
+- { section: Blueprinting }
+- { section: Policy-based Management }
+- { section: Operations }
+- { section: Java }
+---
+
+<div class="feature-list">
+
+{% readj blueprinting.md %}
+{% readj policy-based-mgmt.md %}
+{% readj operations.md %}
+{% readj java.md %}
+
+</div>

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/java-hierarchy.png
----------------------------------------------------------------------
diff --git a/learnmore/features/java-hierarchy.png b/learnmore/features/java-hierarchy.png
new file mode 100644
index 0000000..b2bd40b
Binary files /dev/null and b/learnmore/features/java-hierarchy.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/java.md
----------------------------------------------------------------------
diff --git a/learnmore/features/java.md b/learnmore/features/java.md
new file mode 100644
index 0000000..6b31865
--- /dev/null
+++ b/learnmore/features/java.md
@@ -0,0 +1,41 @@
+
+
+### Java
+
+
+{% include feature-item.html title="Discoverable configuration" %}
+
+Config keys, sensors, and effectors can be defined on the classes
+such that they are automatically discoverable at runtime.
+Type information, parameters, documentation, and default values
+are returned through the REST API and shown in the GUI.   
+
+{% include feature-item-end.html %}
+
+
+
+{% include feature-item.html title="Type hierarchy" %}
+
+Use interfaces and mix-ins to share and inherit behavior in a strongly typed way.
+
+{% include feature-item-end.html img="java-hierarchy.png" %}
+
+
+
+{% include feature-item.html title="Sensor feeds" %}
+
+Fluent builder-style API's are included for collecting sensor information
+from REST endpoints, SSH commands, JMX connectors, and more. 
+
+{% include feature-item-end.html %}
+
+
+
+{% include feature-item.html title="Task libraries" %}
+
+Fluent builder-style task libraries are included for building activity
+chains which run in parallel or sequentially,
+executing SSH, REST, or arbitrary Java commands.
+Task status, result, hierarchies, and errors are exposed through the REST API and in the GUI. 
+
+{% include feature-item-end.html %}

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/operations.md
----------------------------------------------------------------------
diff --git a/learnmore/features/operations.md b/learnmore/features/operations.md
new file mode 100644
index 0000000..0f152ee
--- /dev/null
+++ b/learnmore/features/operations.md
@@ -0,0 +1,75 @@
+
+### Operations
+
+
+{% include feature-item.html title="Brooklyn console" %}
+
+Brooklyn runs with a GUI console giving easy access to the
+management hierarchy, sensors, and activities.
+
+{% include feature-item-end.html img="ops-console.png" %}
+
+
+
+
+
+{% include feature-item.html title="High availability" %}
+
+Run standby nodes which can optionally automatically promote to master
+in the event of master failure. Hot standby nodes can provide additional
+read-only access to entity information.
+{% include feature-item-end.html %}
+
+
+
+{% include feature-item.html title="State persistence" %}
+
+Blueprint, catalog, topology and sensor information can be 
+automatically persisted to any file system or object store to 
+stop Brooklyn and restart resuming where you left off.
+{% include feature-item-end.html %}
+
+
+
+{% include feature-item.html title="REST API" %}
+
+<p>
+The console is pure JS-REST, and all the data shown in the GUI
+is available through a straightforward REST/JSON API.
+</p>
+
+<p>
+In many cases, the REST API is simply the GUI endpoint without the
+leading <code>#</code>.  For instance the data for
+<code>#/v1/applications/</code> is available at <code>/v1/applications/</code>. 
+And in all cases, Swagger doc is available in the product.
+</p>
+{% include feature-item-end.html img="ops-rest.png" %}
+
+
+
+{% include feature-item.html title="Groovy console" %}
+
+With the right permissions, Groovy scripts can be sent via
+the GUI or via REST, allowing open-heart surgery on your systems.
+(Use with care!) 
+{% include feature-item-end.html %}
+
+
+
+{% include feature-item.html title="Versioning" %}
+
+Blueprints in the catalog can be versioned on-the-fly.
+Running entities are attached to the version against which
+they were launched to preserve integrity, until manual
+version updates are performed. 
+{% include feature-item-end.html %}
+
+
+{% include feature-item.html title="Deep task information" %}
+The console shows task flows in real-time,
+including the `stdin` and `stdout` for shell commands,
+making it simpler to debug those pesky failures.
+{% include feature-item-end.html %}
+
+

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/ops-console.png
----------------------------------------------------------------------
diff --git a/learnmore/features/ops-console.png b/learnmore/features/ops-console.png
new file mode 100644
index 0000000..60a07b9
Binary files /dev/null and b/learnmore/features/ops-console.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/ops-rest.png
----------------------------------------------------------------------
diff --git a/learnmore/features/ops-rest.png b/learnmore/features/ops-rest.png
new file mode 100644
index 0000000..c251b5f
Binary files /dev/null and b/learnmore/features/ops-rest.png differ

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/features/policy-based-mgmt.md
----------------------------------------------------------------------
diff --git a/learnmore/features/policy-based-mgmt.md b/learnmore/features/policy-based-mgmt.md
new file mode 100644
index 0000000..5483e84
--- /dev/null
+++ b/learnmore/features/policy-based-mgmt.md
@@ -0,0 +1,28 @@
+### Policy-Based Management
+
+
+{% include feature-item.html title="Live metrics" %}
+
+Collect live metrics for use in policies,
+either from metric stores or directly using REST, JMX, SSH, and more.
+
+{% include feature-item-end.html %}
+
+
+
+{% include feature-item.html title="Management policies" %}
+<p>
+Choose from built-in policies including auto-scaling, failover, and follow-the-sun,
+or create new policies to perform custom runtime management.
+</p>
+
+<p>
+Use config keys to customize the policies to suit your systems, right in the YAML blueprint.
+</p>
+{% include feature-item-end.html %}
+
+
+{% include feature-item.html title="Dynamic reconfiguration" %}
+Reconfigure policies, suspend them, or add new ones on-the-fly
+through the REST API.
+{% include feature-item-end.html %}

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/index.md
----------------------------------------------------------------------
diff --git a/learnmore/index.md b/learnmore/index.md
new file mode 100644
index 0000000..e3b84a4
--- /dev/null
+++ b/learnmore/index.md
@@ -0,0 +1,30 @@
+---
+layout: website-normal
+title: Learn More
+children:
+- blueprint-tour.md
+- features/
+- { path: theory.md, title_in_menu: Theory }
+- { path: catalog/, title_in_menu: Browse Catalog }
+---
+
+<!--
+TODO have a list of resources here?  or start w yaml explained?
+
+Got a minute?  blueprint-tour
+Got two minutes?  watch the video
+Four minutes?  read the features list
+  cf http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2FwhatsNew%2Fplatform_whatsnew.html  -- though maybe with smaller screenshots at left and bigger text for summary!)
+More time?
+  Browse the catalog of Supported software, clouds, and policies
+  Read on the Theory behing brooklyn
+  Read the Brooklyn News
+    infoq - http://www.infoq.com/news/2014/06/clocker
+    Adam Davis: The case for application-driven cloud computing (Gluecon keynote) http://www.cloudsoftcorp.com/blog/2014/06/adam-davis-case-application-driven-cloud-computing/
+    [showing video at min 14]
+    twitter feed
+    selected blog posts
+-->
+
+{% include list-children.html %}
+

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/learnmore/theory.md
----------------------------------------------------------------------
diff --git a/learnmore/theory.md b/learnmore/theory.md
new file mode 100644
index 0000000..eddb2f8
--- /dev/null
+++ b/learnmore/theory.md
@@ -0,0 +1,184 @@
+---
+layout: website-normal
+title: The Theory behind Brooklyn
+children:
+- { section: "Why Brooklyn?" }
+- { section: Blueprints }
+- { section: Benefits }
+- { section: Standards }
+---
+
+<div class="jumobotron" markdown="1">
+
+Brooklyn is a framework for modeling, monitoring, and managing applications
+through autonomic blueprints.
+
+</div>
+
+## Why Brooklyn?
+
+Building and deploying applications in the cloud computing era has changed many
+things. Provision a bare server just-in-time, and use automated tools to install
+an application. Use APIs to add the server to a load balancer. When load goes
+up, provision another server; when load drops, kill a server to save money.
+
+Many new tools have appeared that take advantage of this new era. However each
+of them only solve part of the problem and don't consider the big picture. For
+example, configuration management tools such as Chef can, in a single command,
+provision a new cloud server then install and configure an application -- but
+they require extra programming to reconfigure an load balancer whenever the pool
+of web servers changes. Amazon Auto Scaling can provision new servers and update
+load balancers, but it is dependent on CloudWatch -- this means either using
+proxy metrics such as average response time, or writing more code to expose an
+application's real metrics. A dedicated monitoring tool may be able to easily
+monitor the key metrics with little effort, but its alerts will need to be
+integrated it into the server provisioning process.
+
+So all the tools are there to to create and manage a cloud-scale application
+that can adapt to demand to meet user expectations without wasting money on
+superfluous services - but you will need several such tools and it is up to you
+to integrate them into your deployment plan. Some of these tools -- such as the
+Amazon Web Services web of EC2, CloudWatch, AutoScaling and CloudFormation --
+mean that you may suffer from lock-in. Related projects in OpenStack (Heat,
+Ceilometer, Murano, Solum, etc) provide similar functionality but again for a
+restricted target. The most common policies (such as minimising request latency)
+may be easy, but less common policies such as follow-the-sun and follow-the-moon
+may be up to you to implement. Your scaling policies may understand that
+"high demand = add another server", but may not understand requirements such as
+some clustered services requiring an odd number of instances to prevent voting
+deadlocks.
+
+
+## How Brooklyn Can Help
+
+In this context the advantage of Brooklyn becomes apparent: a single tool is
+able to manage provisioning and application deployment, monitor an application's
+health and metrics, understand the dependencies between components (such as
+knowing that adding a new web server means that the load balancer needs
+reconfiguration) and apply complex policies to manage the application. The tool
+provides a REST API and a GUI, and allows the autonomic blueprints to be treated
+as an integral part of the application. With Brooklyn, these policies become
+modular components which can be reused and easily added to blueprints.
+
+Brooklyn is about deploying and managing applications: composing a full stack
+for an application; deploying to cloud and non-cloud targets; using monitoring
+tools to collect key health/performance metrics; responding to situations
+such as a failing node; and adding or removing capacity to match demand.
+
+
+## Blueprints
+
+A Brooklyn blueprint defines an application, using a declarative YAML syntax
+supporting JVM plugins. A basic blueprint might comprise a single process,
+such as a web-application server running a WAR file or a SQL database and
+its associated DDL scripts. More complex blueprints encompass combinations
+of processes across multiple machines and services, such as a load-balancing
+HTTP server or SDN controller fronting a cluster of J2EE application
+servers, in turn connected to a resilient cluster of SQL database servers.
+Even larger clustered application running in multiple regions can be
+described, with features such as message buses with resilient brokers,
+cacheing tiers of NoSQL key-value store servers, a high-availability
+database cluster and multiple application components connected across these
+layers.
+
+One main benefit of these blueprints is that they are composable:
+best-practice blueprints for one process or pattern (e.g. a Cassandra
+cluster) can be incorporated in other blueprints (e.g. an application with a
+Cassandra cluster as one component). Another major benefit is that the
+blueprints can be treated as source code as part of an applications
+codebase: tested, tracked, versioned, and hardened as an integral part of
+the devops process. In some ways, Brooklyn is to run-time what Maven is to
+build-time.
+
+
+### Blueprints Turn into Deployments
+
+Brooklyn knows about Chef, Salt, and similar tools, and APT and Yum and
+plain old shell scripts, for deploying application components. Blueprints
+are built from a mixture of both off-the-shelf packages such as Tomcat,
+MySQL, Cassandra, and many more from our library; and components that are
+bespoke to individual applications; together with policies that allow the
+application to be self-managing.
+
+Brooklyn is built for the cloud, and will take a blueprint and deploy it to
+one of many supported clouds or even to multiple different clouds, or to
+private infrastructure (bring-your-own-node), or to other platforms. It will
+dynamically configure and connect all the different components of an
+application, e.g. so load balancers know where the web servers are and the
+web applications know where the database is.
+
+Brooklyn collects key metrics to monitor the health of applications; for
+example, by sending a request and measuring latency, or installing
+monitoring tools and using those to read a server's management interface to
+determine the request queue length. These metrics can be fed into policies,
+which automatically take actions such as restarting a failed node, or
+scaling out the web tier if user demand exceeds capacity. This allows an
+application to be self-managing: to recover itself from simple failures, to
+scale out when demand increases and meet capacity; then scale in as demand
+drops and stop paying for spare capacity.
+
+In short, Brooklyn blueprints allow the best practices for deploying and
+managing complex software to be codified as part of the software development
+process.
+
+
+
+### <a id="benefits"></a> Agile and Flexible
+
+Brooklyn is a product built from the ground up for application agility. This
+includes portability across non-cloud, cloud, and PaaS targets; devops-style
+infrastructure-as-code applied to applications; and real-time autonomic
+management based on promise theory. Some introductions to these concepts,
+associated tools, and open specifications may be useful.
+
+Cloud computing at its core is about provisioning resources on-demand. The most
+widely known aspect is IaaS (infrastructure-as-a-service) such as Amazon EC2,
+Softlayer, Google Cloud Platform, Apache CloudStack, or OpenStack. By leveraging
+the Apache jclouds project (and contributing heavily to it), the Brooklyn
+project is able to work with a large number of such providers. Higher up the
+stack, however, there is an increasingly diverse set of platform targets, from
+PaaS (platform-as-a-service) such as Cloud Foundry and Apache Stratos, through
+to myriad containers and runtime fabrics such as LXC/Docker, Apache Mesos,
+Apache Karaf, Apache Hadoop, and Apache Usergrid and other backend-as-a-service
+environments. Brooklyn is based on the premise that applications may need to run
+in any or all of these, and the model must be flexible and open enough to
+support this.
+
+The buzzword-compliant trends of agile and devops have reinforced many important
+lessons:
+
+- The truth is in the code (not any ancillary documents)
+- If it isn't tested then assume it isn't working
+- Toolchain integration and APIs are key to a project's success
+- Even more critical is empowering all stakeholders to a project
+- Brooklyn's focus on blueprinting and modeling as code and APIs serves these
+principles.
+
+### Autonomic Computing
+
+Another major influence on the design of Brooklyn are the ideas of autonomic
+computing and promise theory. It is not necessary to have a thorough
+understanding of these to use Brooklyn, but contributors tend to become versed
+in these ideas quickly. Essentially, autonomics is based on the concept of
+components looking after themselves where possible (self-healing,
+self-optimizing, etc), and exposing a sensor (data outputs) and effector
+(operations) API where they may need to controlled by another element. Promise
+theory extends this approach by introducing the idea that communicating intent
+(through promises) is a more reliable basis for complex cooperating systems than
+obligation-based effectors. Tools such as CF Engine, Chef, Puppet, Ansible, and
+Salt apply promise theory to files and processes on machines; Brooklyn can
+leverage all of these tools, complementing it with an application-oriented
+model.
+
+### Standards
+
+Finally we note some emerging standards in this area. OASIS CAMP 
+(<a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=camp#technical">Cloud Application Management for Platforms</a>) 
+and TOSCA 
+(<a href="https://www.oasis-open.org/committees/tosca/">Topology and Orchestration Specification for Cloud Applications</a>) 
+both define YAML application models similar to Brooklyn's. 
+CAMP focuses on the REST API for interacting with such a
+management layer, and TOSCA focuses on declarative support for more
+sophisticated orchestration. Currently Brooklyn uses a YAML which complies with
+CAMP's syntax and exposes many of the CAMP REST API endpoints. We would like to
+support the hot-off-the-press TOSCA YAML and expand the CAMP REST API coverage.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/meta/license.md
----------------------------------------------------------------------
diff --git a/meta/license.md b/meta/license.md
new file mode 100644
index 0000000..02d05f4
--- /dev/null
+++ b/meta/license.md
@@ -0,0 +1,203 @@
+---
+layout: website-normal
+title: Legal
+---
+
+## License
+
+Apache Brooklyn is released to the public as open source under the 
+terms of the [Apache License, v2.0](http://www.apache.org/licenses/LICENSE-2.0), a full copy of
+which is included below for reference.
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+## Trademark
+
+The Brooklyn name and logo are trademarks owned by the Apache Software Foundation.
+
+
+## Apache License, v2.0 (reference copy)
+
+
+{% highlight text %}
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+{% endhighlight %} 

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/meta/sitemap.md
----------------------------------------------------------------------
diff --git a/meta/sitemap.md b/meta/sitemap.md
new file mode 100644
index 0000000..7411976
--- /dev/null
+++ b/meta/sitemap.md
@@ -0,0 +1,25 @@
+---
+layout: website-normal
+title: Site Map
+---
+
+<div class="sitemap">
+
+<div class="search_right">
+<form method="get" id="simple_google" class="searchform" action="http://www.google.com/search">
+                <input type="text" class="searchinput" name="brooklyn-search" placeholder="Google site search: type &amp; hit enter">
+                <input type="hidden" name="q" value="">
+            </form>
+</div>
+
+{% assign visited = "" | split: "|" %}
+{% assign site_items = "" | split: "|" %}
+<ul>
+{% for item in site.data.menu %}
+  {% push site_items item %}
+  {% include sitemap-item.html %}
+{% endfor %}
+</ul>
+
+</div>
+

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/meta/versions.md
----------------------------------------------------------------------
diff --git a/meta/versions.md b/meta/versions.md
new file mode 100644
index 0000000..d9678cc
--- /dev/null
+++ b/meta/versions.md
@@ -0,0 +1,90 @@
+---
+layout: website-normal
+title: Versions
+---
+
+## Current Version: {{ site.brooklyn-stable-version }}
+
+The current stable version of Brooklyn is {{ site.brooklyn-stable-version }}:
+
+* [Download]({{ site.path.website }}/download/)
+* [User Guide]({{ site.path.guide }}/)
+* [Release Notes]({{ site.path.guide }}/misc/release-notes.html)
+
+This documentation was generated {{ site.time | date_to_string }}.
+
+
+## Version History
+
+Apache Brooklyn has made the following releases:
+
+* **[0.12.0](/v/0.12.0/)**: OSGI container runtime, improved catalog and bundle integration (September 2017)
+
+* **[0.11.0](/v/0.11.0/)**: Improved cloud support, additional blueprinting features (May 2017)
+
+* **[0.10.0](/v/0.10.0/)**: Improved blueprints and CLI, new DSL features,
+  Karaf distribution. (December 2016)
+
+* **[0.9.0](/v/0.9.0/)**: Adds Brooklyn CLI client, RPM package, getting started
+  using Vagrant. First release as an Apache top-level project! (April 2016)
+
+* **[0.8.0-incubating](/v/0.8.0-incubating/)**: Package rename to org.apache.brooklyn, and many other improvements. (September 2015)
+
+* **[0.7.0-incubating](/v/0.7.0-incubating/)**: New policies, more clouds, improved Windows support and many other improvements. First Apache-endorsed binary release! (July 2015)
+
+* **[0.7.0-M2-incubating](/v/0.7.0-M2-incubating/)**: YAML, persistence, Chef, Windows, Docker. The first Apache release! (December 2014)
+
+Note: These "Version History" links are to permanent versions in the archive,
+different to the "Current Version" links.
+To prevent accidentally referring to out-of-date information,
+a banner is displayed when accessing content from these.
+If you wish you can
+<a href="javascript:void(0);" onclick="set_user_versions_all();">disable all warnings</a> or
+<a href="javascript:void(0);" onclick="clear_user_versions();">re-enable all warnings</a>.
+
+
+## Ancient Versions
+
+The versions below were made prior to joining The Apache Software Foundation, therefore **they are not endorsed by
+Apache** and are not hosted by Apache or their mirrors. You can obtain the source code by
+[inspecting the branches of the pre-Apache GitHub repository](https://github.com/brooklyncentral/brooklyn/branches/stale)
+and binary releases by
+[querying Maven Central for io.brooklyn:brooklyn.dist](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.brooklyn%22%20AND%20a%3A%22brooklyn-dist%22).
+
+* **[0.7.0-M1](/v/0.7.0-M1/)**: YAML, Chef, catalog, persistence (Apr 2014)
+
+* **[0.6.0](/v/0.6.0/)**: use of spec objects, chef and windows support, more clouds (Nov 2013)
+
+* **[0.5.0](/v/0.5.0/)**: includes new JS GUI and REST API, rebind/persistence support, cleaner model and naming conventions, more entities (May 2013)
+
+* **[0.4.0](/v/0.4.0/)**: initial public GA release of Brooklyn to Maven Central, supporting wide range of entities and examples (Jan 2013)
+
+
+### Versioning
+
+Brooklyn follows [semantic versioning](http://semver.org/) with a leading `0.` qualifier:
+
+    0.<major>.<minor>[.<patch>]-<qualifier>
+
+Breaking backward compatibility increments the `<major>` version.
+New additions without breaking backward compatibility ups the `<minor>` version.
+Bug fixes and misc changes bumps the `<patch>` version.
+New major and minor releases zero the less significant counters.
+
+From time to time, the Brooklyn project will make snapshots, milestone releases, and other qualified versions available,
+using the following conventions:
+
+* Milestone versions (`-M<n>`) have been voted on and have been through some QA,
+  but have not had the extensive testing as is done on a release.
+
+* Snapshot (`-SNAPSHOT`) is the bleeding edge.
+  With good test coverage these builds are usually healthy, 
+  but they have not been through QA or voted on.
+
+* Nightly builds (`-N<date>`) represent a snapshot which has
+  been given a permanent version number, typically for use by other projects.
+  The same caveats as for snapshot releases apply (no QA or Apache vote). 
+
+* Release Candidate builds (`-RC<n>`) are made in the run-up to a release;
+  these should not normally be used except for deciding whether to cut a release.
+

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/community/how-to-contribute-docs.md
----------------------------------------------------------------------
diff --git a/website/community/how-to-contribute-docs.md b/website/community/how-to-contribute-docs.md
deleted file mode 100644
index 84fd47b..0000000
--- a/website/community/how-to-contribute-docs.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: website-normal
-title: Contributing Documentation
-navgroup: community
----
-
-Welcome and thank you for your interest in contributing to Apache Brooklyn! This guide will take you through the
-process of making contributions to the Apache Brooklyn website and documentation.
-
-
-Quick Edits
------------
-
-The easiest way to contribute improvements to the doc is with the *Edit this page* 
-button at the bottom of most pages. This will take you to the GitHub repository where
-you can immediately begin editing the file.
-
-This approach makes editing easy, as you do not need to
-clone the repository to your workstation and make changes there; they can be
-changed directly on the GitHub website for the repository.
-(You will need a GitHub account but this is free and easy to create.)
-
-Once you have made your edits:
-
-* In the short form titled *Propose file change*,
-  provide a short description of the change in the first box
-* Optionally, provide a longer description in the second box. 
-  If your change fixes or addresses a Jira issue, be sure to mention it.
-* Next click *Propose file change* to prepare a pull request
-* Finally click *Create pull request* to notify the team of your proposed change.
-  The community will review it and merge and update the web site as necessary.
-
-
-Bigger Contributions
---------------------
-
-While the *Edit this page* button is great for quickly editing a single page, if
-you want to do anything that involves editing multiple pages, you will need to
-fork and clone the repository and make the changes on your own workstation.
-
-For this, you should first review the general tips on [How to Contribute](../developers/how-to-contribute.html).
-
-Next, you’ll want to become familiar with the `docs/` folder in the Brooklyn codebase where the docs live.
-In particular, note that the Brooklyn documentation is split into two parts:
-
-- **The main website and shared documentation**. This covers the root website
-  and all pages that are not part of the version-specific user guide.
-  Content for this is in the `website` directory.
-  
-- **Version-specific user guide**. These pages have a URL with a path that
-  begins /v/*version-number*: for example,
-  https://brooklyn.apache.org/v/0.8.0-incubating and {% comment %}BROOKLYN_VERSION{% endcomment %}
-  the special *latest* set at https://brooklyn.apache.org/v/latest. Content for this is in the `guide` directory.
-
-The main user guide shown on this site is for the most recent stable version,
-currently {{ site.brooklyn-stable-version }}.
-Guides for other versions are available [here](../meta/versions.html).
-
-
-For More Information
---------------------
-
-Advanced instructions for building, previewing and publishing docs are in a `README.md` file
-in the `docs` folder; see those instructions
-[here](https://github.com/apache/brooklyn-docs).
-

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/community/index.md
----------------------------------------------------------------------
diff --git a/website/community/index.md b/website/community/index.md
deleted file mode 100644
index 870f0ee..0000000
--- a/website/community/index.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-layout: website-normal
-title: Community
-children:
-- mailing-lists.md
-- irc.md
-- security/index.md
-- { link: 'https://issues.apache.org/jira/browse/BROOKLYN', title: 'Bug Tracker (JIRA)' }
-- { path: how-to-contribute-docs.md }
----
-
-<div class="row">
-<div class="col-md-6" markdown="1">
-
-<div class="panel panel-default">
-  <div class="panel-heading" markdown="1">
-#### [Mailing lists](mailing-lists.html)
-  </div>
-  <div class="panel-body" markdown="1">
-Our mailing lists is where most of the action around Brooklyn happens and is stored for posterity - here you can ask
-questions about how to use Brooklyn and learn from the experiences of others. It's also the place where discussions
-about the future of Brooklyn happen.
-
-<div class="text-center"><a class="btn btn-primary" href="mailing-lists.html" role="button">Mailing Lists</a></div>
-  </div>
-</div>
-
-</div><!-- col -->
-<div class="col-md-6" markdown="1">
-
-<div class="panel panel-default">
-  <div class="panel-heading" markdown="1">
-#### [Issue tracker](https://issues.apache.org/jira/browse/BROOKLYN)
-  </div>
-  <div class="panel-body" markdown="1">
-Search for known issues, and report new bugs, using the `BROOKLYN` project on the Apache JIRA.
-
-<div class="text-center"><a class="btn btn-primary" href="https://issues.apache.org/jira/browse/BROOKLYN" role="button">JIRA Bug Tracker</a></div>
-  </div>
-</div>
-
-</div><!-- col -->
-</div><!-- row -->
-
-<div class="row">
-<div class="col-md-6" markdown="1">
-
-<div class="panel panel-default">
-  <div class="panel-heading" markdown="1">
-#### [IRC](irc.html)
-  </div>
-  <div class="panel-body" markdown="1">
-Find us on `#brooklyncentral` on Freenode, or click below for more information.
-
-<div class="text-center"><a class="btn btn-primary" href="irc.html" role="button">IRC Information</a></div>
-  </div>
-</div>
-
-</div><!-- col -->
-
-<div class="col-md-6" markdown="1">
-<div class="panel panel-default">
-  <div class="panel-heading" markdown="1">
-#### [Security advisories](security/index.html)
-  </div>
-  <div class="panel-body" markdown="1">
-A list of security advisories covering Apache Brooklyn
-
-<div class="text-center"><a class="btn btn-primary" href="security/index.html" role="button">Security Advisories</a></div>
-  </div>
-</div>
-
-</div><!-- col -->
-</div><!-- row -->
-
-<div class="row">
-<div class="col-md-3" markdown="1">
-</div>
-<div class="col-md-6" markdown="1">
-
-<div class="panel panel-default">
-  <div class="panel-heading" markdown="1">
-#### [Developer community](../developers/)
-  </div>
-  <div class="panel-body" markdown="1">
-Want to contribute code to our project? Head over to our developer's section. Warning, bleeding edge code ahead!
-
-<div class="text-center"><a class="btn btn-warning" href="../developers/index.html" role="button">Developer's Section</a></div>
-  </div>
-</div>
-
-</div><!-- col -->
-<div class="col-md-3" markdown="1">
-</div>
-</div><!-- row -->

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/community/irc.md
----------------------------------------------------------------------
diff --git a/website/community/irc.md b/website/community/irc.md
deleted file mode 100644
index 0c33048..0000000
--- a/website/community/irc.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: website-normal
-title: IRC
----
-
-Join channel `#brooklyncentral` on the [Freenode](https://freenode.net/) IRC
-network for instant chat with the Brooklyn community. Use your favourite IRC client, or use the embedded IRC web chat
-client here:
-
-<iframe src="http://webchat.freenode.net?channels=%23brooklyncentral&uio=MTE9MTIz7c" width="647" height="400"></iframe>
-
-Many of the Brooklyn dev team can be found here. Note that the team
-is predominantly Europe-based, and channel activity is usually centered
-around European daylight hours.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/community/mailing-lists.md
----------------------------------------------------------------------
diff --git a/website/community/mailing-lists.md b/website/community/mailing-lists.md
deleted file mode 100644
index 5d21604..0000000
--- a/website/community/mailing-lists.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-layout: website-normal
-title: Mailing Lists
----
-
-Our main discussion list is our *dev* list - here you can ask questions and get
-help with issues, ranging from basic getting started through to detailed
-questions about Brooklyn's internals.
-
-To subscribe, send an email to:
-[dev-subscribe@brooklyn.apache.org](mailto:dev-subscribe@brooklyn.apache.org)
-
-You can also [read the dev list
-archives](https://lists.apache.org/list.html?dev@brooklyn.apache.org) on
-Apache's list archiver.
-
-
-### Other lists
-
-We also have a *commits* list - a read-only list which automatically posts as
-commits are made to our source repositories. Subscribe by sending an email to
-[commits-subscribe@brooklyn.apache.org](mailto:commits-subscribe@brooklyn.apache.org),
-and [read the archives here](https://lists.apache.org/list.html?commits@brooklyn.apache.org).
-
-
-### Search archives
-
-You can search all Brooklyn list archives from one location:
-
-<form action="http://markmail.org/search/list:org.apache.brooklyn-*">
-  <input type="text" placeholder="Search query…" size="50"><button>Search</button>
-</form>
-
-### Historical lists
-
-Before Brooklyn graduated from the Apache Incubator, the lists included the word
-"incubator" (e.g. dev@brooklyn.incubator.apache.org). These were automatically
-migrated upon graduation; the old lists should not be used.
-
-Before Brooklyn joined the Apache Incubator, we had lists hosted on Google
-Groups. These lists are now deprecated and it's no longer possible to subscribe
-or post, but you may find useful information in the archives.
-
-- [Old Brooklyn users list archive](https://groups.google.com/forum/#!forum/brooklyn-dev)
-- [Old Brooklyn dev list archive](https://groups.google.com/forum/#!forum/brooklyn-dev)
-
-Once again, these lists are deprecated, so please subscribe to the Apache-hosted
-lists to receive new messages.

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/community/security/CVE-2016-8737.md
----------------------------------------------------------------------
diff --git a/website/community/security/CVE-2016-8737.md b/website/community/security/CVE-2016-8737.md
deleted file mode 100644
index 34b222c..0000000
--- a/website/community/security/CVE-2016-8737.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-layout: website-normal
-title: "CVE-2016-8737: Cross-site request forgery vulnerability in Apache Brooklyn"
----
-
-## Severity
-Major
-
-## Vendor
-The Apache Software Foundation
-
-## Versions Affected
-Apache Brooklyn 0.9.0 and all prior versions
-
-## Description
-Apache Brooklyn's REST server is vulnerable to cross-site request forgery (CSRF), which could permit a malicious web site to produce a link which, if clicked whilst a user is logged in to Brooklyn, would cause the server to execute the attacker's commands as the user.  There is known to be a proof-of-concept exploit using this vulnerability.
-
-## Solution
-Upgrade to Apache Brooklyn 0.10.0. This includes commit [1](https://github.com/apache/brooklyn-server/pull/430) adding opt-in CSRF protection server-side and commit [2](https://github.com/apache/brooklyn-ui/pull/37) where the JS client opts-in.  
-
-## Temporary mitigation if you cannot upgrade to 0.10.0
-Do not visit websites with possible malicious content targeted at you in the same browser instance logged in to Brooklyn unless you have CSRF-POST protection installed in the browser (see [3](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Client_side_safeguards)).  Do not share a Brooklyn server with untrusted users without an enhanced entitlements scheme.  Do not publicize the address of Brooklyn-based UIs.  If a link you click on takes you to Brooklyn unexpectedly, contact your security team immediately.
-
-## Example exploit
-Attacker puts something like this into their malicious site:
-
-    <form action="http://<Brooklyn>/v1/applications/oadP4rZU/entities/oadP4rZU/name?name=hacked" method="POST">
-
-If the user clicks on this when logged in, the name of that entity will be changed by the attacker.
-
-## Credit
-This vulnerability was discovered by Toshitsugu Yoneyama of Mitsui Bussan Secure Directions, Inc., and reported to JPCERT/CC who reported them to the Apache Software Foundation on his behalf.
-
-## References
-1. [https://github.com/apache/brooklyn-server/pull/430](https://github.com/apache/brooklyn-server/pull/430)
-2. [https://github.com/apache/brooklyn-ui/pull/37](https://github.com/apache/brooklyn-ui/pull/37)
-3. [https://en.wikipedia.org/wiki/Cross-site_request_forgery#Client_side_safeguards](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Client_side_safeguards)
-
-## Other references
-JPCERT/CC JVN#55489964

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/community/security/CVE-2016-8744.md
----------------------------------------------------------------------
diff --git a/website/community/security/CVE-2016-8744.md b/website/community/security/CVE-2016-8744.md
deleted file mode 100644
index 32cd5db..0000000
--- a/website/community/security/CVE-2016-8744.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: website-normal
-title: "CVE-2016-8744: Apache Brooklyn, SnakeYAML configuration potentially allows remote code execution"
----
-
-## Severity
-Major
-
-## Vendor
-The Apache Software Foundation
-
-## Versions Affected
-Apache Brooklyn 0.9.0 and all prior versions
-
-## Description
-Apache Brooklyn uses the SnakeYAML library for parsing YAML inputs. SnakeYAML allows the use of YAML tags to indicate that SnakeYAML should unmarshal data to a Java type. In the default configuration, SnakeYAML will allow unmarshalling to any Java type available on the classpath. This could provide an authenticated user with a means to cause the JVM running Brooklyn to load and run Java code without detection by Brooklyn. Such code would have the privileges of the Java process running Brooklyn, including the ability to open files and network connections, and execute system commands. There is known to be a proof-of-concept exploit using this vulnerability.
-
-## Solution
-Upgrade to Apache Brooklyn 0.10.0. This changes the SnakeYAML configuration to limit unmarshalling to a white list of safe, basic, Java types. This change blocks YAML document inputs that use unsafe Java types.
-
-## Temporary mitigation if you cannot upgrade to 0.10.0
-Ensure your Apache Brooklyn instance is properly secured so that untrusted users cannot access Brooklyn's API. User authentication should be configured with strong passwords, and access limited to known trusted individuals. Configure SSL/TLS. Installations of Apache Brooklyn should not be exposed to the Internet without considering the security implications. (This is general good practice for Apache Brooklyn installations.)
-
-## Example exploit
-Consider this fragment of YAML:
-
-    !!java.util.Date
-    date: 25
-    month: 12
-    year: 2016
-
-If embedded into a YAML document and given to Apache Brooklyn's API endpoint for new applications, it would cause SnakeYAML to instantiate java.util.Date and call setter methods on the instance. Although the Date type in this example is relatively benign, Date could be replaced by any other class available on Brooklyn's classpath, which include classes that pose a security risk.
-
-## Credit
-This issue was discovered by Moritz Bechler of AgNO3 GmbH & Co. KG.
-
-## References
-[http://www.apache.org/security/index.html](http://www.apache.org/security/index.html)

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/community/security/CVE-2017-3165.md
----------------------------------------------------------------------
diff --git a/website/community/security/CVE-2017-3165.md b/website/community/security/CVE-2017-3165.md
deleted file mode 100644
index a9a86a7..0000000
--- a/website/community/security/CVE-2017-3165.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: website-normal
-title: "CVE-2017-3165: Cross-site vulnerabilities in Apache Brooklyn"
----
-
-## Severity
-Major
-
-## Vendor
-The Apache Software Foundation
-
-## Versions Affected
-Apache Brooklyn 0.9.0 and all prior versions
-
-## Description
-Apache Brooklyn's REST server is vulnerable to cross-site scripting where one authenticated user can cause scripts to run in the browser of another user authorized to access the first user's resources.  This is due to improper escaping of server-side content.  There is known to be a proof-of-concept exploit using this vulnerability.
-
-## Solution
-Upgrade to Apache Brooklyn 0.10.0. This includes commit correctly escaping text and other content provided by a user to prevent untrusted javascript from executing in the browser.
-
-## Temporary mitigation if you cannot upgrade to 0.10.0
-Do not share a Brooklyn server with untrusted users without an enhanced entitlements scheme.
-
-## Example exploit
-Attacking user deploys an entity with a name `<script>alert(0);</script>`.  Any user browsing that entity will have the `alert(0);` script executed.
-
-## Credit
-This vulnerability was discovered by Toshitsugu Yoneyama of Mitsui Bussan Secure Directions, Inc., and reported to JPCERT/CC who reported them to the Apache Software Foundation on his behalf.
-
-## Other references
-JPCERT/CC JVN#55489964

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/community/security/index.md
----------------------------------------------------------------------
diff --git a/website/community/security/index.md b/website/community/security/index.md
deleted file mode 100644
index ed75dd0..0000000
--- a/website/community/security/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-layout: website-normal
-title: Security Advisories
-children:
----
-
-[CVE-2017-3165: Cross-site vulnerabilities in Apache Brooklyn](CVE-2017-3165.html)
-
-[CVE-2016-8737: Cross-site request forgery vulnerability in Apache Brooklyn](CVE-2016-8737.html)
-
-[CVE-2016-8744: Apache Brooklyn, SnakeYAML configuration potentially allows remote code execution](CVE-2016-8744.html)

http://git-wip-us.apache.org/repos/asf/brooklyn-docs/blob/5b360c27/website/developers/code-standards.md
----------------------------------------------------------------------
diff --git a/website/developers/code-standards.md b/website/developers/code-standards.md
deleted file mode 100644
index 4d18ca9..0000000
--- a/website/developers/code-standards.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: website-normal
-title: Code Standards
----
-
-Without being too restrictive about how you have to code as part of Brooklyn,
-there are some style points that really make life easier when sharing code
-among ourselves:
-
-* Use spaces (not tabs!) with 4 spaces indentation
-* Keep line length <=128
-* Don't reformat code or organize imports unless there's very good
-  reason (this makes history and merges much harder)
-


Mime
View raw message