Environment Variables

Helion Stackato exposes a number of predefined environment variables during runtime (including hook processing, cron jobs and ssh commands).

You can set your own environment variables:

Note

To see a complete list of environment variables in a Helion Stackato application container, deploy the node-env sample.

DATABASE_URL

Contains an access URL for a database service. If more than one type of database is present, DATABASE_URL will not be available. Instead, use the Database Specific URL variables below. Example:

mysql://u93Mm8XmGXQ9R:p8LwNeQXMrNzi@192.168.0.112:3306/d0a60c0be931f4982bbef153f993237bc
HOME
Identifies the working directory assigned to a particular user on login. In a Helion Stackato application container, this is generally set to /home/stackato/app/ by default.
HTTP_PROXY
A variable recognized by many web applications to direct them to a proxy HTTP server.
MEMCACHED_URL
Location of and credentials for the bound Memcached service, if there is (only) one.
MEMORY_LIMIT
The amount of memory allocated to the application container.
MONGODB_URL
Location of and credentials for the bound MongoDB service, if there is (only) one.
MYSQL_URL
Location of and credentials for the bound MySQL service, if there is (only) one.
PATH
A list of directories, separated by :, which are to be searched for the names of executable files to be interpreted as commands.
PIP_OPTS

Custom/alternate PIP repo location. For example:

env:
  PIP_OPTS: "--extra-index-url=http://company.com/inhouse-pypi-mirror"
PORT
Helion Stackato alternative for VCAP_APP_PORT.
POSTGRESQL_URL
Location of and credentials for the bound PostgreSQL service, if there is (only) one.
PROCESSES_WEB

This variable contains the default start command that would be used when manifest.yml does not override it. It is provided so that users can specify a wrapper around the default command. For example:

processes:
  web: newrelic_wrapper $PROCESSES_WEB

Note

PROCESSES_WEB may be undefined when Helion Stackato cannot determine the default command (for example, because the app uses a non-standard main application file).

PYPM_OPTS

Custom/alternate PyPM repo location. Repo mirroring is sort of undocumented feature. Example:

env:
  PYPM_OPTS: "-R http://pypm-free.activestate.com/2.7/linux-x86_64/"
RABBITMQ_URL
Location of and credentials for the bound RabbitMQ service, if there is (only) one.
REDIS_URL
Location of and credentials for the bound Redis service, if there is (only) one.
STACKATO_APP_ENV

Note

Internal use, subject to change.

Contains a list of all environment variables set with stackato env-add or in manifest.yml.

STACKATO_APP_NAME
Contains the application name as specified during application push (or in manifest.yml). Available during staging as well as in the application instance.
STACKATO_APP_NAME_UPCASE

Contains the same value as STACKATO_APP_NAME transformed to uppercase, with dashes replaced by underscores. For example if STACKATO_APP_NAME is php-info, then STACKATO_APP_NAME_UPCASE will be PHP_INFO.

This makes it possible to access the environment variables for harbor and filesystem services.

STACKATO_APP_ROOT

This is the root directory from the Helion Stackato point of view. It contains app specific HOME directory (app/), the log file directory (logs/) and various scripts.

The HOME environment variable actually points to the app directory, which commonly looks like the directory uploaded by the client. This is where manifest.yml and all the application files are located.

STACKATO_DOCUMENT_ROOT
This contains the root directory where the user can access. The document-root must always be specified relative to $HOME (/home/stackato/app).
STACKATO_FILESYSTEM

If the app uses a single filesystem service, then the local mount point is stored in this variable.

If there is more than one filesystem service, STACKATO_FILESYSTEM is not available. Instead, a custom environment variable STACKATO_FILESYSTEM_* will be created based on the name of each filesystem service (with hyphens replaced by underscores).

For example, if your manifest.yml file configures the following services:

services:
  my-data: filesystem
  plugins: filesystem

Two environment variables would be created: STACKATO_FILESYSTEM_MY_DATA and STACKATO_FILESYSTEM_PLUGINS.

STACKATO_GROUP

Important

This variable is deprecated. It can be used only with Stackato 2.x.

Can be set in the local shell to specify the group for the stackato client. When set, the stackato group command is ignored until the variable is explicitly unset. If empty, the client sets the group to none. Can be overridden with the --group option.

STACKATO_LOG_FILES
A colon-separated list of log files to be included in the the application log stream. You can add up to five additional files to the default list by modifying this variable. See Adding Files to the Stream.
STACKATO_SERVICES
Contains connection details and credentials for services bound to the application. For filesystem services, it contains the local mount point. See STACKATO_SERVICES.
STACKATO_TARGET
Can be set in the local shell to specify the API endpoint target for the stackato client. When set, the stackato target command is ignored until the variable is explicitly unset. Can be overridden with the --target option.
STACKATO_UWSGI

Set by the Perl and Python frameworks only. It contains the default UWSGI start command to run the application via uwsgi. It is provided in case the user wants to add additional uwsgi options in manifest.yml:

processes:
  web: $STACKATO_UWSGI --another-uwsgi-option
VCAP_APP_HOST
This variable contains the IP address of the host that the application is running on.
VCAP_APP_PORT
This variable contains the port that the application will be exposed on.
VCAP_APPLICATION
This variable contains all relevant application details for the Helion Stackato Application (instance ID, application name, application URIs, users, groups, and so on).
VCAP_SERVICES
Contains connection details, credentials, and meta data for services bound to the application. See VCAP_SERVICES.

Staging Variables

The following environment variables are available during application staging, and can be used in buildpacks or staging hooks:

Note

Service instance variables (for example, STACKATO_SERVICES and VCAP_SERVICES) can change between staging and running. Do not save values from these variables to config files during staging as the hard-coded values may no longer be applicable after staging.