PHPackages                             kilroyweb/homeboy - 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. kilroyweb/homeboy

ActiveLibrary

kilroyweb/homeboy
=================

Tool for automating sites using Laravel Homestead

1.1.2(8y ago)17329914[3 issues](https://github.com/kilroyweb/homeboy/issues)PHP

Since Jul 7Pushed 7y ago3 watchersCompare

[ Source](https://github.com/kilroyweb/homeboy)[ Packagist](https://packagist.org/packages/kilroyweb/homeboy)[ RSS](/packages/kilroyweb-homeboy/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (10)Dependencies (3)Versions (22)Used By (0)

Homeboy
=======

[](#homeboy)

Tool for automating sites using Laravel Homestead. With one command, Homeboy will be able to:

- Install Laravel (or another project package) into a new directory via composer
- Update your host file to point your dev domain to your homestead IP
- Update your Homestead.yaml file mapping to include your new project
- Update your Homestead.yaml file to create a database for your project
- Re-provision Vagrant

You can also use homeboy to provision non-laravel websites!

[![](https://camo.githubusercontent.com/7abbd60eba7a1db362daebdd9814f26ca064d8eb567047f5bea9ab6fdb02b6cc/68747470733a2f2f6a2e676966732e636f6d2f6f594d594e4b2e676966)](https://camo.githubusercontent.com/7abbd60eba7a1db362daebdd9814f26ca064d8eb567047f5bea9ab6fdb02b6cc/68747470733a2f2f6a2e676966732e636f6d2f6f594d594e4b2e676966)

Table of Contents
-----------------

[](#table-of-contents)

- [Requirements](#requirements)
- [Installation](#installation)
    - [Install as a global composer package (recommended)](#install-as-a-global-composer-package)
    - [Install using git clone](#install-using-git-clone)
- [Setting Configuration](#setting-configuration)
- [Homeboy Commands](#homeboy-commands)
    - [Host](#host)
    - [File](#file)
    - [Vagrant](#vagrant)
    - [Domain](#domain)
    - [Composer](#composer)
- [Troubleshooting](#troubleshooting)

Requirements
------------

[](#requirements)

On your local (non homestead) machine, Homeboy requires:

- Git
- PHP
- Composer

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

[](#installation)

### Install as a global composer package

[](#install-as-a-global-composer-package)

```
composer global require "kilroyweb/homeboy" dev-master

```

Make sure to place the $HOME/.composer/vendor/bin directory (or the equivalent directory for your OS) in your $PATH so the laravel executable can be located by your system.

Once installed, you can use `homeboy` command from anywhere on your system.

Run the setup command to generate a .env file

```
php homeboy setup

```

### Install using git clone

[](#install-using-git-clone)

- On your local machine, clone Homeboy

```
cd ~
git clone https://github.com/kilroyweb/homeboy.git homeboy

```

- Within the homeboy directoy, run composer

```
cd homeboy
composer install

```

Run the setup command to generate a .env file

```
php homeboy setup

```

**By this point, you should be able to run homeboy within the directory using the command:**

```
php homeboy

```

- Create an alias to run homeboy from any directory:

On mac (in ~/.bash\_profile) add:

```
alias homeboy='php ~/homeboy/homeboy'

```

On windows, an alias can be added using something like if using a tool like [Cmder](http://cmder.net)

```
homeboy=php C:\Users\[USER]\homeboy\homeboy $*

```

*be sure to edit the path based on where homeboy is installed*

Setting Configuration
---------------------

[](#setting-configuration)

After running `homeboy setup`, you should have a .env file in your homeboy directory with a few defaults that have been generated.

These options will likely need to be updated based on your particular setup, details about each available setting are listed below:

#### USE\_COMPOSER

[](#use_composer)

Default option to determine if homeboy should create a new composer project

```
USE_COMPOSER=true

```

#### DEFAULT\_COMPOSER\_PROJECT

[](#default_composer_project)

Default package used when creating a composer project

```
DEFAULT_COMPOSER_PROJECT=laravel/laravel

```

#### DEFAULT\_FOLDER\_SUFFIX

[](#default_folder_suffix)

When hosting a new project, the default directory that nginx would define as the document root. For Laravel projects, by default this is "/public"

```
DEFAULT_FOLDER_SUFFIX=/public

```

#### DEFAULT\_DOMAIN\_EXTENSION

[](#default_domain_extension)

When creating development domains, the default domain suffix given when a domain is generated

```
DEFAULT_DOMAIN_EXTENSION=.app

```

#### HOSTS\_FILE\_PATH

[](#hosts_file_path)

The location to your local hosts file that homeboy will add to when hosting new projects

This file will need to have permissions adjusted to be editable by homeboy

```
HOSTS_FILE_PATH=/etc/hosts

```

#### HOMESTEAD\_HOST\_IP

[](#homestead_host_ip)

The ip address given to your homestead virtual machine. This is likely found in your Homestead.yaml file

```
HOMESTEAD_HOST_IP=192.168.10.10

```

#### HOMESTEAD\_FILE\_PATH

[](#homestead_file_path)

The location to your Homestead.yaml file. Homeboy will update this file's sites list and database list when creating new projects

```
HOMESTEAD_FILE_PATH=/Users/Username/Homestead/Homestead.yaml

```

#### HOMESTEAD\_SITES\_PATH

[](#homestead_sites_path)

The root path to your websites in your homestead virtual machine

```
HOMESTEAD_SITES_PATH=/home/vagrant/Code/

```

#### HOMESTEAD\_BOX\_PATH

[](#homestead_box_path)

The path to your Homestead directory

```
HOMESTEAD_BOX_PATH=/Users/Username/Homestead

```

#### LOCAL\_SITES\_PATH

[](#local_sites_path)

The path on your local machine to where you store your projects. Homeboy will cd into this directory when running "composer create-project ..."

```
LOCAL_SITES_PATH=/Users/Username/Code

```

#### HOMESTEAD\_ACCESS\_DIRECTORY\_COMMAND

[](#homestead_access_directory_command)

In Windows if you are running Homestead on a different drive, an extra command may be required to switch drives before cd'ing into your directory.

This option will cause Homeboy to ignore the option: HOMESTEAD\_BOX\_PATH

```
HOMESTEAD_ACCESS_DIRECTORY_COMMAND="cd /d D: && cd /Homestead"

```

#### ACCESS\_LOCAL\_SITES\_DIRECTORY\_COMMAND

[](#access_local_sites_directory_command)

Similar to HOMESTEAD\_ACCESS\_DIRECTORY\_COMMAND, In Windows if your root project directory is on a different drive, an extra command may be required to switch drives before cd'ing into your directory.

This option will cause Homeboy to ignore the option: LOCAL\_SITES\_PATH

```
ACCESS_LOCAL_SITES_DIRECTORY_COMMAND="cd /d D: && cd /Code"

```

Homeboy Commands
----------------

[](#homeboy-commands)

### Host

[](#host)

```
homeboy host

```

Because this is the default command, you can run host by simply running:

```
homeboy

```

Running this command automates the task of creating a new composer project, updating your hosts file and vagrant files when provisioning a new website

When the command runs, it prompts for the sites directory name, database name, and dev url to update the needed files and then provisions vagrant

A few options have been added to speed up the command. However because the command "homeboy" is simply a shortcut for "homeboy host" (allowing us to add additional commands in the future), options only work when calling "homeboy host" rather than just "homeboy".

Some options available:

- `--use-defaults` : Automatically accept defaults before provisioning
- `--skip-confirmation` : Automatically confirm before running task
- `--name` : Directory name to create project in
- `--database` : Database to add to homestead
- `--domain` : Development domain

The following example will run all tasks automatically without any question prompts:

```
homeboy host --name=my-project --use-defaults --skip-confirmation

```

### Vagrant

[](#vagrant)

Homeboy also contains the "vagrant:run" command, allowing you to quickly run any vagrant command without having to cd into that directory, ie:

```
homeboy vagrant:run status

```

### File

[](#file)

Quickly view a file contents by running:

```
homeboy file hosts

```

or

```
homeboy file homestead

```

### Domain

[](#domain)

The domain command lets you quickly add a new domain record to your hosts file.

```
homeboy domain

```

### Composer

[](#composer)

The composer:create-project command prompts you details on running a "composer create-project \[composer-project\] \[project-name\]" command

```
homeboy composer:create-project

```

Troubleshooting
---------------

[](#troubleshooting)

### hosts file is not writable

[](#hosts-file-is-not-writable)

Your host file will need to be writable by homeboy. In many cases this can be solved with a command like:

`sudo chmod 664 /etc/hosts`

This may vary depending on your platform / environment

### Homeboy is running composer install within my current directory, rather than my defined LOCAL\_SITES\_PATH

[](#homeboy-is-running-composer-install-within-my-current-directory-rather-than-my-defined-local_sites_path)

A common cause of this on Windows is when LOCAL\_SITES\_PATH is in a different drive than where the homeboy command is being run. Since Windows must first change drives before cd'ing into the directory, you can use the "ACCESS\_LOCAL\_SITES\_DIRECTORY\_COMMAND" to overwrite how homeboy accesses this directory. For example:

```
ACCESS_LOCAL_SITES_DIRECTORY_COMMAND="cd /d D: && cd /Code"

```

### Vagrant returns "A Vagrant environment or target machine is required to run this command"

[](#vagrant-returns-a-vagrant-environment-or-target-machine-is-required-to-run-this-command)

This message will be displayed when Homeboy is unable to cd into the proper vagrant directory when running vagrant commands. Please verify your "HOMESTEAD\_BOX\_PATH" value to ensure it is correct.

On Windows, if your HOMESTEAD\_BOX\_PATH is in a different drive than the drive you are running your homeboy command, you may need to add the "HOMESTEAD\_ACCESS\_DIRECTORY\_COMMAND" to add any additional commands (such as switching drives) when accessing the directory. For example:

```
HOMESTEAD_ACCESS_DIRECTORY_COMMAND="cd /d D: && cd /Homestead"

```

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 67.1% 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 ~2 days

Total

20

Last Release

3186d ago

### Community

Maintainers

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

---

Top Contributors

[![kilrizzy](https://avatars.githubusercontent.com/u/132478?v=4)](https://github.com/kilrizzy "kilrizzy (49 commits)")[![kilroyweb](https://avatars.githubusercontent.com/u/20406973?v=4)](https://github.com/kilroyweb "kilroyweb (17 commits)")[![Kehet](https://avatars.githubusercontent.com/u/1544301?v=4)](https://github.com/Kehet "Kehet (5 commits)")[![svenluijten](https://avatars.githubusercontent.com/u/11269635?v=4)](https://github.com/svenluijten "svenluijten (2 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kilroyweb-homeboy/health.svg)

```
[![Health](https://phpackages.com/badges/kilroyweb-homeboy/health.svg)](https://phpackages.com/packages/kilroyweb-homeboy)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.6k509.9M17.0k](/packages/laravel-framework)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[tightenco/jigsaw

Simple static sites with Laravel's Blade.

2.2k438.5k29](/packages/tightenco-jigsaw)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[cognesy/instructor-php

The complete AI toolkit for PHP: unified LLM API, structured outputs, agents, and coding agent control

310107.9k1](/packages/cognesy-instructor-php)[bacula-web/bacula-web

The open source web based reporting and monitoring tool for Bacula

1537.5k](/packages/bacula-web-bacula-web)

PHPackages © 2026

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