AppFog Documentation

AF CLI Tool

af is based on CloudFoundry's vmc but includes features specific to AppFog and has the default target set to AppFog's service. Check out the GitHub repo.

Installation

The af command line tool is written in Ruby and installed as a gem:

Mac OS X and Linux

$ gem install af

Note: af requires Ruby 1.8.7 or newer.

If you're on Mac OS X 10.7 Lion and you're having trouble, you may have to do the following:

  1. Install Xcode 4.3 and the Xcode command line tools (use the "downloads" preference pane to download the command line tools).

  2. Install homebrew.

  3. Install libksba with homebrew.

    $ brew install libksba

  4. Install RVM.

  5. Install Ruby 1.9.3:

    $ rvm install ruby-1.9.3 $ rvm use 1.9.3

  6. Install af

    $ gem install af $ af login

Windows

Download and install Ruby Installer for Windows. The installer already includes RubyGems.

Be sure you use the Ruby-enabled command prompt window when you later install and use af. You access this command prompt from the Windows Start menu (All Programs > Ruby > Start Command Prompt with Ruby).

Finally, update RubyGems from the Ruby Command Prompt:

$ gem update --system
$ gem install af

Login with:

$ af login

Finally from within your source code directory:

$ af update hello-node

Getting Started

target [url] Reports current target or sets a new target
login [email] [--email, --passwd] Login
info System and account information

Apps

apps List deployed applications

Application Creation

push [appname] Create, push, map, and start a new application
push [appname] --infra Push application to specificed infrastructure
push [appname] --path Push application from specified path
push [appname] --url Set the url for the application
push [appname] --instances <N> Set the expected number <N> of instances
push [appname] --mem M Set the memory reservation for the application
push [appname] --runtime RUNTIME Set the runtime to use for the application
push [appname] --no-start Do not auto-start the application

Application Operations

start <appname> Start the application
stop <appname> Stop the application
restart <appname> Restart the application
delete <appname> Delete the application
clone <src-app> <dest-app> [infra] Clone the application and services

Application Updates

update <appname> [--path] Update the application bits
mem <appname> [memsize] Update the memory reservation for an application
map <appname> <url> Register the application to the url
unmap <appname> <url> Unregister the application from the url
instances <appname> <num|delta> Scale the application instances up or down

Application Information

crashes <appname> List recent application crashes
crashlogs <appname> Display log information for crashed applications
logs <appname> [--all] Display log information for the application
files <appname> [path] [--all] Display directory listing or file download for path
stats <appname> Display resource usage for the application
instances <appname> List application instances

Application Download

pull <appname> [path] Downloads last pushed source to <appname> or [path]
download <appname> [path] Downloads last pushed source to zipfile

Application Environment

env <appname> List application environment variables
env-add <appname> <variable[=]value> Add an environment variable to an application
env-del <appname> <variable> Delete an environment variable to an application

Services

services Lists of services available and provisioned
create-service <service> [--name,--bind] Create a provisioned service
create-service <service> --infra Create a provisioned service on a specified infrastructure
create-service <service> <name> Create a provisioned service and assign it <name>
create-service <service> <name> <app> Create a provisioned service and assign it <name>, and bind to <app>
delete-service [servicename] Delete a provisioned service
bind-service <servicename> <appname> Bind a service to an application
unbind-service <servicename> <appname> Unbind service from the application
clone-services <src-app> <dest-app> Clone service bindings from <src-app> application to <dest-app>
export-service <service> Export data from a specified service
import-service <service> <url> Import data to a specified service
tunnel <servicename> [--port] Create a local tunnel to a remote service
tunnel <servicename> <clientcmd> Create a local tunnel to a remote service and start a local client

Administration

user Display user account information
passwd Change the password for the current user
logout Logs current user out of the target system
add-user [--email, --passwd] Register a new user (requires admin privileges)
delete-user <user> Delete a user and all apps and services (requires admin privileges)

System

runtimes Display the supported runtimes of the target system
frameworks Display the recognized frameworks of the target system
infras Display the available infrastructures

Misc

aliases List aliases
alias <alias[=]command> Create an alias for a command
unalias <alias> Remove an alias
targets List known targets and associated authorization tokens

Help

help [command] Get general help or help on a specific command
help options Get help on available options