Documentation VIP Quickstart

VIP Quickstart

Overview #

VIP Quickstart is a local development environment for VIP developers. It provides developers with an environment that closely mirrors along with all the tools we recommend developers use.

VIP Quickstart should not be used to run a production site.

See also: The VIP Quickstart Github repository.

↑ Top ↑

Requirements #


Public Server

  • Ubuntu 12.04
  • Git
  • Puppet

↑ Top ↑

Getting Started #

The first time you run the installer will be the slowest. This is because it has to download the virtual machine image, Ubuntu package updates, the full checkout of WordPress trunk, and the full VIP Plugins repository.

  1. git clone --recursive
  2. Set “ vip.local” in your hosts file or configure Zeroconf
  3. Change directory to the vip-quickstart directory: cd vip-quickstart
  4. Run vagrant up
  5. Go to http://vip.local in your browser, login with username: wordpress, password: wordpress

Windows #

  • Note: When you run the Git installer, make sure to install Git to your system PATH as the VIP Quickstart installer requires it.

  • If you receive a File cannot be loaded because the execution of scripts is disabled on this system error. Make sure you’re using a PowerShell interface. Use tools -> options to manage your default shell. (Right click on the repository and choose “Open a shell here”)

↑ Top ↑

Public Server #

  1. Add user with SSH key
  2. Install Puppet and Git
  3. git clone --recursive /srv
  4. sudo /srv/bin/vip-init --server [--domain=<domain>]

If you specify –domain this will set up the Quickstart environment as ready to serve requests at that domain. You are responsible for making sure that DNS for that domain points to the IP address of your server.

If you leave the domain argument off, you’ll be prompted to enter one during setup. If you don’t specify one then, “” is used by default, and you can work with your local DNS/hosts setup to make sure that points to the right place.

Since we turn off root logins and password logins via SSH, you’ll need to create another user and add an SSH key so you don’t get locked out of your server. ssh-copy-id is useful for copying ssh keys on Linux. There are similar tools for other platforms.

See also: Setting up Quickstart on Amazon Web Services.

↑ Top ↑

Zeroconf #

↑ Top ↑

OS X #

You already have Zeroconf

Windows #

If you have iTunes, you already have this. Otherwise, you need to install Bonjour.


sudo apt-get install avahi-dnsconfd

↑ Top ↑

Configuration #

  • QUICKSTART_DISABLE_CONCAT – CSS and Javascript concatention are turned off if this is true.

↑ Top ↑

Default Usernames and Passwords #

↑ Top ↑


  • root:(blank)

↑ Top ↑

WordPress #

  • wordpress:wordpress

↑ Top ↑

Upgrading Quickstart #

You should be able to upgrade an installed environment with:

  • git pull
  • vagrant provision (assuming Quickstart is already running)

If you experience issues upgrading, it’s probably best to just wipe away Quickstart and start fresh. This is, assuming your site code and any environment configurations are in a Version Control System and easily added back to a fresh install.

↑ Top ↑

Vagrant Primer #

The Vagrant CLI documentation will be useful for developers that haven’t used Vagrant before. Since VIP Quickstart is built on top of Vagrant, the Vagrant CLI commands will also work.

Some useful commands:

  • vagrant up – Start and provisions the VM
  • vagrant halt – Stops the VM
  • vagrant reload – Restarts and provisions the VM
  • vagrant provision – Provisions the VM
  • vagrant ssh – Logs into the VM with ssh
  • vagrant destroy – Deletes the VM

↑ Top ↑

Enabling and Activating a Custom Theme #

In order to use a custom theme in VIP Quickstart, move a valid WordPress theme folder into this directory:


Once the theme is in the correct directory, you can “Network Enable” it from this page:


From there you should be able to activate it on individual sites.

↑ Top ↑

Loading Plugins #

To approximate the admin interface on, Quickstart does not have a Plugins admin menu section. Instead, you can load plugins via your theme code (usually in functions.php).

Any plugin available in the VIP shared plugins repository can be loaded with a call to wpcom_vip_load_plugin. That function will work on Quickstart and If a plugin is in the VIP plugins repository, you should not copy that plugin into your theme.

To load a plugin not in the VIP shared plugin repository, you can use a call to require_once and specify the path to the plugin file.

If you only want the plugin to load in Quickstart and not on, you can use logic like this:

if ( defined( 'WPCOM_IS_VIP_ENV' ) && true === WPCOM_IS_VIP_ENV ) {
    // Running on, don't load anything
} else {
    require_once( WP_CONTENT_DIR . '/plugins/my-plugin/my-plugin.php' );

We advise against any logic that makes functionality exceptions for your development environment; development and production environments should be as close as possible to avoid unexpected production-specific issues.

↑ Top ↑

Importing Content #

The best way to import content into a Quickstart site is to SSH into the Vagrant VM and use the ( command. It’s helpful to first move the import files into the vip-quickstart directory.

↑ Top ↑

phpMyAdmin #

VIP Quickstart does not include a copy of phpMyAdmin, since we do not recommend using this tool for making changes to the MySQL database as a part of your development and testing work. Instead, use WordPress’s built-in functionality and API to query and manipulate data according to our best practices.

↑ Top ↑

Unit Testing #

VIP Quickstart comes with a checkout of the WordPress-Tests automated testing framework. You can use this to run the unit tests for WordPress itself or for any plugin or theme that has phpunit tests defined.

↑ Top ↑

To run the WordPress unit tests #

  • CD to /srv/www/wp-tests from within the VM.
  • Run phpunit

↑ Top ↑

To create unit tests for your plugin/theme #

Important Note: Due to the PEAR install method being at end-of-life, PHPUnit does not currently install properly on Quickstart, and so unit testing will not work. We’re working on a new install method that addresses this.

  1. Navigate to your theme or plugin within the VM. (eg. /srv/www/wp-content/plugins/my-plugin)
  2. Use WP CLI to the generate the plugin test files. Eg. wp scaffold plugin-tests my-plugin
  3. Run phpunit inside your theme or plugin directory.
  4. Start building your tests within the newly created tests directory.

↑ Top ↑

Differences between Quickstart and #

While we created Quickstart to mirror the environment as closely as possible, there are some key differences to be aware of:

  • There’s currently no support for SSL on Quickstart.
  • If you install Quickstart on a VPS that’s publicly accessible, you can take advantage of Photon, which is similar to the CDN used on If Quickstart is only local, you’ll be limited to the local Media Library.
  • Some toolbar modifications on are not yet present in Quickstart.
  • Database encoding on is latin1. On Quickstart, it’s utf8.
  • Protected embeds are not yet supported on Quickstart.
  • Filesystem access is not yet fully restricted in Quickstart as it is on
  • There may be minor version differences in some libraries, such as jQuery.

If you’d like to help minimize these differences, you can view the list of compat issues on GitHub.