PHPackages                             palantirnet/the-vagrant - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. palantirnet/the-vagrant

AbandonedArchivedLibrary[DevOps &amp; Deployment](/categories/devops)

palantirnet/the-vagrant
=======================

Install a Vagrant environment into a Drupal project.

2.7.0(5y ago)247.1k1[4 PRs](https://github.com/palantirnet/the-vagrant/pulls)proprietaryRuby

Since Apr 15Pushed 4y ago31 watchersCompare

[ Source](https://github.com/palantirnet/the-vagrant)[ Packagist](https://packagist.org/packages/palantirnet/the-vagrant)[ RSS](/packages/palantirnet-the-vagrant/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (34)Used By (0)

"The" Vagrant
=============

[](#the-vagrant)

Add a customizable vagrant environment into a Drupal project. This may be used in conjunction with the [drupal-skeleton](https://github.com/palantirnet/drupal-skeleton) and [the-build](https://github.com/palantirnet/the-build), or it may be used to retrofit an existing project with a VM-based development environment.

*Note: If you are setting up a new project, you likely want to start with [drupal-skeleton](https://github.com/palantirnet/drupal-skeleton).*

Why the-vagrant?
----------------

[](#why-the-vagrant)

- Start from [a base box that comes with the basics installed](https://app.vagrantup.com/palantir/boxes/drupalbox) for fast, consistent startup
- Use a thin layer of configuration to set up your project, without masking Vagrant itself
- Customize with [Ansible playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html) when necessary
- Separate your local development environment from your build tools

Dependencies
------------

[](#dependencies)

- [Vagrant](https://www.vagrantup.com/) &gt;= 2.1.0
- Vagrant plugins:
    - [vagrant-hostmanager](https://github.com/devopsgroup-io/vagrant-hostmanager)
    - [vagrant-auto\_network](https://github.com/oscar-stack/vagrant-auto_network)
- [Virtualbox](https://www.virtualbox.org/wiki/Downloads) &gt;= 5.0
- [Ansible](https://github.com/ansible/ansible) &gt;= 2.9

Installation
------------

[](#installation)

To use the-vagrant on a project, you will need to:

1. Use composer to add the package to your project:

    ```
    composer require --dev palantirnet/the-vagrant

    ```
2. Run the-vagrant's install script to add and configure the Vagrantfile:

    ```
    vendor/bin/the-vagrant-installer

    ```

- This will prompt you for project-specific configuration:
    - The project hostname
    - The project web root
    - Enable Solr
    - Enable HTTPS
    - Add a project-specific Ansible playbook to be run in addition to the default playbook

3. Check in and commit the new Vagrantfile to git

If you need to change your configuration later, you can re-run the install script, or edit the `Vagrantfile` directly.

Updating
--------

[](#updating)

To update an existing installation of `the-vagrant` in a project, you will need to:

1. `composer update palantirnet/the-vagrant`
2. Follow any steps from the [release notes](https://github.com/palantirnet/the-vagrant/releases).

*Note:* If you need to update the underlying VM (the Vagrant box [drupalbox](https://app.vagrantup.com/palantir/boxes/drupalbox), which includes PHP, Apache, MySQL, and Solr), you will need to run `vagrant destroy` then `vagrant box update` and `vagrant up`. Updating the VM doesn't always require updating `the-vagrant`, and vice versa.

Customizing your environment
----------------------------

[](#customizing-your-environment)

Several things can be configured during the interactive installation:

- The project hostname
- The project web root
- Enable Solr
- Enable HTTPS

A few more things can be customized directly in your `Vagrantfile`:

- Extra hostnames for this VM (use this for multisite)
- Extra apt packages to install
- The PHP timezone

By default, the-vagrant references ansible roles from the package at `vendor/palantirnet/the-vagrant/conf/vagrant/provisioning`. If your project needs configuration beyond what is provided via in the `Vagrantfile`, you can re-run the install script and update the provisioning.

### Run a custom playbook in addition to the defaults

[](#run-a-custom-playbook-in-addition-to-the-defaults)

1. Re-run the install script: `vendor/bin/the-vagrant-installer`
2. When you are prompted to copy the Ansible roles, reply `n`
3. When you are prompted to add an additional Ansible playbook to your project, reply `Y`

> Copy Ansible roles into your project for customization (Y,n) \[n\]? n
>
> OR add an additional Ansible playbook to your project (Y,n) \[n\]? Y

3. This will create a new `provisioning` directory in your project that contains a simple Ansible playbook and example role. Your `Vagrantfile` will refer to this playbook in addition to the one in the `vendor` directory.
4. Check in and commit this new `provisioning` directory and updated `Vagrantfile` to git
5. Add or update the roles and playbook as necessary.

### Tips for developing Ansible playbooks and roles

[](#tips-for-developing-ansible-playbooks-and-roles)

- The Ansible documentation has an [Intro to Playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html)
- Check the syntax of a playbook:

    ```
      ansible-playbook --syntax-check provisioning/my_playbook.yml

    ```
- Run a playbook against a Vagrant box without re-provisioning the box:

    ```
      ansible-playbook -u vagrant -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory provisioning/my_playbook.yml

    ```
- Debug step outputs and variables within a role using the [debug module](https://docs.ansible.com/ansible/devel/modules/debug_module.html):

    ```
      - name: Some command
        command: ls
        register: my_command_output
      - name: Some debugging
        debug:
          var: my_command_output

    ```
- Add third-party roles from Ansible Galaxy:

    1. Create a [requirements.yml file](https://docs.ansible.com/ansible/devel/reference_appendices/galaxy.html?highlight=requirements%20yml#installing-multiple-roles-from-a-file) at `provisioning/requirements.yml`
    2. Configure the `ansible.galaxy_role_file` and `ansible.galaxy_roles_path` properties for the custom playbook in your `Vagrantfile`:

    ```
      if (defined?(ansible_custom_playbook) && !ansible_custom_playbook.empty?)
          config.vm.provision "myproject-provision", type: "ansible" do |ansible|
              ansible.playbook = ansible_custom_playbook
              ansible.galaxy_role_file = "provisioning/requirements.yml"
              ansible.galaxy_roles_path = "provisioning/roles/"
          end
      end

    ```
- In the Vagrantfile, pass additional configuration through to the Ansible provisioners. A great use case for this is setting the `php_ini_memory_limit` when using the default `palantirnet/the-vagrant` provisioning:

    ```
      ansible.extra_vars = {
        "project" => project,
        "hostname" => hostname,
        "extra_hostnames" => extra_hostnames,
        "solr_enabled" => ansible_solr_enabled,
        "https_enabled" => ansible_https_enabled,
        "project_web_root" => ansible_project_web_root,
        "timezone" => ansible_timezone,
        "system_packages" => ansible_system_packages,
        "php_ini_memory_limit" => "512M",
      }

    ```

Default Software
----------------

[](#default-software)

`the-vagrant` uses Vagrant boxes built with [palantirnet/devkit](https://github.com/palantirnet/devkit). Releases of this Vagrant base box [are on Vagrant Cloud](https://app.vagrantup.com/palantir/boxes/drupalbox). You can find more information about the specifics of accessing default software like MySQL, Solr, and Mailhog in the [Drupalbox README](https://github.com/palantirnet/devkit/blob/develop/drupalbox/README.md).

### Compatibility between the-vagrant and base boxes

[](#compatibility-between-the-vagrant-and-base-boxes)

Some versions of the-vagrant are coordinated with releases of the [palantir/drupalbox](https://app.vagrantup.com/palantir/boxes/drupalbox) Vagrant box:

the-vagrant versionpalantir/drupalbox versionVagrant providerVagrant version2.2.0&gt;= 1.2.0, &lt; 2.0virtualbox&gt;= 2.1.02.1.0&gt;= 1.2.0, &lt; 2.0virtualbox2.0.11.1.1, 1.2.0virtualbox2.0.01.1.0, 1.1.1virtualbox, vmware\_desktop (drupalbox v1.1.0 only)0.6.0 - 1.1.1&gt;= 0.2.4, &lt; 1.0virtualbox, vmware\_desktop\* Note that version 1.2.0 of the palantir/drupalbox VM requires updating to version 2.0.1 of palantirnet/the-vagrant.

---

Copyright 2016 - 2020 Palantir.net, Inc.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 83.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~55 days

Recently: every ~30 days

Total

28

Last Release

2183d ago

Major Versions

0.7.1 → 1.0.02017-02-16

1.1.1 → 2.0.02017-11-10

2.4.0 → 3.x-dev2019-11-19

### Community

Maintainers

![](https://www.gravatar.com/avatar/e4d789212d8294371ed2521e511703742071759baf31283c89fd4bec76b869b6?d=identicon)[palantirnet](/maintainers/palantirnet)

![](https://www.gravatar.com/avatar/83bf1351140cdffe8341925a6708101d53da8b48930f325c0e3569e2f73ee18e?d=identicon)[becw](/maintainers/becw)

---

Top Contributors

[![becw](https://avatars.githubusercontent.com/u/207974?v=4)](https://github.com/becw "becw (162 commits)")[![byrond](https://avatars.githubusercontent.com/u/767994?v=4)](https://github.com/byrond "byrond (10 commits)")[![patrickfweston](https://avatars.githubusercontent.com/u/2760383?v=4)](https://github.com/patrickfweston "patrickfweston (9 commits)")[![froboy](https://avatars.githubusercontent.com/u/238201?v=4)](https://github.com/froboy "froboy (5 commits)")[![lukewertz](https://avatars.githubusercontent.com/u/110637?v=4)](https://github.com/lukewertz "lukewertz (4 commits)")[![mathewpeterson](https://avatars.githubusercontent.com/u/203190?v=4)](https://github.com/mathewpeterson "mathewpeterson (3 commits)")[![zendoodles](https://avatars.githubusercontent.com/u/242217?v=4)](https://github.com/zendoodles "zendoodles (1 commits)")

### Embed Badge

![Health badge](/badges/palantirnet-the-vagrant/health.svg)

```
[![Health](https://phpackages.com/badges/palantirnet-the-vagrant/health.svg)](https://phpackages.com/packages/palantirnet-the-vagrant)
```

###  Alternatives

[deployer/deployer

Deployment Tool

11.0k25.4M207](/packages/deployer-deployer)[appwrite/server-ce

End to end backend server for frontend and mobile apps.

55.3k84.2k](/packages/appwrite-server-ce)[pragmarx/health

Laravel Server &amp; App Health Monitor and Notifier

2.0k1.0M2](/packages/pragmarx-health)[felixfbecker/language-server-protocol

PHP classes for the Language Server Protocol

22476.7M6](/packages/felixfbecker-language-server-protocol)[heroku/heroku-buildpack-php

Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku

8161.3M10](/packages/heroku-heroku-buildpack-php)[tiamo/phpas2

PHPAS2 is a php-based implementation of the EDIINT AS2 standard

4674.7k](/packages/tiamo-phpas2)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
