Skip to content
This repository has been archived by the owner on Oct 18, 2024. It is now read-only.
/ draft-environment Public archive

Vagrant-based environment setup for Draft Drupal

Notifications You must be signed in to change notification settings

lemberg/draft-environment

Repository files navigation

Draft Environment

Latest Stable Version Build Status codecov

This is Vagrant-based development environment for Drupal projects. This project is a part of a Draft Drupal project template.

Prerequisites

  • PHP (7.4+) and Composer 2
  • Vagrant (2.2.6+)
  • VirtualBox (5.2+)
  • mkcert (optional)

Vagrant plugins (will be automatically installed)

Manages host and/or guest hosts files. Draft is configured to create a hostname.test DNS record on a host machine.

A Vagrant plugin to resize disks in VirtualBox.

Dramatically increases disk IO on Windows by adding NFS support.

How to

  1. (Optional) Locally-trusted SSL certificates

    Skip this step if mkcert is already installed and the local CA does already exist.

    Install mkcert in order to get locally-trusted development SSL certificates. This tool requires no configuration. After installation just run:

    $ mkcert -install
    
  2. Add Draft Environment to the project (as a dev dependency):

    $ composer require --dev lemberg/draft-environment
    
  3. Configure guest machine by answering installer's questions. At the moment, project name (hostname) and PHP version are the only settings that can be set interactively

  4. Override any variable used in any Ansible role by manually editing the vm-settings.yml. All available variables alongside with their default values are listed in default.vm-settings.yml

    Here's the list of used roles:

  5. Create and provision the guest machine:

    $ vagrant up
    
  6. Commit .gitignore, Vagrantfile and vm-settings.yml to lock the VM state

  7. Configuration can be overridden locally by creating and editing vm-settings.local.yml (and this file must not be committed)

Documentation

Everybody loves documentation. We do too! Check this out.

Changelog

Changelog can be found here CHANGELOG.md