Getting Started
Requirements
- See the Laravel server requirements.
- Laravel Enso uses the
json
data type.- If using MySQL, a minimum version of 5.7.8 is required.
- If using MariaDB, a minimum version of 10.2.7 is required.
Installation Steps
Download the project with
git clone https://github.com/laravel-enso/enso.git --depth 1
Within the project folder run
composer install
Create a database for your site (see the Laravel database documentation), copy or rename the
.env.example
file to.env
, edit the database configuration information, and runphp artisan key:generate
In order to serve the back-end API, take a look at the Local Development Server section of the Laravel installation documentation and consider using Valet for a better experience
Important: once you're chosen your app's name and set the
APP_URL
in your.env
file, make sure you also add the domain to the list of domains in theSANCTUM_STATEFUL_DOMAINS
. For example:... APP_URL=http://enso.test ... SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1,127.0.0.1:8000,localhost:8080,::1,enso.test
Run
php artisan migrate --seed
Open the
client
folder, copy the.env.example
file, save it as.env
and set the URL for the back-end API (which you've configured at step 4)Run
yarn && yarn build
Launch the site and log into the project with user:
admin@laravel-enso.com
, password:password
For live reload / hot module replacement functionality run
client/yarn serve
Optional
- Setup the configuration files as needed in
config/enso/*.php
- You may remove the following files from the cloned repository:
.styleci.yml
.travis.yml
docker-compose.yml
(if not using Docker)
Enjoy!
Docker
Laravel Enso comes with a simple docker environment to help with development.
By default, it has two containers, the enso container and the enso-mysql container.
There is also an optional phpmyadmin container that can be used by removing the commented
lines in docker-compose.yml
.
Containers
- The enso container runs the apache webserver and has
yarn
&composer
installed. - The enso-mysql container handle's the database the default user is
root
with a blank password and the default database isenso
- The enso-phpmyadmin container is optional and attaches a phpMyAdmin instance the the enso-mysql database.
Steps to use
- Rename .env.example to .env and fill out the appropriate variables.
- Run
docker-compose up
to start the containers. To daemonize the process rundocker-compose up --build -d
. - Enter into the enso container to begin the enso installation with
docker exec -it enso bash
- Install laravel enso following the guide.
Known issues
- When you run
php artisan migrate --seed
, you may hit an error in the formSQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
. If so:- See this post for details on how to address the error.
- After addressing the error, drop all tables from your site database (or delete and recreate the database), then run
php artisan migrate --seed
again.
Features
A solid starting project, based on Laravel 6, VueJS 2 (the build is done with VueCli, Bulma, integrated themes from Bulmaswatch, all the VueJS goodies such as VueEx and VueRouter, with features like:
Structure generator - powerful CLI that allows easy creation of new complex structures, generating all the needed files:
- system files for:
- structure migration that adds menus and permissions and permission groups
- front-end routes & CRUD pages
- back-end routes
- boilerplate files for:
- models and table migrations
- form controller, builder and template
- table controller, builder and template
- select controller
- request validator
- system files for:
Customizable and powerful datatables:
- JSON templates
- server side
- multi-argument full column search
- customizable column visibility
- state save in localStorage for each table
- automatic action buttons generation, depending on user permissions
- custom action buttons as needed
- beautiful tag rendering for boolean flag columns
- easy display of flag/type columns values
- server-side excel export for every table
-
- JSON templates
- server side
- validation
- customizable
Vue select - server side builder with parameter conditioning, including pivot parameters
Advanced user groups / roles / permissions structure
Log management - view, download, clear
User action logger, so you can keep track of who's done what
User impersonation for easy support and debugging
Application interface tutorials based on the awesome Intro.js
Charts component with server side data builder, based on Chart.js
Comments component with support for tagging users
Documents component with upload, download and inline view
Ability to track who created, updated and deleted models, using traits
File uploader and file management library
Avatar functionality for all users
Ability to track the different versions of a model through its lifetime
Front-end date-picker and time-picker, based on Flatpickr
Server-side type-ahead
User, application-wide preferences - every user has the ability to choose his theme (from 10 variants), set the menu style, app language and more
Queueable jobs
Push notifications - working out of the box (requires Pusher)
Beautiful email notifications, that can published and customized to your heart's desire
Automatic breadcrumbs generation
Application-wide timestamp formatting customization through the configuration file
Separate front-end state support, so that it's easier to keep your application's logic and data separated from enso's
Optimistic concurrency control with versioning, via the Versioning and Versions the packages
many more helpers and hidden gems
Important
Recommended
If you are using this project please consult the Changelog on every update.
← Introduction Usage →