This is my vagrant bunker arsenal for development of all the crazy things that i do. It is a box based on Ubuntu 12.04 and supports PHP and Python. This box use vagrant dns plugin for name resolution of websites.
The basic features of the OS is installed on demand.
- Python
- PHP5
- Nginx
- PHP5-Fpm
- Xdebug and all demand extensions
- Nodejs
- Composer
- VirtualEnv
- PIP
- PIL
- MySql Percona
- Postgres
- Sites templates for PHP and Django
- Phpmyadmin
- Ruby
- Git
- Mercurial
- uWsgi
Install vagrant dns plugin. Virtual enviroment is installed in /home/vagrant/.virtualenvs. This machine uses puppet-labs for modules.
To add new names resolution please add it to your vagrant file and follow the instruction of vagrant dns plugin. Example:
config.dns.tld = "dev"
config.vm.hostname = "bunkerbox"
config.dns.patterns = [ /^.*bunkerbox.dev$/, /^.*websublime.dev$/]
Add on dns.patterns. The current pattern responds to domains an subdomains. Please do not change hostname because provision scripts are node based on this name.
Mysql and Postegres uses credentials (root/vagrant). For mysql you have phpmyadmin installed at: http://www.bunkerbox.dev/phpmyadmin/. If you want to access with a client please grant access privileges on phpmyadmin.
Basic clone this repo and construct your virtual box with:
vagrant up
After that a basic website in projects directory is ready to use and gives information about phpinfo.
To add new website there are two scripts on manifests dir.
php.pp and django.pp
Note: on a django project you have to create directory logs on your project directory. Add the following two lines to the ini file created by puppet (/etc/uwsgi/apps-available/project-created-ini.ini:
chmod-socket = 666
chown-socket = www-data:www-data
All you have to do is to edit the file of your choice adding your project configurations and then ssh to vagrant to apply it.
vagrant ssh
cd /vagrant/manifests
sudo puppet apply --hiera_config /vagrant/puppet/hiera.yaml --modulepath /etc/puppet/modules/ php.pp
After this you are ready to rock.
Note: This is my second attempt to make an enviroment to support my prefered languages. If you have nice things to apply, please fork it. Sharing is knowlegement.