An easy way to get started with docker in your laravel installation with local https support. Heavily inspired by Laravel Sail.
Services included:
- nginx + php8.0-fpm
- mysql 8
- redis
- mailhog
- docker
- mkcert (if you wish to use https locally)
Via Composer
$ composer require jamosaur/vali
$ php artisan vali:install
$ ./vendor/bin/vali up
The set up wizard will ask you some questions about your requirements. Answer the questions and config will be generated for you.
The first time you run up
may take a while as it will have to download docker images, subsequent runs will be much faster.
While not necessary, it is highly recommended to add a bash alias for vali.
By adding an alias, you can invoke vali by vali
instead of ./vendor/bin/vali
.
To do this, add into your shell config file (~/.zshrc, ~/.bashrc) the following:
alias vali='./vendor/bin/vali'
To use https locally, I recommend using mkcert to generate your certificates.
From your project directory, run the following:
vali certificates
vali will ask you for a domain name to use. It will automatically create a wildcard certificate for you.
Entering vali.test
will genereate a single certificate that works for vali.test
and also *.vali.test
Alternatively, if you'd like to create these manually:
$ mkdir certificates # We will store the certificates in this folder
# For a single domain (e.g. vali.test)
$ mkcert -key-file certificates/server.key -cert-file certificates/server.crt vali.test
# For a wildcard
$ mkcert -key-file certificates/server.key -cert-file certificates/server.crt vali.test \*.vali.test
If you plan on using https locally, it is best to read through the Using HTTPS
section above first.
Get started by running the vali:install
artisan command.
php artisan vali:install
This will create a docker-composer.yml
file in your project root. It will also create an nginx-config.conf
file inside of your config folder. You can make any changes you'd like to your nginx config here.
help Show this output
certificates Create HTTPS certificates.
up Start the containers
up -d Start the containers in the background
down Stop all of the running containers
build Build all of the containers
php Run a PHP command in the container
artisan Run an artisan command. e.g. vali artisan test
composer Run composer in the container
migrate Migrate database
mfs Refresh the database and seed
test Run tests via artisan
tinker Launch a tinker session in the container
shell Launch a bash session in the container
rootshell Launch a root bash session in the container
The MIT License (MIT). Please see License File for more information.