PuPHPet - A simple GUI to set up virtual machines for PHP development
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".
Built on top of the great Silex framework, we use PHP to generate a custom Vagrantfile and Puppet manifest with your custom choices.
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.
Originally developed by Juan Treminio, PuPHPet has now had 15 contributors with the talented Frank Stelzer heavily contributing. Also making significant contributions is Michaël Perrin.
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!
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.
- PHP 5.4
- For executing all the tests puppet-lint has to be installed on your machine
- some Silex knowledge
-
go to our quickstart page and download the vagrant archive
-
create a new vagrant box and start it with
$ vagrant up
-
the provisioning will need some time as the PuPHPet project is directly cloned and installed to
/var/www/puphpet.dev
-
map puphpet.dev to localhost in your hosts file
127.0.0.1 puphpet.dev
-
call puphpet.dev and you should see the project's startpage
-
the quickstart approach is still in beta, 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 [email protected]:<your username here>/puphpet.git
git checkout -b my-patch
# git add ...
# git commit -m "some patch"
git push fork my-patch
- PuPHPet will work on any default LAMP or LNMP environment
- go to our quickstart page and download the vagrant archive
- when you have already 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 with composer
Setup:
mkdir -p /var/www/puphpet.dev
cd /var/www/puphpet.dev
git clone [email protected]:puphpet/puphpet.git .
composer install --dev
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
- PHP: https://github.com/example42/puppet-php
- Apache: https://github.com/example42/puppet-apache
- nginx: https://github.com/jfryman/puppet-nginx
- MySQL: https://github.com/puppetlabs/puppetlabs-mysql
- PostgreSQL: https://github.com/puppetlabs/puppetlabs-postgresql
PuPHPet is licensed under the MIT license all third-party Puppet Modules are licensed under Apache License v2.0.