About
Initializer for Laravel takes a visual, approach to setting up a new
Laravel project. Fill out the form, choose the components you like
and hit the red "Generate" button at the bottom to download a zip
archive containing your fresh application. Once you've extracted the
archive, execute ./initialize
in your terminal and the
script will install all components into your application.
2242 projects initialized 🚀
Last checked: 1s ago
Prerequisites
Initializer for Laravel requires you to have
Docker and
docker-compose
installed and running. A quick guide on
how to set everything up for various operation systems is explained
by the
official Laravel documentation.
To make the setup as easy as possible, we use
Laravel Sail and its services. The blue
Sail
tag
indicates that an option has a corresponding software component,
which would normally need to be manually installed on your system.
By using the power of containers, we are able to automatically
install such components automatically where it makes sense. For
example, if you choose to include Redis as a cache for your project,
we'll automatically enable the service in the generated
docker-compose.yml
file, and once you have initialized
your application, Redis will be running on your computer inside a
container.
Motivation
The Laravel "Getting Started" section of the documentation describes how the following command can be used to quickly create a new Laravel application:
curl -s "https://laravel.build/example-app" | bash
This downloads and executes a script from the Laravel servers, which generates a new application using Docker. While this works really well, you only get the default configurations and some limited customization options regarding the included Sail services. Also while by default a container for MeiliSearch and Selenium gets included, the dependencies for actually connecting and using those (Laravel Scout, the MeiliSearch PHP SDK and Laravel Dusk) are missing and need to be installed manually.
A web form opens up more customization options, where each of the components is presented and summarized, with links pointing to more detailed documentation.
Credits & Inspiration
This project was inspired by the Spring Initialzr, which generates similar archives for applications using the Spring Framework. While Initializer for Laravel focuses more closely on first-party packages, I used the same idea to generate zip archives that are parameterized using an online form.