diff --git a/INSTALL_SINGLE_NODE.md b/INSTALL_SINGLE_NODE.md
new file mode 100644
index 0000000..0b6ce26
--- /dev/null
+++ b/INSTALL_SINGLE_NODE.md
@@ -0,0 +1,106 @@
+# Installing a CORD POD on a Single Physical Host
+[*This description is for bringing up a CORD POD on virtual machines on a single physical host. The purpose of this solution is to enable those interested in understanding how CORD works to examine and interact with a running CORD environment.*]
+
+This tutorial walks you through the steps to bring up a CORD "POD" on a single server using multiple virtual machines.
+
+## What you need (Prerequisites)
+You will need a build machine (can be your developer laptop) and a target server.
+
+Build host:
+* Mac OS X, Linux, or Windows with a 64-bit OS
+* [`git`](https://git-scm.com/) (2.5.4 or later)
+* [`Vagrant`](https://www.vagrantup.com/) (1.8.1 or later)
+* Access to the Internet
+* SSH access to the target server
+
+Target server:
+* Fresh install of Ubuntu 14.04 LTS with latest updates
+* Minimum 12 CPU cores, 48GB RAM, 1TB disk
+* Access to the Internet
+* Account used to SSH from build host has password-less *sudo* capability
+
+### Running on CloudLab (optional)
+If you do not have a target server available, you can borrow one on
+[CloudLab](https://www.cloudlab.us).  Sign up for an account using your organization's
+email address and choose "Join Existing Project"; for "Project Name" enter `cord-testdrive`.
+
+[*Note: CloudLab is supporting CORD as a courtesy.  It is expected that you will
+not use CloudLab resources for purposes other than evaluating CORD.  If, after a
+week or two, you wish to continue using CloudLab to experiment with or develop CORD,
+then you must apply for your own separate CloudLab project.*]
+
+Once your account is approved, start an experiment using the `OnePC-Ubuntu14.04.4` profile
+on either the Wisconsin or Clemson cluster.  This will provide you with a target server
+meeting the above requirements temporarily.
+
+Refer to the [CloudLab documentation](https://docs.cloudlab.us) for more information.
+
+## Bring up the developer environment
+On the build host, clone the
+[`platform-install`](https://gerrit.opencord.org/platform-install) repository
+anonymously and switch into its top directory:
+
+```
+git clone https://gerrit.opencord.org/platform-install
+cd platform-install
+```
+
+Bring up the development Vagrant box.  This will take a few minutes, depending on your
+connection speed:
+
+```
+vagrant up
+```
+
+Login to the Vagrant box:
+
+```
+vagrant ssh
+```
+
+Switch to the `platform-install` directory.
+
+```
+cd /platform-install
+```
+
+## Prepare the configuration file
+
+Edit the configuration file `config/default.yml`.  Add the IP address of your target
+server as well as the username / password for accessing the server.  
+
+If your target server is a CloudLab machine, uncomment the following two lines in the
+configuration file:
+
+```
+#extraVars:
+#  - 'on_cloudlab=True'
+```
+
+## Deploy the single-node CORD POD on the target server
+
+Deploy the CORD software to the the target server and configure it to form a running POD.
+
+```
+./gradlew deploySingle
+```
+> *What this does:*
+>
+> This command uses an Ansible playbook (cord-single-playbook.yml) to install
+> OpenStack services, ONOS, and XOS in VMs on the target server.  It also brings up
+> a compute node as a VM.
+>
+> (You *could* also run the above Ansible playbook directly, but Gradle is the
+> top-level build tool of CORD and so we use it here for consistency.)
+
+Note that this step usually takes *at least an hour* to complete.  Be patient!
+
+Once the above step completes, you can log into XOS as follows:
+
+* URL: `http://<target-server>/`
+* Username: `padmin@vicci.org`
+* Password: `letmein`
+
+[*STILL TO DO*]:
+* Port forwarding for XOS login as described above
+* Add pointer to where to go next.  At this point the services are all in place, but the vSG has not been created yet.
diff --git a/config/default.yml b/config/default.yml
index 0be591e..68fe747 100644
--- a/config/default.yml
+++ b/config/default.yml
@@ -1,47 +1,15 @@
-# Deployment configuration for VirtualBox based head node.
-#
-# This deployment configuration can be utilized with the head node created
-# via `vargrant up headnode` from the gerrit.opencord.org/maas repository.
+# Deployment configuration for a single-node physical hardware POD
 ---
 seedServer:
-  ip: '10.100.198.201'
 
-  # User name and password used by Ansible to connect to the host for remote
-  # provisioning
-  user: 'vagrant'
-  password: 'vagrant'
+  # Put the IP of your target server here
+  ip: '1.2.3.4'
 
-  # Specifies tasks within the head node provisioning not to execute, including:
-  #
-  # switch_support -   don't download the switch ONL images as there are no
-  #                    switches in this configuration
-  # interface_config - don't update the network configuration of the headnode
-  #                    as it is configured by vagrant to the proper settings
-  skipTags:
-    - 'switch_support'
-    - 'interface_config'
+  # User name and password used by Ansible to connect to the target server for remote
+  # provisioning.   You can also run ssh-agent to allow for password-less SSH login.
+  user: 'myuser'
+  password: 'cord_test'
 
-  management_ip: '10.1.0.1/24'
-  management_iface: 'eth2'
-  external_iface: 'eth0'
-  management_network: '10.1.0.0/24'
-
-  # Specifies the extra settings required for this configuration
-  #
-  # virtualbox_support - install support for managing virtual box based
-  #                      compute nodes
-  virtualbox_support: 1
-  power_helper_user: 'cord'
-
-docker:
-  imageVersion: candidate
-
-otherServers:
-  # Specifies the configuration for dynamically added compute nodes
-  location: 'http://gerrit.opencord.org/maas'
-  rolesPath: 'roles'
-  role: 'compute-node'
-  fabric:
-    network: '10.1.1.1/24'
-    range_low: '10.1.1.2'
-    range_high: '10.1.1.253'
+  # Uncomment if the target server is a CloudLab machine
+  #extraVars:
+  #  - 'on_cloudlab=True'
diff --git a/config/onlab_develop_pod.yml b/config/onlab_develop_pod.yml
deleted file mode 100644
index f095e6c..0000000
--- a/config/onlab_develop_pod.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-# Deployment configuration for a phyical hardware POD
----
-seedServer:
-  ip: '10.90.0.2'
-  # User name and password used by Ansible to connect to the host for remote
-  # provisioning
-  user: 'admin'
-  password: 'onos_test'
-  # Network address information for the head node:
-  #
-  # fabric_ip     - the IP address and mask bits to be used to configure the network
-  #                 interface connected to the leaf - spine fabric
-  #
-  # management_ip - the IP address and mask bits to be used to configure the network
-  #                 interface connecting the head node to the POD internal
-  #                 management network. The head node will deliver DHCP addresses to
-  #                 the other compute nodes over this interface
-  #
-  # external_ip   - the IP address and mask bits to be used to configure the network
-  #                 interface connecting the head node (and the POD) to the
-  #                 Internet. All traffic in the POD to external hosts will be
-  #                 NAT-ed through this interface
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '47.135.132.21/24'
-  management_iface: 'em2'
-  external_iface: 'em1'
-  skipTags:
-    - 'interface_config'
-
-docker:
-  imageVersion: candidate
-
-otherNodes:
-  # Experimental
-  #
-  # Specifies the subnet and address range that will be used to allocate IP addresses
-  # to the compute nodes as they are deployed into the POD.
-  fabric:
-    network: 10.6.1.1/24
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253
