template for project with laravel, bootstrap,adminlte+ some logic

Name Last Update
app Loading commit data...
bootstrap Loading commit data...
config Loading commit data...
database Loading commit data...
public Loading commit data...
resources Loading commit data...
routes Loading commit data...
storage Loading commit data...
tests Loading commit data...
.ack_run.sh Loading commit data...
.bowerrc Loading commit data...
.env.example Loading commit data...
.env.example.production Loading commit data...
.env.testing Loading commit data...
.eslintrc.js Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.jshintrc Loading commit data...
.npmrc Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
README.md Loading commit data...
artisan Loading commit data...
bootstrap.sh Loading commit data...
bower.json Loading commit data...
cleanup.sh Loading commit data...
codeception.yml Loading commit data...
composer.json Loading commit data...
configure.ac Loading commit data...
deploy_production.sh Loading commit data...
gulpfile.js Loading commit data...
license-header Loading commit data...
package.json Loading commit data...
phpunit.xml Loading commit data...
server.php Loading commit data...
test_server.php Loading commit data...
webpack.mix.js Loading commit data...


build status

Template for websites with basic functionality. It is based on next ideas:

  • have common features already integrated and configured (tests,laravel-mix/webpack/babel,bower etc)
  • simplify updates (via git merge from this project)
  • extensive use of .env config (slightly more then original Laravel)
  • 'make' based macro-tool for often used commands
  • GitLab CI integration

Last Modified: 2017-04-12


Copyright (c) 2016-2017 Oleksii Prudkyi

The laravel-bootstrap-adminlte-starter-kit kit is open-sourced software licensed under the MIT license.


Just base functionality for other projects

Project includes already preconfigured resources:

Creation of new site based on starter kit

#clone original repository
git clone git@gitlab.com:oprudkyi/laravel-bootstrap-adminlte-starter-kit.git my_project

#cd to project
cd my_project

#delete origin
git remote rm origin

#use your new repository as main source 
git remote add origin git@gitlab.com:oprudkyi/web-site.git

#keep original source for updates
git remote add starter-kit git@gitlab.com:oprudkyi/laravel-bootstrap-adminlte-starter-kit.git

#push to your repository
git push -u origin master

Keeping your site in sync with starter kit

git fetch starter-kit
git merge starter-kit/master
git push


make merge-starterkit
git push


If you are building from the first time out of the source repository, you will need to generate the configure scripts. From the top directory, do:


Once the configure scripts are generated, 'make' system can be configured. From the top directory, do:


Run ./configure --help to see other configuration options

Install configured dependencies - tools like composer/bower and components as defined in composer.json, bower.json, package.json :

make install-dependencies

For automicity and performance of CI the repositories of composer/bower/npm are stored under .install-cache directory (pointed out via rc files)


There are a large number of tests that can all be run from the top-level directory.

      make -k check
      make -k check-functional
      make -k check-acceptance

This will make all of the libraries (as necessary), and run through the unit tests defined in each of the client libraries. If a single language fails, the make check will continue on and provide a synopsis at the end.

Testing over GitLab CI

Project has preconfigured GitLab CI integration, all configs are stored in the .gitlab-ci.yml

There is used special docker image with preinstalled dependencies:

  • nodejs/npm
  • ruby/gem
  • autotools (automake/autoconf)
  • phnatomjs (headless webbrowser for testing)
  • git/wget/curl etc

To avoid possible security issues if you are using starter-kit for private projects at GitLab site, please disable GitLab's shared runners and start private one.

Boostraping development environment

cp .env.example .env
vim .env

#for sqlite db
touch storage/database/play.sqlite
./artisan migrate

#generate key
./artisan key:generate -v

Update dependencies

make update-dependencies


make update-dependencies-production

it will search for updated packages for composer/npm/bower and install them as well will update lock/json files

Mailcatcher integration

Mailcatcher is configured in the .env.example for port 1025, tests use different port (11031) so tests can be run while development instance of maicatcher is running


make run-mailcatcher


make stop-mailcatcher

Mailcatcher web gui available via

Javascript/Css assets

Intergration is based on Laravel Mix and WebPack as css/js compilation system .

The building script is webpack.mix.js. System is configured to generate single js file from all packages provided (as well single css file)

if you add/remove packages, you may also need to edit resources/assets/sass/app.scss and resources/javascripts/app.js for adding/removing css/scss/js

use 'make mix' or 'make mix-watch' to compile resources

custom css rules you can add to resources/assets/sass/starterkit/starter-kit-customize.scss it's applied after any other css, so it's possible to change any css behavior here

Manual Deployment Initialization

This isn't adivsed , just for info:

  • First, clone your repository to production/staging server

  • configure production environment

    ./configure --enable-tests=no
    make install-dependencies-production
    chmod 777 -R storage
  • create db (in case of mysql)

    sudo mysql 
CREATE USER 'starterkit_user'@'%' IDENTIFIED BY 'starterkit_password';
GRANT ALL PRIVILEGES ON starterkit_db.* TO 'starterkit_user'@'%';
  • create env file

    cp .env.example.production .env
    vim .env
  • create key

php artisan key:generate
  • migrate db
php artisan migrate
  • optimize app
make production-optimize

it will run next commands:

#clear cache
php artisan view:clear
php artisan config:clear
php artisan route:clear
php artisan clear-compiled

composer dump-autoload --optimize

php artisan cache:clear
php artisan config:cache
php artisan route:cache
php artisan optimize

  • recompile js/css sh npm run production

Manual Deployment

There is script deploy_production.sh with simplified git based deployment, if it is run on server it will autoupdate git and dependencies, there are next commands:

php artisan down
git pull
make install-dependencies-production
php artisan migrate --force --no-interaction --verbose
make production-optimize
php artisan up

Please note, deploy_production.sh is very optimistic for errors and will break/stop if something wrong (and leave site in maintenance mode), then you have to fix it manually

Deployment via GitLab CI

.gitlab-ci.yml is configured to support simple ssh/git based deployment via GitLab Gui. i.e. there is manual step/job in pipelines - "deploy to production"

To use it you have to add next Secret Variables (in CI/CD Pipelines settings):

  • PRODUCTION_URI - url to production server
  • PRODUCTION_SSH_PRIVATE_KEY - ssh private key text (~/.ssh/id_rsa) which has access to server (i.e. public key added to ~/.ssh/authorized_keys on server
  • PRODUCTION_DEPLOY_REMOTE_COMMAND - something like : ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user_on_server@server_host /path/to/source/on/server/deploy_production.sh