The App Store can be accessed via the Management Console, found at the hostname of the Stackato server. In a typical microcloud setup, this is something like:
https://api.stackato-xxxx.local
Click the "App Store" option on the left menu. Locate the app you want to install by browsing the list or using the search options at the top.
Press the "Install" button for the app you want to install and follow the prompts. The app will be visible in the Applications section of the Management Console.
An App Store is a YAML file with descriptions for the store and its apps, including a link to the source location for each app:
store:
title: ActiveState Stackato Sample Applications
contact: Stackato Support <[email protected]>
icon: activestate.png
icon-url: http://get.stackato.com/store/icon/
src-url: git://github.com/Stackato-Apps/
defaults:
id: $id-from-name
mem: 128
src: $id.git
icon: $id.png
commit: master
info: $github-url#readme
apps:
- name: Currency Converter
desc: Currency converter using Python bottle framework
runtime: Python 2.7
services: Redis
id: currency
src: bottle-currency.git
tags: money, foo, ingy
- name: PHP Info
desc: Executes the phpinfo() function.
runtime: PHP
id: phpinfo
icon: php.png
- name: Rails Movies
desc: Sample Rails app to manage a list of movie titles.
runtime: Ruby 1.9
framework: Rails 3
services: MySQL
src: rails-movie.git
icon: default
The YAML string requires just two keys: apps and store.
This is an array of items, one for each app in the App Store. Each app is defined by the following fields:
- name
- The name of the app as displayed in the App Store list.
- desc
- A short description of the app, displayed below the name.
- id
- A short, lowercase, and unique string associated with the app. Apps are sorted alphabetically in the list based on this field.
- repo
- URL of the git repository where the app code resides.
- commit
- Branch name, tag name, or exact commit hash of the git repository to use. If unspecified, the HEAD commit of master branch is used.
- framework
- The framework the app uses. Examples include perl, python, buildpack, node, rails3.
- icon
- An image used for the app icon specified either as a full URL, a file relative to the store key icon-url URL, default, or other variable values.
- info
- A URL pointing to documentation for the app.
- license
- Software license of the app.
- mem
- Memory requirements of the app (an integer), in MB.
- runtime
- The runtime for the app. Examples include java, python32, ruby19, php, perl514.
- services
- The data services to the app uses.
Contains entries that help define the App Store itself.
- contact
- A name and email address that can be used to contact someone regarding the App Store.
- defaults
- Default values for apps. See above example for more details.
- icon
- An image used for the App Store icon specified either as a full URL, or a file relative to the icons URL.
- icon-url
- A URL pointing to an base directory used for images.
- src-url
- A git URL pointing to an git repository used for applications.
- title
- Text used as a display name for the App Store in the Management Console.
- $id
- The ID of the app.
- $id-from-name
- name.replace(/[^w]+/g, '-').replace(/^-/, '').replace(/-$/, '')
- $github-url
- Combination of src-url and src seperated by a /
The YAML file defining the App Store needs to be placed on a server accessible by any users who need to use it. For a publically accessible App Store, it could be something like:
http://www.mywebsite.com/appstore.yml
To confirm the App Store is loading correctly, select "App Store" in the left menu and view the list of applications displayed. An error will be displayed in the console if an App Store URL fails to load.