Laravel Settler: The Homestead Box Builder
Welcome to the documentation for Laravel Settler. This project contains the provisioning scripts responsible for building the official Laravel Homestead development environment. The end product is a versioned Vagrant box, which is publicly available on Vagrant Cloud.
Who Is This For?
This repository is intended for advanced users who wish to build, customize, or understand the internals of the Laravel Homestead Vagrant box. It is not intended for the typical Laravel developer looking to use Homestead for their projects.
If you simply want to use Laravel Homestead for your development work, please follow the official documentation at:
Laravel Homestead Documentation
Core Purpose
Settler's primary role is to provide a comprehensive set of shell scripts that automate the installation and configuration of a full-stack development environment on a base Ubuntu system. These scripts are designed to be executed by Packer during the virtual machine image creation process, using Chef's Bento project as a foundation.
Key Features & Provisioned Software
The scripts within this repository install and configure a wide array of software, creating a robust and feature-rich development environment. Key components include:
- Multiple PHP Versions: A full suite of PHP versions from 5.6 to 8.3, pre-configured with common extensions, CLI, and FPM.
- Databases: MySQL, MariaDB, PostgreSQL, and SQLite.
- Web Servers: Nginx and Apache.
- Caching Layers: Redis and Memcached.
- Queueing: Beanstalkd daemon.
- Node.js Ecosystem: Node.js, NPM, Yarn, Gulp, Bower, and Grunt.
- Containerization: Docker and Docker Compose.
- Development Tools: Composer, Go, Mailpit, ngrok, WP-CLI, and more.
This documentation will guide you through the process of using these scripts to build your own custom Homestead box.