# Chassis **Repository Path**: mirrors_danethurber/Chassis ## Basic Information - **Project Name**: Chassis - **Description**: Basic layout of a WordPress Git repository. We use this as a base when creating a new repo. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Chassis Chassis is a virtual server for your WordPress site, built using [Vagrant][]. Chassis is basically a way to run WordPress (and related parts, such as PHP and nginx) without needing to worry about setting up anything. You can imagine it as MAMP/WAMP on steroids. [Vagrant]: http://vagrantup.com/ ## Prerequisites Before using Chassis, this is how your system should be set up: * Install [VirtualBox 4.3.10](https://www.virtualbox.org/wiki/Downloads) * Install [Vagrant](http://www.vagrantup.com/downloads.html) * Zeroconf networking (Bonjour) should be set up: * **OS X**: You already have Bonjour available. * **Windows**: If you have iTunes, Safari, Bonjour Print Services, or Creative Suite 3 installed, you already have Bonjour. Otherwise, you need to install Bonjour on your system. The easiest way to do this is to [install iTunes][itunes]. If you'd prefer not to do this, you can follow [these instructions][bonjour] to install just Bonjour. * **Linux**: You need to have Avahi installed on your system. For Ubuntu: sudo apt-get install avahi-dnsconfd [iTunes]: http://www.apple.com/itunes/download/ [bonjour]: http://help.touch-able.com/kb/network-setup-windows/make-sure-that-bonjour-is-installed-on-your-windows-pc ## Installing Chassis 1. Clone the Chassis repo: ```bash git clone --recursive git@github.com:Chassis/Chassis.git myproject ``` If you forget `--recursive` then run: ```bash git submodule update --init ``` 2. Install your WordPress project: * **If you have an existing project**: Clone the content/ directory! ```bash cd myproject git clone git@github.com:yourcompany/yourproject.git content ``` * **If you are starting a new project**: You will need to create a content folder ```bash cd myproject mkdir content ``` Alternatively you can use our Chassis Supercharger as a base: ```bash git clone --recursive git@github.com:Chassis/Supercharger.git content ``` 3. Boot up a Virtual Machine ```bash vagrant up ``` 4. Make a copy of `local-config-sample.php` and rename to `local-config.php` 5. Browse to http://vagrant.local and you should see your site! ## Working with the Virtual Machine ```bash # Start the VM vagrant up # SSH in to the VM vagrant ssh # Reprovisioning (e.g. after updating this repository) vagrant provision # Reprovisioning without a full apt-get update vagrant provision --provision-with puppet # Updating your hosts file (If there is no IP for vagrant.local) vagrant up # Suspending (sleeping) the VM # Note that this doesn't remove the hosts entry vagrant suspend # Halting (shutting down) the VM vagrant halt # Destroying the VM (if your VM is completely broken) vagrant destroy ``` ## Configuration Chassis contains a flexible configuration setup, allowing you flexibility in overriding the defaults. Chassis follows the following loading procedure: * `content/config.local.yaml` (project-specific overrides) * `content/config.yaml` (project-specific defaults) * `config.local.yaml` (global overrides) * `config.yaml` (global defaults) ### Multisite Chassis has full support for running WordPress in multisite mode. Here's what you need to do to enable it: 1. Add `multisite: Yes` to your `config.local.yaml` or project configuration. 2. Provision your VM! (Note: due to [a bug][#32], you need to destroy and recreate an already-provisioned VM. We're working on fixing this.) That's it! [#32]: https://github.com/Chassis/Chassis/issues/32 ### Adding "Real" Domains We've realized internally that using vagrant.local doesn't always cut it for development, as you may need to use a different domain for testing. Thankfully we can fake it 'til we make it by overriding the default configuration. 1. Add your hosts to your YAML configuration. We recommend using your project-specific configuration (`content/config.yaml`), since it's part of the site's configuration. ```yaml hosts: - vagrant.local - example.chassis.com.au ``` (The first host in the list will be used as the machine's name. We recommend leaving this as `vagrant.local` for the most part.) 2. Reboot your VM (`vagrant reload`) ### MySQL Database Your database can be configured completely via the YAML configuration. This is where the YAML hierarchy is most useful: * `config.yaml` contains the default (User `wordpress`, password `vagrantpassword`) * `config.local.yaml` can contain your "real" database details. These can be generated by a deployment script, such as Capistrano. ## Updating ```bash # Pull and rebase (in case you have project-specific commits) git pull --rebase ## Update submodules (Puppet modules and WP) git submodule update --init ``` ## Login Credentials ### WordPress Admin * URL: http://vagrant.local/wp/wp-admin/ * user: admin * pass: password ### MySQL Database * name: wordpress * user: wordpress * pass: vagrantpassword ## What do you get in Chassis? By default we want to keep Chassis lean, below is a list of what we include: * [WordPress 3.9.1](http://wordpress.org/) * [PHP 5.4](http://www.php.net/) (includes the [cURL](http://www.php.net/manual/en/book.curl.php) and [GD](http://www.php.net/manual/en/book.image.php) extensions) * [nginx](http://nginx.org/) * [MySQL](http://www.mysql.com/) (Some tools including [Git](http://git-scm.com/) and [cURL](http://curl.haxx.se/) are installed during setup. Many more are available as default Ubuntu utilities.) ## What don't you get in Chassis? * phpMyAdmin - Available as an [extension](https://github.com/Chassis/phpMyAdmin) * memcache - Available as an [extension](https://github.com/Chassis/memcache) * XDebug - Extension [coming soon](https://github.com/Chassis/Chassis/issues/53) ## FAQ ### How is Chassis different from [VVV](https://github.com/Varying-Vagrant-Vagrants/VVV)? Each Chassis install is self-contained. We do this to try and mirror the server that you will be deploying to. Note that while you can't have multiple independent installs on the same Chassis box, we support both subdomain and subdirectory multisite out of the box. ### Can you add X? While we certainly can add any feature, consider first if it's better off as a Chassis extension. We try and keep Chassis as lightweight as possible, and extensions are a good way of adding features without weighing down Chassis itself.