A ready-to-go Laravel skeleton application.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app Re-add route service provider Aug 28, 2017
bootstrap Upgrade to Laravel 5.5 (dev) Aug 4, 2017
config Re-add route service provider Aug 28, 2017
database Upgrade to Laravel 5.5 (dev) Aug 4, 2017
docs Add Minio bucket policy Aug 5, 2017
public Set up Horizon Aug 5, 2017
resources Add resource stubs Aug 7, 2017
scripts/vm Add new bash aliases, gtop, … Aug 28, 2017
storage Add Minio bucket policy Aug 5, 2017
tests Upgrade to Laravel 5.5 (dev) Aug 4, 2017
.editorconfig Add basic skeleton features Feb 10, 2017
.env.example Update example env database Aug 14, 2017
.gitattributes Upgrade to Laravel 5.5 (dev) Aug 4, 2017
.gitignore Fix VM Aug 5, 2017
.psysh.php Add comment to .psysh file Aug 14, 2017
CHANGELOG.md Add documents and license Aug 5, 2017
CODE_OF_CONDUCT.md Add documents and license Aug 5, 2017
CONTRIBUTING.md Add documents and license Aug 5, 2017
Envoy.blade.php Upgrade to Laravel 5.5 (dev) Aug 4, 2017
Homestead.yaml Update module configuration Aug 7, 2017
ISSUE_TEMPLATE.md Add documents and license Aug 5, 2017
LICENSE.md Add documents and license Aug 5, 2017
PULL_REQUEST_TEMPLATE.md Add documents and license Aug 5, 2017
README.md Update readme Aug 14, 2017
Vagrantfile Start Supervisord apps on boot Aug 5, 2017
artisan Upgrade to Laravel 5.5 (dev) Aug 4, 2017
composer.json Update module configuration Aug 7, 2017
composer.lock Update module configuration Aug 7, 2017
horizon.conf Upgrade to Laravel 5.5 (dev) Aug 4, 2017
package.json Fix Horizon yarn link Aug 14, 2017
phpunit.xml Upgrade to Laravel 5.5 (dev) Aug 4, 2017
server.php Initial commit Feb 10, 2017
webpack.mix.js Fix VM Aug 5, 2017
yarn.lock Upgrade to Laravel 5.5 (dev) Aug 4, 2017

README.md

YALS

Aka yet another Laravel skeleton (app).

Features

  • Laravel 5.5 and PHP 7.1
  • Single command initialization
  • Fully provisioned Homestead vagrant VM
  • All most common dev tech and services included
  • No-downtime Envoy script to immediately deploy to production
  • Ready-to-go production backups using spatie/laravel-backup
  • And much more!

Virtual machine

Laravel Homestead vagrant box with:

  • Composer
  • Yarn
  • MySQL
  • Elasticsearch (disabled by default)
  • Elasticdump (disabled by default)
  • Kibana (Elasticsearch GUI) (disabled by default)
  • Minio (local S3 storage server)
  • Mailhog (local mail catcher)
  • Byobu (advanced tmux/screen CLI window management)
  • Prestissimo (parallel composer requests)

And:

  • a complete set of custom bash aliases
  • autocomplete ignores file case
  • all services upgraded to their latest versions

Composer packages

NPM packages

  • Axios
  • Bootstrap SASS
  • Cross-env
  • jQuery
  • Laravel Mix
  • Lodash
  • Vue

No-downtime Envoy deploy script

Executed using Yarn commands.

Other

  • Supervisord production config template for Horizon
  • Stripped all routes files in favor of routers
  • Encouraged to use nwidart/laravel-modules to group your features together
  • Dropbox filesystem support

How to use

First run

Adjust Homestead.yaml in the root directory to your liking. Then update .env so it resembles your Homestead VM configuration (think database and app URL).

Open a terminal and edit your /etc/hosts file using sudo nano /etc/hosts. Add the following (replace with your domain and used IP):

192.168.98.47    skeleton.example www.skeleton.example

Save and quit nano with CTRL+X, then hit y to confirm.

Run the init command and wait (a while). You will be automatically SSHed into the VM.

yarn run init-vm

Open your browser and navigate to https://www.skeleton.example.

Profit!

Services

Mailhog

Mailhog interface

Navigate to http://www.skeleton.example:8025 on your local machine.

Minio

Minio interface

Navigate to http://www.skeleton.example:9100 on your local machine.

Minio uses the storage/minio/default directory as default bucket storage path.

Horizon

Navigate to http://www.skeleton.example/horizon on your local machine.

Resource scaffolding

  1. Create a module: php artisan module:make Projects
  2. Add its namespace to composer.json (both PSR-4 autoload and autoload-dev for tests)
  3. Add its tests directories to phpunit.xml
  4. Scaffold a resource
  5. Register its router by adding it to the app HTTP kernel or the service provider routers array