/puphpet

Vagrant/Puppet GUI

Primary LanguageJavaScriptOtherNOASSERTION

PuPHPet

PuPHPet - A simple GUI to set up virtual machines for PHP development

Build Status

What?

PuPHPet is a web application that allows you to easily and quickly generate custom Vagrant and Puppet controlled virtual machines.

If you're unfamiliar with either Vagrant or Puppet, I wrote a blog titled "Make $ vagrant up yours".

How?

Built on top of the great Silex framework, we use PHP to generate a custom Vagrantfile and Puppet manifest with your custom choices.

Why?

I started using Vagrant and Puppet when I wanted a simple PHP 5.4 VM to do my development on. I could find nothing pre-made that didn't come with a bunch of cruft I did not want so I decided to create a tool that would ease this task for other developers who may not want to learn Puppet's DSL to get a VM up and running so they can develop in their language of choice.

Who?

Originally developed by Juan Treminio, PuPHPet has now had 22 contributors with the talented Frank Stelzer heavily contributing. Also making significant contributions is Michaël Perrin.

Goals

The main goal of PuPHPet is to eventually replace tools such as XAMPP, WAMPP, MAMPP and other all-in-one servers that create development environments on your main operating system.

Eventually PuPHPet will be good enough to help create production-ready servers!

Requirements

To run PuPHPet-generated manifests, you'll need to install Vagrant version 1.2.0 or greater. Vagrant will run on Windows, OS X and Linux.

Contribute

Requirements

  • PHP 5.4
  • For executing all the tests puppet-lint has to be installed on your machine.
  • Some Silex knowledge is required.

The all-in-one solution

  • Enter our quickstart page and download the vagrant archive.

  • Create a new vagrant box and start it with $ vagrant up on your terminal.

  • Provisioning progress will need some time as the PuPHPet project is directly cloned and installed to /var/www/puphpet.dev

  • Edit your hosts file and map puphpet.dev to localhost.

    127.0.0.1 puphpet.dev

If you're using Windows based operating systems, hosts file can be found under system32/drivers/etc/hosts.

  • Browse puphpet.dev in your browser's address bar and you hould see the project's index page.

Note: The quickstart approach is still in beta. Any feedback is highly appreciated!

For creating a patch you have to fork the project and within the box you have to do:

cd /var/www/puphpet.dev
git remote add fork git@github.com:<your username here>/puphpet.git
git checkout -b my-patch
# git add ...
# git commit -m "some patch"
git push fork my-patch

For existing environments

  • PuPHPet will work on any default LAMP or LNMP environment.
  • Enter our quickstart page and download the vagrant archive.
  • When you already have a running environment, please have a look at the generated manifest/default.pp file and especially to the package list.
  • Ensure that the required packages are installed on your system.
  • Clone the project from github and install it via composer.

Setup:

mkdir -p /var/www/puphpet.dev
cd /var/www/puphpet.dev
git clone git@github.com:puphpet/puphpet.git .
composer install --dev

Run the tests

Before you create a PR you should go sure that everything works well and you didn't break anything. Running the tests is quite simple as PHPUnit is already installed by Composer and you only have to call its runner.

$ ./vendor/bin/phpunit

Used third-party Puppet Modules

License

PuPHPet is licensed under the MIT license all third-party Puppet Modules are licensed under Apache License v2.0.