Skip to content

Laravel 7 with user authentication, registration with email confirmation, social media authentication, password recovery, and captcha protection. Uses offical [Bootstrap 4](http://getbootstrap.com). This also makes full use of Controllers for the routes, templates for the views, and makes use of middleware for routing. Project can be stood up in…

License

zeroc0d3/laravel-auth

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel-Auth (with Capistrano Deployment)

Zero downtime deployment Laravel Auth with Capistrano Deployment

How to use docker container

  • Clone this repo
    git clone git@github.com:zeroc0d3/laravel-auth.git
    
  • Change environment docker
    cd laravel-auth
    cp docker/.env.example docker/.env
    
  • Running docker-container
    make run-docker
    

How to use laravel-auth

  • Clone this repo
    git clone git@github.com:zeroc0d3/laravel-auth.git
    
  • Change environment laravel
    cd laravel-auth
    cp src/.env.example src/.env
    
  • Define database connection (src/.env)
    ### MySQL ###
    DB_CONNECTION=mysql
    DB_HOST=172.119.119.4
    DB_PORT=3306
    DB_DATABASE=zeroc0d3lab_auth
    DB_USERNAME=admin
    DB_PASSWORD=password
    
    ### PostgreSQL ###
    DB_CONNECTION=mysql
    DB_HOST=172.119.119.6
    DB_PORT=3306
    DB_DATABASE=zeroc0d3lab_auth
    DB_USERNAME=admin
    DB_PASSWORD=password
    
  • Running composer
    make composer-install
    --- or ---
    cd src
    composer install
    
  • Running key generate
    make key-generate
    --- or ---
    cd src
    php artisan key:generate
    
  • Running npm
    make npm-install
    make run-mix-dev
    --- or ---
    cd src
    npm install
    npm run dev
    
  • Running migration database
    make run-migrate-all
    --- or ---
    cd src
    php artisan migrate:install
    php artisan migrate --seed
    
  • Running laravel-auth project
    make run-project
    --- or ---
    cd src
    php artisan serve --port=8080
    
  • Open Browser (chrome / firefox)
    http://localhost:8080
    
  • Default Access
    username: admin@zeroc0d3lab.dev / user@zeroc0d3lab.dev
    password: password
    

Capistrano Requirements

  • Ruby Environment (RBENV) or Ruby Version Manager (RVM)

  • Running bundle

    bundle install
    
  • Edit Laravel source target in config/deploy.rb

    set :repo_url, "[YOUR_LARAVEL_REPO]"
    
  • Edit target server environment in config/deploy/[environment].rb

    server '[YOUR_TARGET_SERVER]'
    
  • Upload your shared files & folders in your server / VPS

    /var/www/[laravel-auth]/[environment]/shared/src
    ---
    .env
    composer.json
    composer.lock
    node_modules
    package.json
    storage/debugbar
    storage/framework
    storage/logs
    vendor
    yarn.lock
    
  • Setup number of release folder in config/deploy.rb

    set :keep_releases, 5    ## keep 5 release folder
    

Symlink Files (Default)

append :linked_files, "#{fetch(:source)}/.env", "#{fetch(:source)}/composer.json", "#{fetch(:source)}/composer.lock", "#{fetch(:source)}/package.json", "#{fetch(:source)}/yarn.lock",
---
.env
composer.json
composer.lock
package.json
yarn.lock

Symlink Folders (Default)

append :linked_dirs, "#{fetch(:source)}/vendor", "#{fetch(:source)}/node_modules", "#{fetch(:source)}/storage"
---
vendor
node_modules
storage

Folder Structure

[laravel-project]
├── staging
│   ├── current -> /var/www/[laravel-project]/staging/releases/20191123134641/
│   ├── releases
│   │   ├── 20191123081119
│   │   └── 20191123134641   ### the latest symlink
│   │       ├── .env -> /var/www/[laravel-project]/staging/shared/src/.env
│   │       ├── composer.json -> /var/www/[laravel-project]/staging/shared/src/composer.json
│   │       ├── composer.lock -> /var/www/[laravel-project]/staging/shared/src/composer.lock
│   │       ├── vendor -> /var/www/[laravel-project]/staging/shared/src/vendor/
│   │       ├── node_modules -> /var/www/[laravel-project]/staging/shared/src/node_modules/
│   │       ├── storage -> /var/www/[laravel-project]/staging/shared/src/storage/
│   │       └── yarn.lock -> /var/www/[laravel-project]/staging/shared/src/yarn.lock
│   ├── shared
│   │   ├── log
│   │   └── src
│   │       ├── .env
│   │       ├── composer.json
│   │       ├── vendor
│   │       ├── node_modules
│   │       └── storage
│   │           ├── debugbar
│   │           ├── framework
│   │           │   ├── cache
│   │           │   ├── sessions
│   │           │   └── views
│   │           ├── logs
│   │           └── users
│   └── tmp
└── [environments]

Deployment

  • Staging

    cap staging deploy
    
  • Preproduction

    cap preprod deploy
    
  • Production

    cap production deploy
    

Manual Trigger

  • Reload / Restart NGINX

    cap [environment] nginx:[manual_reload|manual_restart]
    ---
    cap staging nginx:manual_reload
    cap staging nginx:manual_restart
    
  • Reload / Restart PHP-FPM (php7.4-fpm)

    cap [environment] phpfpm:[manual_reload|manual_restart]
    ---
    cap staging phpfpm:manual_reload
    cap staging phpfpm:manual_restart
    
  • Install / Dump Autoload Composer

    cap [environment] composer:[install|dumpautoload|initialize]
    ---
    cap staging composer:install
    cap staging composer:dumpautoload
    cap staging composer:initialize   ## (will run install & dumpautoload)
    
  • Clear View / Clear Cache Framework

    cap [environment] artisan:[clear_view|clear_cache|clear_all]
    ---
    cap staging artisan:clear_view
    cap staging artisan:clear_cache
    cap staging artisan:clear_all   ## (will run clear_view & clear_cache)
    
  • NPM Package Dependencies

    cap [environment] npm:[install|update|cleanup|reinstall]
    ---
    cap staging npm:install
    cap staging npm:update
    cap staging npm:cleanup
    cap staging npm:reinstall ## (will run cleanup & install)
    
  • Yarn Package Dependencies

    cap [environment] yarn:[install|update|cleanup|reinstall]
    ---
    cap staging yarn:install
    cap staging yarn:update
    cap staging yarn:cleanup
    cap staging yarn:reinstall ## (will run cleanup & install)
    

Properties

  • Author : @zeroc0d3 (ZeroC0D3Lab)
  • License : Apache ver-2

About

Laravel 7 with user authentication, registration with email confirmation, social media authentication, password recovery, and captcha protection. Uses offical [Bootstrap 4](http://getbootstrap.com). This also makes full use of Controllers for the routes, templates for the views, and makes use of middleware for routing. Project can be stood up in…

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 74.0%
  • PHP 13.9%
  • HTML 9.8%
  • Ruby 1.0%
  • Shell 0.9%
  • Makefile 0.3%
  • Vue 0.1%