A web installer for Laravel

Overview

Laravel Web Installer | A Web Installer Package

Total Downloads Latest Stable Version License

About

Do you want your clients to be able to install a Laravel project just like they do with WordPress or any other CMS? This Laravel package allows users who don't use Composer, SSH etc to install your application just by following the setup wizard. The current features are :

  • Check For Server Requirements.
  • Check For Folders Permissions.
  • Ability to set database information.
    • .env text editor
    • .env form wizard
  • Migrate The Database.
  • Seed The Tables.

Requirements

Installation

  1. From your projects root folder in terminal run:
    composer require rachidlaasri/laravel-installer
  1. Register the package
  • Laravel 5.5 and up Uses package auto discovery feature, no need to edit the config/app.php file.

  • Laravel 5.4 and below Register the package with laravel in config/app.php under providers with the following:

	'providers' => [
	    RachidLaasri\LaravelInstaller\Providers\LaravelInstallerServiceProvider::class,
	];
  1. Publish the packages views, config file, assets, and language files by running the following from your projects root folder:
    php artisan vendor:publish --tag=laravelinstaller

Routes

  • /install
  • /update

Usage

  • Install Routes Notes

    • In order to install your application, go to the /install route and follow the instructions.
    • Once the installation has ran the empty file installed will be placed into the /storage directory. If this file is present the route /install will abort to the 404 page.
  • Update Route Notes

    • In order to update your application, go to the /update route and follow the instructions.
    • The /update routes countes how many migration files exist in the /database/migrations folder and compares that count against the migrations table. If the files count is greater then the /update route will render, otherwise, the page will abort to the 404 page.
  • Additional Files and folders published to your project :

File File Information
config/installer.php In here you can set the requirements along with the folders permissions for your application to run, by default the array cotaines the default requirements for a basic Laravel app.
public/installer/assets This folder contains a css folder and inside of it you will find a main.css file, this file is responsible for the styling of your installer, you can overide the default styling and add your own.
resources/views/vendor/installer This folder contains the HTML code for your installer, it is 100% customizable, give it a look and see how nice/clean it is.
resources/lang/en/installer_messages.php This file holds all the messages/text, currently only English is available, if your application is in another language, you can copy/past it in your language folder and modify it the way you want.

Contributing

Help

Screenshots

Installer

Laravel web installer | Step 1 Laravel web installer | Step 2 Laravel web installer | Step 3 Laravel web installer | Step 4 Menu Laravel web installer | Step 4 Classic Laravel web installer | Step 4 Wizard 1 Laravel web installer | Step 4 Wizard 2 Laravel web installer | Step 4 Wizard 3 Laravel web installer | Step 5

Updater

Laravel web updater | Step 1 Laravel web updater | Step 2 Laravel web updater | Step 3

Changelog

Please see CHANGELOG for more information on what has changed recently.

Treeware

You're free to use this package, but if it makes it to your production environment I would highly appreciate you buying the world a tree.

It’s now common knowledge that one of the best tools to tackle the climate crisis and keep our temperatures from rising above 1.5C is to plant trees. If you contribute to my forest you’ll be creating employment for local families and restoring wildlife habitats.

You can buy trees at offset.earth/treeware

Read more about Treeware at https://treeware.earth

Comments
  • update option

    update option

    after installation, if we provides a new version which requires modifying database

    then we should be able to present updater screen to users.

    please add this option aswell

    opened by lorvent 24
  • Security issue

    Security issue

    At line 98 in EnvironmentManager you have a hardcoded key. This should at least be generated at install, or you should replace value by value in the .env file instead of overwriting the whole file (leaving custom config values alone).

    One way or another, the key should not be hardcoded.

    opened by joveice 14
  • Running Passport install during installation

    Running Passport install during installation

    Thanks for the great package. 👍 I am looking to add extra artisan command to the installation process, I couldn't find it anywhere. For eg php artisan passport:install

    I tried hacking into package and in DatabaseManager.php I have added like following

    try{
                Artisan::call('passport:install', ["--force"=> true], $outputLog);
                Artisan::call('migrate', ["--force"=> true], $outputLog);
            }
    

    but I get the following error There are no commands defined in the "passport" namespace.

    opened by vijaythecoder 13
  • Unable to run migrations

    Unable to run migrations

    I have installed your package with laravel 5.2.45, everything is correct except migrations. You can see the output on the below screenshot. My database connection type is mysql and username is sic but it's giving error about the username homestead. Also when i run my migration command from the console, it works! ||wtfmigrate was added while i was debugging u'r package and i found the error was generated from this line. download

    opened by Utkarsh-vishnoi 10
  • Install Not Found, redirect to 404 page

    Install Not Found, redirect to 404 page

    I'm trying to use Laravel Installer in a project. I have cleared all the data and history from the project. Ran composer dump-autoload and artisan optimize:clear commands too. Even deleted the Installer file from the Storage folder, which Installer creates previously, still its giving 404 error, when I visit install route. Am I missing something?

    opened by gargashwani 8
  • ReflectionException in Container.php line 681: Class canInstall does not exist

    ReflectionException in Container.php line 681: Class canInstall does not exist

    Hi~! An error occurs when executing /install.

    Testing : Windows10 / Homestead / laravel5.4

    ReflectionException in Container.php line 681: Class canInstall does not exist

    1. in Container.php line 681
    2. at ReflectionClass->__construct('canInstall') in Container.php line 681
    3. at Container->build('canInstall') in Container.php line 565
    4. at Container->make('canInstall') in Application.php line 702
    5. at Application->make('canInstall') in Pipeline.php line 138
    6. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    7. at Pipeline->Illuminate\Routing{closure}(object(Request)) in SubstituteBindings.php line 41
    8. at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 148
    9. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    10. at Pipeline->Illuminate\Routing{closure}(object(Request)) in VerifyCsrfToken.php line 65
    11. at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
    12. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    13. at Pipeline->Illuminate\Routing{closure}(object(Request)) in ShareErrorsFromSession.php line 49
    14. at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
    15. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    16. at Pipeline->Illuminate\Routing{closure}(object(Request)) in StartSession.php line 64
    17. at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
    18. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    19. at Pipeline->Illuminate\Routing{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
    20. at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148
    21. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    22. at Pipeline->Illuminate\Routing{closure}(object(Request)) in EncryptCookies.php line 59
    23. at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148
    24. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    25. at Pipeline->Illuminate\Routing{closure}(object(Request)) in Pipeline.php line 102
    26. at Pipeline->then(object(Closure)) in Router.php line 561
    27. at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
    28. at Router->dispatchToRoute(object(Request)) in Router.php line 498
    29. at Router->dispatch(object(Request)) in Kernel.php line 174
    30. at Kernel->Illuminate\Foundation\Http{closure}(object(Request)) in Pipeline.php line 30
    31. at Pipeline->Illuminate\Routing{closure}(object(Request)) in TransformsRequest.php line 30
    32. at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
    33. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    34. at Pipeline->Illuminate\Routing{closure}(object(Request)) in TransformsRequest.php line 30
    35. at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
    36. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    37. at Pipeline->Illuminate\Routing{closure}(object(Request)) in ValidatePostSize.php line 27
    38. at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148
    39. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    40. at Pipeline->Illuminate\Routing{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
    41. at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
    42. at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 53
    43. at Pipeline->Illuminate\Routing{closure}(object(Request)) in Pipeline.php line 102
    44. at Pipeline->then(object(Closure)) in Kernel.php line 149
    45. at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
    46. at Kernel->handle(object(Request)) in index.php line 53
    opened by sky9s 8
  • Laravel installer Works on Windows but not on Linux

    Laravel installer Works on Windows but not on Linux

    The Laravel Installer works well on windows. But gives 404 not found error on Linux. LaravelInstallerServiceProvider has $this->loadRoutesFrom(DIR.'/../Routes/web.php'); What else should I do

    opened by ofunneka 7
  • 'ioncube_loader' Requirement Not Working

    'ioncube_loader' Requirement Not Working

    Hi guys, I Want to add "ionCube" in Requirements Section. How can I do this? @rashidlaasri

    I have added 'ioncube' in 'requirements' section, But when this extension is active, it also shows the error of not installing!

    'requirements' => [ 'php' => [ 'openssl', 'pdo', 'ioncube', 'mbstring', 'tokenizer', 'JSON', 'cURL', 'xml', 'ctype', ], ],

    dfg

    opened by sirwanveisi 6
  • This installer gives errors on linux server mac & windows ok.

    This installer gives errors on linux server mac & windows ok.

    This package show this error(Illuminate\Support\ServiceProvider::loadRoutesFrom(): Failed opening required '/var/www/html/VRM/vendor/rachidlaasri/laravel-installer/src/Providers/../routes/web.php' (include_path='.:/usr/share/php')) mac & windows working perfect. laravel 5.4

    opened by codePyx 6
  • It works on first time then it throws errors

    It works on first time then it throws errors

    I tried to install this Web Installer on my App, it worked perfectly but again when i tried to access /install route it redirect me to 404 but then i saw a middle ware in your package (canInstall) . I changed that to go on even if it is already installed . But when i hit save .env it doesn't work and hangs on this route http://site.com/install/environment

    opened by iftikharuddin 6
  • Proper PSR-4

    Proper PSR-4

    Hi!

    I just did a bit of refactor to have proper PSR-4 and fixed some code warning the IDE was telling me ;)

    Hope you feel it well.

    Cheers, Juan Manuel.

    opened by jmverges 5
  • Laravel changed lang directory in Laravel 9

    Laravel changed lang directory in Laravel 9

    Can you please update the source to Laravel 9 lang directory instead of having to do it manually. I suggest this;

    • Check for Laravel version lower than 9
    • Then use the old directory "base_path('resources/lang')"
    • Else use the latest update path "app()->langPath()"
    opened by brainiachades 0
  • add javascript only when there is an error

    add javascript only when there is an error

    Currently the javascript code fails to find the html elements with id 'error_alert' and 'close_alert' since these are only displayed if there is an error. For this reason, an "if" control structure must be added so that the javascript code is only loaded when there is an error.

    opened by elguitarraverde 0
  • /install/database fails at first, then works on refresh or autoreload.

    /install/database fails at first, then works on refresh or autoreload.

    On the last step submitting the /install/database always fails as in the screenshot on the next reload or refresh it works as expected. Screenshot from 2022-05-26 20-47-15

    I suspect the DatabaseManager class, Artisan::call('migrate', ['--force'=> true], $outputLog); this line in specific. any suggestions?

    opened by sathiyad 0
  • /install returning not found

    /install returning not found

    Our project codebase is modified to run on the root by renaming server.php to index.php to avoid the command php artisan serve. but the /install returning not found error.

    path to the project : /var/www/html/PROJECT/ route tried to access: http://localhost/PROJECT/install

    *note http://localhost/PROJECT is accessible. also have asked as a question in here

    Thanks in Advance.

    opened by sathiyad 1
Owner
Rachid Laasri
Laravel/Vue.js developer, blogger and open source enthusiast.
Rachid Laasri
A web app for detecting backend technologies used in a web app, Based on wappalyzer node module

About Techdetector This a web fingerprinting application, it detects back end technologies of a given domain by using the node module wappalyzer. And

Shobi 17 Dec 30, 2022
Jumpstart your web development journey with the HALT Stack Starter Kit, a one-command solution for creating dynamic, scalable, and clean web applications.

Welcome to the HALT Stack Starter Kit! This kit is designed to help you kickstart your web development projects using the HALT Stack, a powerful combi

HALT Stack 6 Jun 7, 2023
Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and User Authentication.

Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and

Jeremy Kenedy 35 Dec 19, 2022
List of 77 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream , Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel Spark.

Laravel Lang In this repository, you can find the lang files for the Laravel Framework 4/5/6/7/8, Laravel Jetstream , Laravel Fortify, Laravel Cashier

Laravel Lang 6.9k Jan 2, 2023
MediaDB is a web-based media streaming service written in Laravel and Vue.

MediaDB (API) MediaDB is a web-based media streaming service written in Laravel and Vue. The nginx-vod-module is used for on-the-fly repackaging of MP

François M. 53 Sep 3, 2022
Web application with Laravel in Backend and VueJS in Frontend

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Benjdia Saad 1 Oct 12, 2021
A Docker container for Laravel web apps

Ubuntu Docker container for Laravel web applications Docker-laravel is a LEMP image for running Laravel web applications. It extends docker-base, whic

Mark Macdonald 121 Nov 18, 2022
this package makes laravel website a progressive web application.

Laravel PWA You can follow this video tutorial as well for installation. Installation Install the package by the following command, composer require l

Shailesh Ladumor 86 Dec 16, 2022
Laravel Inspector, debugging and profiling tools for Web Artisans

Laravel Inspector At a Glance Installation Configuration Usage Messages Timers Redirects Dump and die Exceptions VIEW/AJAX/API requests, how it works

null 240 Dec 8, 2022
This package is to add a web interface for Laravel 5 and earlier Artisan.

Nice Artisan This package is to add a web interface for Laravel 5 and earlier Artisan. Installation Add Nice Artisan to your composer.json file : For

null 218 Nov 29, 2022
Dating Web App in Laravel and Bootstrap

Dating Web App Expected Outcome: A simple dating web app with both Laravel and Bootstrap using the Latest version. Feature List: Registration with Nam

RezowanaAkter 0 May 16, 2022
Laravel Seo package for Content writer/admin/web master who do not know programming but want to edit/update SEO tags from dashboard

Laravel Seo Tools Laravel is becoming more and more popular and lots of web application are developing. In most of the web application there need some

Tuhin Bepari 130 Dec 23, 2022
A Laravel 5.5 Photo Tagging Web Application

_ ____ __ ________ ______ | | / / /_ ____ _/ //_ __/ /_ ___/_ __/___ _____ _ | | /| / / __ \/ __ `/ __// / / _

Arda Kılıçdağı 58 Aug 20, 2022
A Simple Store Front Web Application using Laravel and Bootstrap.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Basil Basaif 1 Nov 28, 2021
🔐 JSON Web Token Authentication for Laravel & Lumen

Documentation Documentation for 1.* here For version 0.5.* See the WIKI for documentation. Supported by Auth0 If you want to easily add secure authent

Sean Tymon 10.7k Jan 3, 2023
Podcastwala - Your very own Podcast web app built with Laravel. Manage and listen to your favorite podcasts

Podcastwala Your very own Podcast web app built with Laravel 5. This web app enables you to manage RSS feeds for your favorite podcasts and listen to

null 142 Sep 14, 2022
Collection of Google Maps API Web Services for Laravel

Collection of Google Maps API Web Services for Laravel Provides convenient way of setting up and making requests to Maps API from Laravel application.

Alexander Pechkarev 467 Jan 5, 2023
Project C2 (Laravel 8.x) - Pemograman Web Service (Semester 5)

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Shaynendra Dika Destyawan 0 Dec 26, 2021
Laravel 8 CMS for Web Artisans

About maguttiCms Open source multilingual Laravel 8.x Cms with shopping cart and social login. maguttiCms is released using Laravel 8.x, Vue 3 and Boo

Marco Asperti 227 Jan 7, 2022