# Local Development
Development is handled by Vagrant in Trellis. Our Vagrantfile
automatically uses the Ansible provisioner to run the dev.yml
playbook and you'll get a virtual machine running your WordPress site.
- Configure your site(s) based on the WordPress Sites docs and read the development specific ones.
- Make sure you've edited both
group_vars/development/wordpress_sites.yml
andgroup_vars/development/vault.yml
. - Optionally configure the IP address at the top of the
vagrant.default.yml
to allow for multiple boxes to be run concurrently (default is192.168.50.5
). - Run
trellis up
from anywhere in your project (orvagrant up
from your trellis directory, usually thetrellis/
subdirectory of your project).
Note
trellis up
will fail if you are using encrypted folders/hard drives
Then let Vagrant and Ansible do their thing. After roughly 5-10 minutes you'll have a server running and a WordPress site automatically installed and configured.
To access the VM, run trellis ssh development
(orvagrant ssh
from your trellis
directory). Sites can be found at /srv/www/<site name>
. See the Vagrant docs for more commands.
Note that each WP site you configured is synced between your local machine (the host) and the Vagrant VM. Any changes made to your host will be synced to the VM.
Composer and WP-CLI commands need to be run on the virtual machine for any post-provision modifications. Front-end build tools should be run from your host machine and not the Vagrant VM.
Mounting an encrypted folder is not possible with Trellis due to an issue with NFS.
Windows user?
Windows users have a slightly different workflow. See the Windows getting started docs.
# WordPress installation
Trellis installs WordPress on your first vagrant up
with admin
as the default user. You can override this by defining admin_user
, as noted in the WordPress sites options.
# Re-provisioning
Re-provisioning is always assumed to be a safe operation. When you make changes to your Trellis configuration, you should provision the VM again to apply the changes:
Run the following from your project's trellis
directory:
$ vagrant provision
You can also provision with specific tags to only run the relevant roles:
Run the following from your project's trellis
directory:
$ SKIP_GALAXY=true ANSIBLE_TAGS=users vagrant provision
Notes on the commands:
SKIP_GALAXY
saves some time because you already have those roles installedANSIBLE_TAGS
runs only the relevant roles--provision
is so that it runs thedev.yml
playbook and its roles taggedwordpress
If you added a new WordPress site (or manually added new synced directories to Vagrant), you'll need to reload the VM as well:
$ vagrant reload --provision