jamosaur/vali

Docker for running a Laravel application

1.3.4 2024-04-29 15:56 UTC

This package is auto-updated.

Last update: 2024-11-29 17:32:58 UTC


README

Latest Version on Packagist Software License Total Downloads

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

Requirements

  • docker
  • mkcert (if you wish to use https locally)

Install

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.

Adding a bash alias

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'

Using HTTPS

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

Usage

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.

Available commands

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

License

The MIT License (MIT). Please see License File for more information.