anchor.diff:  instance of your app.
   This start command differs by app framework.
   
  -### <a id='space'></a>Determine the Org and Space
  -
  -A <%= vars.product_short %> workspace is organized into orgs, and within them, spaces.
  -Apps are pushed into app spaces.
  -
  -As a <%= vars.product_short %> user, you may have access to one or more orgs and spaces.
  -Before pushing an app, you must:
  -
  -* Decide the target org and space where you want to push your app.
  -
  -### <a id='service'></a>Confirm Service Accessibility
  -
  -Apps use services such as databases, messaging, and key-value stores.
  -To use a service, the app must bind to an instance of the service that is running in the same space or shared with its space. Before pushing an app, you must:
  -
  -* Confirm that every service that your app uses has an instance that the app can access.
  -
  -See [Sharing Service Instances](../services/sharing-instances.html) for how to share service instances across spaces.
  -
  -### <a id='route'></a>Determine the Route
  -
  -<%= vars.product_short %> directs requests to an app based on its route.
  -The route is a URL made up of a hostname and a domain, as in `https://HOSTNAME.example.com`.
  -
  -You can let `cf push` use a default app route, or specify a different route by customizing its hostname or domain.
  -
  -For more information about domains, see [Routes and Domains](./routes-domains.html).
  -
  -#### Default Route
  -
  -<%= vars.product_short %> defaults an app's route as follows:
  -
  -* **Hostname**: The name of the app.
  -  - If the app name contains underscores, <%= vars.product_short %> converts them to hyphens when creating the app's route.
  -
  -* **Domain**: The default apps domain for the <%= vars.product_short %> installation.
  -
  -<%=vars.ssl%>
  -
  -#### (Optional) Customize the Route
  +### <a id='custom-route'></a>(Optional) Customize the Route
   
   To customize an app's route, do the following:
   
  -* **Hostname**
  +1. **(Optional) Customize the Hostname**
     - Pass the custom hostname into `cf push` with the `-n` flag.
   
  -* **Domain**
  +1. **(Optional) Customize the Domain**
     - Pass the custom domain into `cf push` with the `-d` flag.
     The custom domain must be registered, and mapped to the org that contains the app's target space
   
  -#### Ensure Uniqueness
  -
  -The app's route must be globally unique, whether you use the <%= vars.product_short %> defaults
  -or a custom host or domain.
  -
  -To help ensure route uniqueness you can use the `--random-route` option with `cf push`.
  -`--random-route` creates a route that contains the app name and random words
  +1. **Ensure Route Uniqueness**
  +  - The app's route must be globally unique, whether you customize its host or domain, or let it use the [Default Route](#default-route) described above.
  +  - To help ensure route uniqueness, pass the `--random-route` option into `cf push`.
  +`--random-route` creates a route that includes the app name and random words
   
   ### <a id='exclude'></a>(Optional) Limit the Upload Files
   
  
positive.code:   - [Spring](../../buildpacks/java/configuring-service-connections/spring-service-bindings.html)
    - [Grails](../../buildpacks/java/configuring-service-connections/grails-service-bindings.html)
  
  ## <a id='troubleshoot-push'></a>Troubleshoot App Push Problems
  
  If your app does not start on <%= vars.product_short %>, first ensure that the app can run locally.
  
negative.code: ## <a id="overview"></a> Overview
  
  The cf CLI command `cf push` pushes apps to <%= vars.product_short %>.
  There are two main ways to run the `cf push` command:
  
  - Run `cf push APP-NAME` to push an app the easiest way, using default settings.
  - Run the `cf push` command with flags and helper files to customize:
      - How the pushed app runs, including its route (URL), instance count, and memory limits.
      - How the push process works: whether it's configured with a manifest, runs a startup script, or limits files uploaded to the Cloud Controller.
  
  The [Push with Defaults](#default-push) and [Push with Custom Settings](#custom-push) sections below detail both of these options.
  
  For an explanation of what <%= vars.product_short %> does when you run `cf push`, see [How Apps are Staged](../../concepts/how-applications-are-staged.html).
  
  