A deployment tool written in PHP with support for popular frameworks out of the box

Overview

Deployer Logo Deployer

A deployment tool written in PHP with support for popular frameworks out of the box.



Deployer Screenshot


Build Status Latest Stable Version License

See deployer.org for more information and documentation.

Contributing

Do you want to contribute to this project? Start working on one of those:

Maintainer

See also the list of contributors who participated in this project.

Sponsorship

  • Daniel Knoch

See a full list of sponsors.

Related

License

MIT

Comments
  • Deployer unable to find composer installed recipes

    Deployer unable to find composer installed recipes

    | Q | A | ----------------- | --- | Issue Type | Question | Deployer Version | 6.0.3 | Local Machine OS | WSL | Remote Machine OS | CentOS 7

    Description

    Deployer fails to find and require recipes installed via the method included in the third party recipe instructions

    Steps to reproduce

    Install recipes:

    composer require deployer/recipes --dev

    Add a recipe as per docs:

    require 'recipe/cachetool.php';

    Run deployment:

    dep deploy production OR php deployer.phar deploy production

    Result:

    PHP Warning:  require(recipe/cachetool.php): failed to open stream: No such file or directory in /mnt/d/web/deploy.php on line 3
    PHP Fatal error:  require(): Failed opening required 'recipe/cachetool.php' (include_path='phar:///mnt/d/web/deployer.phar/bin/../:.:/usr/share/php') in /mnt/d/web/blog.ib3.uk/deploy.php on line 3
    

    Content of deploy.php

    <?php
    namespace Deployer;
    
    require 'recipe/composer.php';
    require 'recipe/cachetool.php';
    
    // Project name
    set('application', 'Example');
    
    // Project repository
    set('repository', '[email protected]:foo');
    
    // Hosts
    host('xxx')
    	->stage('production')
    	->user('deploy')
        ->set('deploy_path', '/var/www')
        ->set('cachetool', '127.0.0.1:9000');
    
    // Shared files/dirs between deploys
    add('shared_dirs', [
    	'web/app/upgrade',
    	'web/app/uploads',
    	'web/app/wfcache',
    	'web/app/wflogs'
    ]);
    
    // Copy config
    task('enable_prod_config', function() {
    	run('cp "{{release_path}}/.env.prod" "{{release_path}}/.env"');
    })->onStage('production');
    after('deploy:update_code', 'enable_prod_config');
    
    // Clear opcache
    after('deploy:symlink', 'cachetool:clear:opcache');
    
    // [Optional] Allocate tty for git clone. Default value is false.
    set('git_tty', true);
    
    // [Optional] if deploy fails automatically unlock.
    after('deploy:failed', 'deploy:unlock');
    

    Worked around the issue thus:

    ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . 'vendor/deployer/recipes');
    

    Should that be part of the documtation or is something broken?

    bug 
    opened by jamieburchell 56
  • Deprecate phpseclib, ext-ssh2 🦋

    Deprecate phpseclib, ext-ssh2 🦋

    | Q | A | ----------------- | --- | Issue Type | Feature Request | Deployer Version | 5.x

    Now Deployer have 3 different implementations of ssh client: phpseclib, ext-ssh2 and native. I suggest deprecate first two and leave only native implementation with ssh multiplexing turned on by default. Reasons for then is what phpseclib and ext-ssh2 comes with different features and some may work in one, but not in another (like agent forwarding, ssh config, etc.). Also we need to support this three times of ssh libs. It will really simpler in there will be only one: native one. As it will come with all functionality. Also with ssh multiplexing it comes with same speed as phpseclib and ext-ssh2.

    research 
    opened by antonmedv 40
  • Make 6.x branch compatible with PHP 8

    Make 6.x branch compatible with PHP 8

    • [ ] Bug fix? No

    • [ ] New feature? #3159

    • [ ] BC breaks? Not sure how to test

    • [ ] Tests added? No

    • [ ] Docs added? No

      Please, regenerate docs by running next command:
      $ php bin/docgen
      

    I am not sure how to run the included tests, I am aware that there is a .travis.yml file and that php 8.0 and 8.1 could be added but I would not now how to actually run the included tests

    This PR is only serving those who want to postpone the migration to deployer 7 until it has a stable release Just wanted to see if it could be done.

    N.B. I was able to build a new phar file, which did not throw any errors when using it for a deploy N.B.2 I also want to move on to Deployer 7 now, but please consider merging this PR

    opened by rutgerrademaker 39
  • Phar problems: crc32 mismatch on file

    Phar problems: crc32 mismatch on file

    I'm having some issues with deployer connections. When I try to php ./vendor/bin/dep ssh test it fails 50% of the time. This is both on my local machine running Arch as well on my Gitlab server in CI/CD. Php version is 8.0.7 on Arch, 8.0.5 on the alpine based docker image used for CI/CD in Gitlab.

    • Deployer version: 7.0.0-beta.23
    • Deployment OS: ubuntu (docker container) / archlinux

    In testing I have reduced my deploy.yaml to a minimal setup like this:

    config:
      application: APPNAME
      user: USER
      host: HOST
      base_deploy_path: "~/domains"
      repository: "REPONAME"
    
    hosts:
      test:
        remote_user: "{{user}}"
        hostname: "{{host}}"
        deploy_path: "{{base_deploy_path}}/APPLICATION_URL"
    

    This is what I get when the CD fails with this issue:

    $ php ./vendor/bin/dep deploy test
    In ClassLoader.php line 444:
                                                                                   
      include(phar:///builds/APPLICATION_NAME/vendor/deployer/dist/dep/vendor/com  
      poser/../../src/Selector/Selector.php): Failed to open stream: phar error:   
      internal corruption of phar "/builds/APPLICATION_NAME/vendor/deployer/dist/  
      dep" (crc32 mismatch on file "src/Selector/Selector.php")                    
                                                                                   
    deploy [--tag TAG] [--revision REVISION] [--branch BRANCH] [-o|--option OPTION] [-l|--limit LIMIT] [--no-hooks] [--plan] [--start-from START-FROM] [--log LOG] [--profile PROFILE] [--] [<selector>...]
    

    The application server is running OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017. I could try to have that updated to a newer build as it seems a bit old to me.

    opened by coffeeneer 38
  • Sudo and PTY mode

    Sudo and PTY mode

    | Q | A | ----------------- | --- | Issue Type | Bug | Deployer Version | 4.3 | Local Machine OS | Linux work 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux | Remote Machine OS | Linux release 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux

    Description

    After commit https://github.com/deployphp/deployer/commit/157a8d0d78a542339407afd8a3b1c5a4187be3c2 deploy always wait

    It reproduced on 2 different dev PC and 2 different servers

    Without pty option all works fine, but sudo not

    Steps to reproduce

    Im add echo to this place and get full command

    Before commit changes:

    $ ./vendor/bin/dep date production -vvv
    ➤ Executing task date
    [production] > date
    Execute: ssh -A -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPersist=5 -o ControlPath='~/.ssh/deployer_mux_deployer@SOME_IP:22' -p '22' -i '/home/vlad/.ssh/id_rsa' -t 'deployer@SOME_IP' 'date'[production] < Fri Apr  7 10:23:16 EDT 2017
    [production] < Shared connection to SOME_IP closed.
    • done on [production]
    ✔ Ok [147ms]
    

    After commit changes:

    $ ./vendor/bin/dep date production -vvv
    ➤ Executing task date
    [production] > date
    Execute: ssh -A -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPersist=5 -o ControlPath='~/.ssh/deployer_mux_deployer@SOME_IP:22' -p '22' -i '/home/vlad/.ssh/id_rsa' -t 'deployer@SOME_IP' bash -s
    

    and wait

    Content of deploy.php

    <?php
    namespace Deployer;
    
    require 'recipe/common.php';
    
    // Configuration
    
    set('ssh_type', 'native');
    set('ssh_multiplexing', true);
    
    set('repository', 'https://github.com/user/repo.git');
    set('shared_files', []);
    set('shared_dirs', []);
    set('writable_dirs', []);
    
    // Servers
    
    task('date', function () {
        run("date");
    });
    
    server('production', 'SOME_IP')
        ->user('deployer')
        ->identityFile()
        ->stage('production')
        ->set('deploy_path', '/home/deployer/test')
        ->pty(true);
    
    opened by vladdnepr 37
  • Getting stuck on dep:prepare

    Getting stuck on dep:prepare

    | Q | A | ----------------- | --- | Issue Type | Question | Deployer Version | 6.8.0 | Local Machine OS | macOS 11.1 (Desktop) | Remote Machine OS | Ubuntu 20.04 (Server)

    Description

    I'm starting to play with deployer and wanted to see how it's gonna work. Unfortunately it does not, getting stuck on "echo $0".

    I commented the after at the end to get the error before the error at the deploy:unlock task.

    Content of deploy.php

    I use standard recipe with following configuration

    <?php
    
    namespace Deployer;
    
    require 'recipe/common.php';
    
    set('application', 'Secrets');
    set('repository', 'https://github.com/Luca-Castelnuovo/secrets.git');
    
    set('git_tty', true);
    set('allow_anonymous_stats', false);
    
    host('REDACTED_IP_ADDR')
        ->stage('production')
        ->user('webserver')
        ->set('deploy_path', '~/test');
    
    desc('Deploy your project');
    task('deploy', [
        'deploy:info',
        'deploy:prepare',
        'deploy:lock',
        'deploy:release',
        'deploy:update_code',
        'deploy:shared',
        'deploy:writable',
        'deploy:vendors',
        'deploy:clear_paths',
        'deploy:symlink',
        'deploy:unlock',
        'cleanup',
        'success',
    ]);
    
    // after('deploy:failed', 'deploy:unlock');
    

    Output log

    Screenshot 2021-01-16 at 18 41 09-redacted_dot_app

    opened by Luca-Castelnuovo 34
  • Allow Symfony 4.0 in composer.json

    Allow Symfony 4.0 in composer.json

    | Q | A | ------------- | --- | Bug fix? | No | New feature? | No | BC breaks? | No | Deprecations? | No | Fixed tickets | N/A

    #SymfonyConHackday2017

    Do not forget to add notes about your changes to CHANGELOG.md

    • Add description under added/changed/fixed section.
    • Add reference to closed issues [#000].
    • Add link to issue in the end of document.
    feature 
    opened by pgodel 34
  • Refactoring/Cleanup/Fixes for Symfony-related Recipes

    Refactoring/Cleanup/Fixes for Symfony-related Recipes

    | Q | A | | --- | --- | | Bug fix? | Yes | | New feature? | Yes | | BC breaks? | Yes | | Deprecations? | No | | Fixed tickets | N/A |

    • Removed overridden deploy:assetic:dump task in symfony3 recipe, as it implied this command was no longer valid and should be overridden with deploy:assets:install command. In reality, deploy:assets:install should exist in all symfony versions, as should deploy:assetic:dump (although this is arguable, as deploy:assetic:dump isn't a Symfony command, it is a kriswallsmith/assetic command).
    • Changed default for deploy:assetic:dump to false (via dump_assets) as this is not a core Symfony package and should not be assumed to be installed. It relies on kriswallsmith/assetic and symfony/assetic-bundle.
    • Added deploy:assets:install task as this is a symfony-core command that is intended to be called prior to other asset compilation commands (such as deploy:assetic:dump). Its purpose to is to install any bundle assets (within <bundleName>/Resource/public) and put them in web/bundles/<bundleName>.
    • composer_action created
    • Fixed SYMFONY_ENV value in env_vars to correctly refer to the configured env value.
    • Created bin/console to cleanup calls to Symfony console command (there was a ton of duplicated lines prior)
    • created console_options so the options passed to bin/console reflect what should be passed per the configured environment (for example, the --no-debug options cannot be passed for any environment except for prod and will likely break hard when passed for dev environment)
    • General cleanup...
    opened by robfrawley 34
  • Creating extension/addon/plugin/shared recipe for Deployer

    Creating extension/addon/plugin/shared recipe for Deployer

    | Q | A | ----------------- | --- | Issue Type | Question | Deployer Version | N/A | Local Machine OS | N/A | Remote Machine OS | N/A

    Description

    What is best practice for creating "shareable" recipes or extensions for Deployer? We would like to include some common tasks and other functionality between several of our applications.

    It seems that the deploy.php file is loaded within the context of the PHAR (or vendor if installed via composer?). So if we installed a composer package with custom tasks what would the require path need to be?

    Thank you.

    opened by coreyworrell 33
  • Git clone fails with ssh multiplexing

    Git clone fails with ssh multiplexing

    | Q | A | ----------------- | --- | Issue Type | Question | Deployer Version | 4.2.1 | Local Machine OS | OSX Sierra | Remote Machine OS | Ubuntu 16.04

    Description

    When I run the deploy.php script it fails on the git clone command. If I run the command that you get from the error output the command is successful.

    Steps to reproduce

    1. run: php vendor/bin/dep install:production -vvv
    2. copy failed command from error output
    3. past en run command in terminal

    example command: ssh -A -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPersist=5 -o ControlPath='~/.ssh/deployer_mux_s [email protected]:22' -p '22' -i '/Users/sander/.ssh/[email protected]' '[email protected]' 'cd www && (git clone [email protected]:sanderlissenburg/movi es-api.git)'

    Content of deploy.php

    <?php
    
    namespace Deployer;
    
    require 'recipe/common.php';
    
    set('ssh_type', 'native');
    set('ssh_multiplexing', true);
    set('default_stage', 'production');
    
    // I anonymised my ip adress
    server('production', '37.97.xxx.xx')
        ->user('sander')
        ->identityFileAndPassword('~/.ssh/[email protected]', '~/.ssh/[email protected]', null, null)
        ->stage('production')
    ;
    
    
    task('install:production', function() {
        writeln('<info>Deploying...</info>');
        cd('www');
        $response = run('pwd');
        writeln($response);
    
        // I know this is not the best way to do a clone with deployer
        $response = run('git clone [email protected]:sanderlissenburg/movies-api.git');
    });
    
    

    Output log

    [production] < /home/sander/www
    /home/sander/www
    
    [production] > cd www && (git clone [email protected]:sanderlissenburg/movies-api.git)
      SSH multiplexing initialization
    
    
      [Symfony\Component\Process\Exception\ProcessFailedException]
      The command "ssh -A -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPersist=5 -o ControlPath='~/.ssh/deployer_mux_s
      [email protected]:22' -p '22' -i '/Users/sander/.ssh/[email protected]' '[email protected]' 'cd www && (git clone [email protected]:sanderlissenburg/movi
      es-api.git)'" failed.
      Exit Code: 128(Invalid exit argument)
      Working directory: /Users/sander/docker/www/movies-api
      Output:
      ================
      Error Output:
      ================
      Cloning into 'movies-api'...
      Permission denied (publickey).
      fatal: Could not read from remote repository.
      Please make sure you have the correct access rights
      and the repository exists.
    
    
    Exception trace:
     () at /Users/sander/docker/www/movies-api/vendor/symfony/symfony/src/Symfony/Component/Process/Process.php:233
     Symfony\Component\Process\Process->mustRun() at /Users/sander/docker/www/movies-api/vendor/deployer/deployer/src/Server/Remote/NativeSsh.php:87
     Deployer\Server\Remote\NativeSsh->run() at /Users/sander/docker/www/movies-api/vendor/deployer/deployer/src/functions.php:310
     Deployer\run() at /Users/sander/docker/www/movies-api/deploy.php:25
     Deployer\{closure}() at n/a:n/a
     call_user_func() at /Users/sander/docker/www/movies-api/vendor/deployer/deployer/src/Task/Task.php:85
     Deployer\Task\Task->run() at /Users/sander/docker/www/movies-api/vendor/deployer/deployer/src/Executor/SeriesExecutor.php:40
     Deployer\Executor\SeriesExecutor->run() at /Users/sander/docker/www/movies-api/vendor/deployer/deployer/src/Console/TaskCommand.php:95
     Deployer\Console\TaskCommand->execute() at /Users/sander/docker/www/movies-api/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:262
     Symfony\Component\Console\Command\Command->run() at /Users/sander/docker/www/movies-api/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:826
     Symfony\Component\Console\Application->doRunCommand() at /Users/sander/docker/www/movies-api/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:189
     Symfony\Component\Console\Application->doRun() at /Users/sander/docker/www/movies-api/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:120
     Symfony\Component\Console\Application->run() at /Users/sander/docker/www/movies-api/vendor/deployer/deployer/src/Deployer.php:186
     Deployer\Deployer->run() at /Users/sander/docker/www/movies-api/vendor/deployer/deployer/bin/dep:114
    
    install:production [-p|--parallel]
    
    bug 
    opened by sanderfreshheads 33
  • Deployment failing during deploy:vendors

    Deployment failing during deploy:vendors

    | Q | A | ----------------- | --- | Issue Type | Bug | Deployer Version | 4.3.0 | Local Machine OS | Ubuntu 16.04 | Remote Machine OS | Ubuntu 16.04

    Description

    Deployment up until deploy:vendors is successful. When I run the ssh command shown in the exception output, I receive the same error output with a blinking cursor Warning: Permanently added '162.13.127.83' (ECDSA) to the list of known hosts.

    Steps to reproduce

    Content of deploy.php

    <?php
    namespace Deployer;
    require 'recipe/common.php';
    
    // Configuration
    
    set('ssh_type', 'native');
    set('ssh_multiplexing', false);
    
    set('repository', '[email protected]:daykinstorey/blizzard-2017.git');
    set('shared_files', []);
    set('shared_dirs', []);
    set('writable_dirs', []);
    
    // Servers
    server('production', '162.13.127.83')
        ->forwardAgent()
    //    ->identityFile('/home/vagrant/.ssh/blizzard.pub', '/home/vagrant/.ssh/blizzard')
        ->set('deploy_path', '~/webapps/theblizzardtest');
    
    // Tasks
    desc('Restart PHP-FPM service');
    task('php-fpm:restart', function () {
        // The user must have rights for restart service
        // /etc/sudoers: username ALL=NOPASSWD:/bin/systemctl restart php-fpm.service
        run('sudo systemctl restart php71rc-fpm.service');
    });
    after('deploy:symlink', 'php-fpm:restart');
    
    desc('Deploy your project');
    task('deploy', [
        'deploy:prepare',
        'deploy:lock',
        'deploy:release',
        'deploy:update_code',
        'deploy:shared',
        'deploy:writable',
        'deploy:vendors',
        'deploy:clear_paths',
        'deploy:symlink',
        'deploy:unlock',
        'cleanup',
        'success'
    ]);
    
    // [Optional] if deploy fails automatically unlock.
    after('deploy:failed', 'deploy:unlock');
    

    Output log

    agrant@blizzard-dev:~/blizzard-dev$ vendor/bin/dep deploy production -vvv
    ➤ Executing task deploy:prepare
    echo $0[production] > echo $0
    [production] < bash
    if [ ! -d ~/webapps/theblizzardtest ]; then mkdir -p ~/webapps/theblizzardtest; fi[production] > if [ ! -d ~/webapps/theblizzardtest ]; then mkdir -p ~/webapps/theblizzardtest; fi
    if [ ! -L ~/webapps/theblizzardtest/current ] && [ -d ~/webapps/theblizzardtest/current ]; then echo true; fi[production] > if [ ! -L ~/webapps/theblizzardtest/current ] && [ -d ~/webapps/theblizzardtest/current ]; then echo true; fi
    cd ~/webapps/theblizzardtest && if [ ! -d .dep ]; then mkdir .dep; fi[production] > cd ~/webapps/theblizzardtest && if [ ! -d .dep ]; then mkdir .dep; fi
    cd ~/webapps/theblizzardtest && if [ ! -d releases ]; then mkdir releases; fi[production] > cd ~/webapps/theblizzardtest && if [ ! -d releases ]; then mkdir releases; fi
    cd ~/webapps/theblizzardtest && if [ ! -d shared ]; then mkdir shared; fi[production] > cd ~/webapps/theblizzardtest && if [ ! -d shared ]; then mkdir shared; fi
    • done on [production]
    ✔ Ok [3s 890ms]
    ➤ Executing task deploy:lock
    if [ -f ~/webapps/theblizzardtest/.dep/deploy.lock ]; then echo 'true'; fi[production] > if [ -f ~/webapps/theblizzardtest/.dep/deploy.lock ]; then echo 'true'; fi
    touch ~/webapps/theblizzardtest/.dep/deploy.lock[production] > touch ~/webapps/theblizzardtest/.dep/deploy.lock
    • done on [production]
    ✔ Ok [1s 188ms]
    ➤ Executing task deploy:release
    if [ -h release ]; then echo 'true'; fi[production] > cd ~/webapps/theblizzardtest && (if [ -h release ]; then echo 'true'; fi)
    [production] < true
    rm -rf "$(readlink release)"[production] > cd ~/webapps/theblizzardtest && (rm -rf "$(readlink release)")
    rm release[production] > cd ~/webapps/theblizzardtest && (rm release)
    [ -d releases ] && [ "$(ls -A releases)" ] && echo "true" || echo "false"[production] > cd ~/webapps/theblizzardtest && ([ -d releases ] && [ "$(ls -A releases)" ] && echo "true" || echo "false")
    [production] < true
    cd releases && ls -t -1 -d */[production] > cd ~/webapps/theblizzardtest && (cd releases && ls -t -1 -d */)
    [production] < 1/
    if [ -f .dep/releases ]; then echo "true"; fi[production] > cd ~/webapps/theblizzardtest && (if [ -f .dep/releases ]; then echo "true"; fi)
    [production] < true
    tail -n 15 .dep/releases[production] > cd ~/webapps/theblizzardtest && (tail -n 15 .dep/releases)
    [production] < 20170413155243,1
    [production] < 20170413155711,1
    [production] < 20170413155902,1
    [production] < 20170413160049,1
    [production] < 20170413160129,2
    [production] < 20170413160422,2
    [production] < 20170413160553,2
    [production] < 20170413160955,2
    [production] < 20170418080346,2
    [production] < 20170418080839,2
    [production] < 20170418082132,2
    [production] < 20170418083340,2
    [production] < 20170418083751,2
    [production] < 20170418083842,2
    [production] < 20170418091436,2
    if [ -d ~/webapps/theblizzardtest/releases/2 ]; then echo 'true'; fi[production] > cd ~/webapps/theblizzardtest && (if [ -d ~/webapps/theblizzardtest/releases/2 ]; then echo 'true'; fi)
    date +"%Y%m%d%H%M%S"[production] > cd ~/webapps/theblizzardtest && (date +"%Y%m%d%H%M%S")
    [production] < 20170418092534
    echo '20170418092534,2' >> .dep/releases[production] > cd ~/webapps/theblizzardtest && (echo '20170418092534,2' >> .dep/releases)
    mkdir ~/webapps/theblizzardtest/releases/2[production] > cd ~/webapps/theblizzardtest && (mkdir ~/webapps/theblizzardtest/releases/2)
    if [[ "$(man ln)" =~ "--relative" ]]; then echo "true"; fi[production] > cd ~/webapps/theblizzardtest && (if [[ "$(man ln)" =~ "--relative" ]]; then echo "true"; fi)
    [production] < true
    ln -nfs --relative ~/webapps/theblizzardtest/releases/2 ~/webapps/theblizzardtest/release[production] > cd ~/webapps/theblizzardtest && (ln -nfs --relative ~/webapps/theblizzardtest/releases/2 ~/webapps/theblizzardtest/release)
    • done on [production]
    ✔ Ok [15s 592ms]
    ➤ Executing task deploy:update_code
    which git[production] > which git
    [production] < /usr/bin/git
    /usr/bin/git version[production] > /usr/bin/git version
    [production] < git version 2.7.4
    if [ -h ~/webapps/theblizzardtest/release ]; then echo 'true'; fi[production] > if [ -h ~/webapps/theblizzardtest/release ]; then echo 'true'; fi
    [production] < true
    readlink ~/webapps/theblizzardtest/release[production] > readlink ~/webapps/theblizzardtest/release
    [production] < releases/2
    /usr/bin/git clone   --recursive -q [email protected]:daykinstorey/blizzard-2017.git ~/webapps/theblizzardtest/releases/2 2>&1[production] > /usr/bin/git clone   --recursive -q [email protected]:daykinstorey/blizzard-2017.git ~/webapps/theblizzardtest/releases/
    2 2>&1
    • done on [production]
    ✔ Ok [8s 63ms]
    ➤ Executing task deploy:shared
    • done on [production]
    ✔ Ok [0ms]
    ➤ Executing task deploy:writable
    • done on [production]
    ✔ Ok [0ms]
    ➤ Executing task deploy:vendors
    if hash composer 2>/dev/null; then echo 'true'; fi[production] > if hash composer 2>/dev/null; then echo 'true'; fi
    [production] < true
    which composer[production] > which composer
    [production] < /usr/sbin/composer
    which php[production] > which php
    ➤ Executing task deploy:failed
    • done on [production]
    ✔ Ok [2ms]
    ➤ Executing task deploy:unlock
    rm -f ~/webapps/theblizzardtest/.dep/deploy.lock[production] > rm -f ~/webapps/theblizzardtest/.dep/deploy.lock
    • done on [production]
    ✔ Ok [501ms]
    
                                                                                                                                
      [RuntimeException]                                                                                                        
      The command "ssh -A -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p '22' '162.13.127.83' bash -s" failed.  
      Exit Code: 1(General error)                                                                                               
      Output:                                                                                                                   
      ================                                                                                                          
      Error Output:                                                                                                             
      ================                                                                                                          
      Warning: Permanently added '1.13.127.83' (ECDSA) to the list of known hosts.                                            
                                                                                                                                
    
    Exception trace:
     () at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Server/Remote/NativeSsh.php:103
     Deployer\Server\Remote\NativeSsh->run() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/functions.php:319
     Deployer\run() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/recipe/common.php:85
     Deployer\{closure}() at n/a:n/a
     call_user_func() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Server/Environment.php:125
     Deployer\Server\Environment->get() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Server/Environment.php:175
     Deployer\Server\Environment->parseCallback() at n/a:n/a
     preg_replace_callback() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Server/Environment.php:161
     Deployer\Server\Environment->parse() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Server/Environment.php:138
     Deployer\Server\Environment->get() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Server/Environment.php:175
     Deployer\Server\Environment->parseCallback() at n/a:n/a
     preg_replace_callback() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Server/Environment.php:161
     Deployer\Server\Environment->parse() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/functions.php:752
     Deployer\parse() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/functions.php:294
     Deployer\run() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/recipe/deploy/vendors.php:12
     Deployer\{closure}() at n/a:n/a
     call_user_func() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Task/Task.php:85
     Deployer\Task\Task->run() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Executor/SeriesExecutor.php:40
     Deployer\Executor\SeriesExecutor->run() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Console/TaskCommand.php:103
     Deployer\Console\TaskCommand->execute() at /home/vagrant/blizzard-dev/vendor/symfony/console/Command/Command.php:261
     Symfony\Component\Console\Command\Command->run() at /home/vagrant/blizzard-dev/vendor/symfony/console/Application.php:843
     Symfony\Component\Console\Application->doRunCommand() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Console/Application.php:123
     Deployer\Console\Application->doRunCommand() at /home/vagrant/blizzard-dev/vendor/symfony/console/Application.php:189
     Symfony\Component\Console\Application->doRun() at /home/vagrant/blizzard-dev/vendor/symfony/console/Application.php:120
     Symfony\Component\Console\Application->run() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/src/Deployer.php:190
     Deployer\Deployer->run() at /home/vagrant/blizzard-dev/vendor/deployer/deployer/bin/dep:120
    
    bug 
    opened by pmhou 31
  • Overriding the shell of the localhost doesn't work

    Overriding the shell of the localhost doesn't work

    Context

    • Deployer version: 7.0.2
    • Deployment OS: Alpine Linux

    Description

    The function runLocally depends on bash to run the command. Bash is not installed on Alpine Linux.

    I tried to override the default shell with the following code:

    localhost()
        ->setShell('sh -s');
    

    But it doesn't work, the function runLocally still tries to use bash.

    Example

    deploy.php example:

    <?php
    namespace Deployer;
    
    require 'recipe/common.php';
    
    localhost()
        ->setShell('sh -s');
    
    host('prod')
        ->setHostname('prod_hostname')
        ->setRemoteUser('myuser')
        ->setDeployPath('/var/www/html');
    
    task('test:runLocally', function () {
        runLocally('echo test');
    });
    

    Command:

    dep test:runLocally prod -v
    

    Output:

    task test:runLocally
    [localhost] run echo test
    [localhost] sh: bash: not found
    
    opened by guvra 4
  • Make Deployer work with PHP 8.2

    Make Deployer work with PHP 8.2

    Replaces https://github.com/deployphp/deployer/pull/3401

    Using @Konafets' work and updating the composer.lock file

    Closes https://github.com/deployphp/deployer/issues/3399 and https://github.com/deployphp/deployer/pull/3401

    • [x] Bug fix https://github.com/deployphp/deployer/issues/3399?
    opened by franmomu 5
  • Feature: fallback on environnement variables for strings parsing

    Feature: fallback on environnement variables for strings parsing

    • [ ] Bug fix #…?
    • [x] New feature?
    • [ ] BC breaks?
    • [x] Tests added?
    • [ ] Docs added?

    As I prefer yaml files for configuration, I have a made a little modification to make phpdeployer able to fallback on environnement variables when trying to parse a string, in order to get a clean yaml configuration file which can be standard across project, and gitlab-ci (and I think github actions too) compatible.

    Given this yaml file and the corresponding environnement variables set into the CI/CD pipeline, everything should be fine 👍

    config:
      application: '{{APP_NAME}}'
      release_name: '{{ARCHIVE_RELEASE_NAME}}'
      http_user: '{{HOST_HTTP_USER}}'
      keep_releases: 5
      writable_mode: 'chown'
    
    hosts:
      staging:
        hostname: '{{STAGING_HOST}}'
        remote_user: '{{STAGING_REMOTE_USER}}'
        deploy_path: '~/{{application}}/{{alias}}'
      preprod:
        hostname: '{{PREPROD_HOST}}'
        remote_user: '{{PREPROD_REMOTE_USER}}'
        deploy_path: '~/{{application}}/{{alias}}'
      prod:
        hostname: '{{PROD_HOST}}'
        remote_user: '{{PROD_REMOTE_USER}}'
        deploy_path: '~/{{application}}/{{alias}}'
    
    after:
      deploy:failed: 'deploy:unlock'
    

    What do you think about?

    opened by GlucNAc 5
  • Add a check for non-serilizable configs

    Add a check for non-serilizable configs

    A check should prevent setting closures and classes in config.

    This is NOT allowed:

    host('host')
        ->set('test_local', [
                function () {
                    return 'test value';
                }
            ]
        );
    
    opened by antonmedv 0
  • Symfony recipe with app-environment-file (wildcards) for shared files

    Symfony recipe with app-environment-file (wildcards) for shared files

    The Symfony recipe sets .env.local for shared_files: recipe/symfony.php#L18-L20 But Symfony also uses .env.$APP_ENV.local for uncommitted environment-specific overrides (see https://symfonycasts.com/screencast/symfony-fundamentals/environments#the-app-env-variable)

    So actually it should be:

    set('shared_files', [
        '.env.local',
        '.env.*.local',
    ]);
    

    But wildcards are not supported for shared_files.

    opened by alexgit2k 4
  • Add the specific Laravel artisan specific command to notify Bugsnag of a deployment

    Add the specific Laravel artisan specific command to notify Bugsnag of a deployment

    Laravel Bugsnag package has the artisan command php artisan bugsnag:deploy to notify Bugsnag of new deployment, which is easier to use than bugsnag:notify task in the Bugsnag contrib recipe. It would be useful if a new Laravel-specific artisan:bugsnag:deploy task was added (in Bugsnag recipe?) to allow the use of this command in Laravel project deployments.

    opened by andrecolza 1
Releases(v7.0.2)
  • v7.0.2(Sep 10, 2022)

  • v7.0.1(Aug 28, 2022)

    What's Changed

    • Fixed Caddy installation by @gizamichal in https://github.com/deployphp/deployer/pull/3274
    • Changed python to python-is-python3 in package list by @kishan93 in https://github.com/deployphp/deployer/pull/3233
    • Laravel: Added octane tasks in laravel recipe by @luigel in https://github.com/deployphp/deployer/pull/3076
    • Magento2: Added var/page_cache as writable_dirs by @gizamichal in https://github.com/deployphp/deployer/pull/3202
    • Contrib: Generate random crontab tmp path by @hdumazeau in https://github.com/deployphp/deployer/pull/3068

    New Contributors

    • @sevjan made their first contribution in https://github.com/deployphp/deployer/pull/3248
    • @mihani made their first contribution in https://github.com/deployphp/deployer/pull/3265
    • @asheroto made their first contribution in https://github.com/deployphp/deployer/pull/3271
    • @kishan93 made their first contribution in https://github.com/deployphp/deployer/pull/3233
    • @alexislefebvre made their first contribution in https://github.com/deployphp/deployer/pull/3167
    • @hdumazeau made their first contribution in https://github.com/deployphp/deployer/pull/3068

    Full Changelog: https://github.com/deployphp/deployer/compare/v7.0.0...v7.0.1

    Source code(tar.gz)
    Source code(zip)
    deployer.phar(759.91 KB)
  • v6.9.0(Aug 16, 2022)

  • v7.0.0(Jul 26, 2022)

    At last! It Is Done!

    🎁 👏 🥳 Deployer v7 release! 🎉 🍾 🥂



    Deployer Screenshot

    A deployment tool written in PHP with support for popular frameworks out of the box.


    After more than 2 years of development, with contributions from 63 people, and the kind support of sponsors, I'm glad to present you with a brand new version of Deployer!

    The v7 branch saw 40 betas, 9 RCs, with thousands of projects already using Deployer v7 in their production deployment.

    One of the biggest changes is a new provision recipe. The provision recipe can automatically install and configure any VPS for running your PHP application. It will install webserver, SSL, PHP, Redis, node, etc. Everything that is needed to run any PHP application in production.

    Getting Started

    composer require deployer/deployer
    
    Source code(tar.gz)
    Source code(zip)
    deployer.phar(759.79 KB)
  • v7.0.0-rc.9(Jul 24, 2022)

    What's Changed

    • Phar renamed back to dep from deployer.phar + source code also available now.
    • Add --with-deletes flag to contao:migrate task by @qzminski in https://github.com/deployphp/deployer/pull/3072
    • Add curly braces to the domain in Caddyfile by @victor-vanherpt in https://github.com/deployphp/deployer/pull/3115
    • Use correct Git ref spec when sub_directory is specified. by @mjaschen in https://github.com/deployphp/deployer/pull/3138
    • Update UPGRADE.md by @JohnnyEvo in https://github.com/deployphp/deployer/pull/3158
    • Add upgrade info for cleanup task by @tomaszkane in https://github.com/deployphp/deployer/pull/3161
    • chore: add task name to replace exception message by @kjkooistra-youwe in https://github.com/deployphp/deployer/pull/3184
    • Add upgrade docs about default_stage by @tomaszkane in https://github.com/deployphp/deployer/pull/3197
    • Fix definition of {{bin/console}} parameter in Contao recipe by @ameotoko in https://github.com/deployphp/deployer/pull/3200
    • Pimcore recipe fixes by @gizamichal in https://github.com/deployphp/deployer/pull/3212

    New Contributors

    • @victor-vanherpt made their first contribution in https://github.com/deployphp/deployer/pull/3115
    • @mjaschen made their first contribution in https://github.com/deployphp/deployer/pull/3138
    • @JohnnyEvo made their first contribution in https://github.com/deployphp/deployer/pull/3158
    • @tomaszkane made their first contribution in https://github.com/deployphp/deployer/pull/3161
    • @ameotoko made their first contribution in https://github.com/deployphp/deployer/pull/3200
    • @gizamichal made their first contribution in https://github.com/deployphp/deployer/pull/3212

    Full Changelog: https://github.com/deployphp/deployer/compare/v7.0.0-rc.8...v7.0.0-rc.9

    Source code(tar.gz)
    Source code(zip)
    deployer.phar(758.81 KB)
  • v7.0.0-rc.8(Mar 22, 2022)

  • v7.0.0-rc.7(Mar 18, 2022)

  • v7.0.0-rc.6(Mar 17, 2022)

  • v7.0.0-rc.5(Mar 17, 2022)

    What's Changed

    • Added Doctrine mapping files validation by @cafferata in https://github.com/deployphp/deployer/pull/2901
    • Added Contao recipe by @richardhj in https://github.com/deployphp/deployer/pull/2851
    • Added Dependabot by @benoitchantre in https://github.com/deployphp/deployer/pull/2926
    • Added Magento2: allow non-zero-downtime deployment by @lfolco in https://github.com/deployphp/deployer/pull/2941
    • Added PATCH to Httpie by @CaptainFalcon92 in https://github.com/deployphp/deployer/pull/2950
    • Added a basic version of replacing tasks, fixes #2878 by @UlrichThomasGabor in https://github.com/deployphp/deployer/pull/2879
    • Added a new release process: publish deployer.phar in a tag by @antonmedv in https://github.com/deployphp/deployer/pull/3051
    • Added an option to deploy only a sub-folder of the repository by @matsn0w in https://github.com/deployphp/deployer/pull/2821
    • Added artisan event:cache to Laravel deployment task by @chrisan in https://github.com/deployphp/deployer/pull/3035
    • Added statement terminator in php_fpm_version by @refsz in https://github.com/deployphp/deployer/pull/2956
    • Added task phpdocs by @clxmstaab in https://github.com/deployphp/deployer/pull/2974
    • Added zsh completion syntax fix by @Fisiu in https://github.com/deployphp/deployer/pull/2947
    • Added: make the importer extendable by @qzminski in https://github.com/deployphp/deployer/pull/3010
    • Fixed Magento version detection, fixes #2905 by @sprankhub in https://github.com/deployphp/deployer/pull/2906
    • Fixed host examples by @Ge1i0N in https://github.com/deployphp/deployer/pull/2961
    • Fixed chgrp by @UlrichThomasGabor in https://github.com/deployphp/deployer/pull/2834
    • Fixed ssh command to work on Windows by @Yoann-TYT in https://github.com/deployphp/deployer/pull/2920
    • Fixed the dep init in PHP 8.1 by @luigel in https://github.com/deployphp/deployer/pull/2925
    • Fixed: check func_num_args() in get() by @refsz in https://github.com/deployphp/deployer/pull/2951
    • Fixed: don't add remote user to setfacl command, if it doesn't exist as an os user by @ElAberino in https://github.com/deployphp/deployer/pull/2822
    • Fixed: don't copy node_modules because it will be removed by @refsz in https://github.com/deployphp/deployer/pull/2919
    • Fixed: make sure to use the correct PHP binary with existing Composer by @Toflar in https://github.com/deployphp/deployer/pull/2967
    • Fixed: phpcs update by @mathieuimbert in https://github.com/deployphp/deployer/pull/3032
    • Fixed: phpstan issues by @mathieuimbert in https://github.com/deployphp/deployer/pull/3001
    • Fixed: remove absolute file paths from theme-config using the deploy_path by @peterjaap in https://github.com/deployphp/deployer/pull/2801
    • Fixed: remove platform from Composer config by @benoitchantre in https://github.com/deployphp/deployer/pull/3044
    • Fixed: site-enabled folder for Caddy configs by @asamats in https://github.com/deployphp/deployer/pull/2949

    New Contributors

    • @ElAberino made their first contribution in https://github.com/deployphp/deployer/pull/2822
    • @Fisiu made their first contribution in https://github.com/deployphp/deployer/pull/2947
    • @underdpt made their first contribution in https://github.com/deployphp/deployer/pull/2952
    • @CaptainFalcon92 made their first contribution in https://github.com/deployphp/deployer/pull/2950
    • @Ge1i0N made their first contribution in https://github.com/deployphp/deployer/pull/2961
    • @benoitchantre made their first contribution in https://github.com/deployphp/deployer/pull/2926
    • @Toflar made their first contribution in https://github.com/deployphp/deployer/pull/2967
    • @refsz made their first contribution in https://github.com/deployphp/deployer/pull/2956
    • @lfolco made their first contribution in https://github.com/deployphp/deployer/pull/2941
    • @matsn0w made their first contribution in https://github.com/deployphp/deployer/pull/2821
    • @richardhj made their first contribution in https://github.com/deployphp/deployer/pull/2851
    • @Yoann-TYT made their first contribution in https://github.com/deployphp/deployer/pull/2920
    • @dependabot made their first contribution in https://github.com/deployphp/deployer/pull/2993
    • @mathieuimbert made their first contribution in https://github.com/deployphp/deployer/pull/3001
    • @qzminski made their first contribution in https://github.com/deployphp/deployer/pull/3010
    • @asamats made their first contribution in https://github.com/deployphp/deployer/pull/2949
    • @chrisan made their first contribution in https://github.com/deployphp/deployer/pull/3035

    Full Changelog: https://github.com/deployphp/deployer/compare/v7.0.0-rc.4...v7.0.0-rc.5

    Source code(tar.gz)
    Source code(zip)
    deployer.phar(760.88 KB)
  • v7.0.0-rc.4(Jan 13, 2022)

    Two noticeable changes:

    • Fixed lots of bugs related to repository parsing.
    • Deleted auto-detection of project-local deployer installation (Global dep binary no longer can find and redirect call to project-local bin/dep).

    This release contains lots of fixes:
    #2886 #2841 #2836 #2837 #2835 #2831 #2830 #2793 #2808 #2755 #2767 #2779 #2789 #2785 #2777 #2776 #2850 #2852 As well as lots of cleanups and docs improvements.

    Source code(tar.gz)
    Source code(zip)
    deployer.phar(756.70 KB)
  • v7.0.0-rc.3(Nov 21, 2021)

    cafe007 Updated composer deps c1bef57 Fixed once() on a group task 634341f Added provision of mariadb (#2775) 9b35a87 Added provision of databases in provision recipe (#2768) 333baff Displays info about skipped tasks 465aed4 Improved deploy:info task 92a0eb6 Refactored deploy:update_code to use target config 3e15404 Removed shallow() task method e04b166 Removed "Using ..." message. dddfab7 Added support for PHP 8.1 (#2763) 37be457 Do not run deployment if no current path exists (Shopware) (#2761)

    Source code(tar.gz)
    Source code(zip)
    deployer.phar(737.78 KB)
  • v7.0.0-rc.2(Nov 14, 2021)

    1ede058 Fixed timeout for heavy tasks in provision recipe (#2752) 4f84ee1 Fixed php-fpm unix socket in provision recipe (#2751) d28bb9f Fixed maintenance status check in Magento recipe (#2748) c893ca5 Fixed blackjack command 0a3db5d Fixed controlPath with length >= 104 characters (#2740) 25778d4 Improved docgen 10a2f43 Fixed POST method in fetch() a4801b6 Made Magento 2 recipe suitable for push strategy deployments (#2734)

    Source code(tar.gz)
    Source code(zip)
    deployer.phar(738.03 KB)
  • v7.0.0-rc.1(Nov 7, 2021)

    This is a first release candidate for v7.

    dcd7e75 Refactored getHost() to host() (same as in v6) ebb3caa Fixed YAML init template 065c012 Added disable/enable task methods 8005801 Added artisan:migrate to default laravel deploy task 165574d Added fetch() func 6cf46ff Added custom 404 page

    Source code(tar.gz)
    Source code(zip)
    deployer.phar(738.05 KB)
  • v7.0.0-beta.40(Nov 6, 2021)

  • v7.0.0-beta.39(Nov 5, 2021)

    In this release: b40c641 Refactored shopware recipe 0c7c0b1 Renamed locateBinaryPath() to which() 8cf0f2a Added shell option for runLocally func 101f1a1 Added mysql provisioning 9d38ecd Fixed bug with stuck loop on connect error 8ac587e Added support for hidden keys in yaml files (#2715) afa7680 Removed var/sessions as a default shared dir in the Symfony recipe (#2720)

    Source code(tar.gz)
    Source code(zip)
    deployer.phar(735.81 KB)
  • v7.0.0-beta.38(Nov 3, 2021)

  • v7.0.0-beta.36(Oct 22, 2021)

  • v7.0.0-beta.35(Oct 21, 2021)

  • v7.0.0-beta.34(Oct 19, 2021)

  • v7.0.0-beta.33(Oct 19, 2021)

  • v7.0.0-beta.32(Oct 18, 2021)

  • v7.0.0-beta.31(Oct 15, 2021)

  • v7.0.0-beta.30(Oct 14, 2021)

  • v7.0.0-beta.29(Oct 13, 2021)

  • v7.0.0-beta.27(Oct 11, 2021)

  • v7.0.0-beta.26(Sep 23, 2021)

  • v7.0.0-beta.24(Jul 1, 2021)

  • v7.0.0-beta.23(Apr 20, 2021)

  • v7.0.0-beta.22(Apr 18, 2021)

Owner
Deployer
Deployment Tool for PHP
Deployer
Deployer based deployment for WordPress with media and database synchronisation.

deployer-extended-wordpress What does it do? Should I use "deployer-extended-wordpress" or "deployer-extended-wordpress-composer"? Dependencies Instal

SourceBroker 24 Dec 11, 2022
PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.

P H I N G Thank you for using PHING! PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant. You can do anything wit

The Phing Project 1.1k Jan 7, 2023
Deploy your PHP with PHP. Inspired by Capistrano and Vlad.

Pomander A light-weight flexible deployment tool for deploying web applications. This project was inspired by Capistrano and Vlad the Deployer, as wel

Mike Kruk 202 Oct 18, 2022
PHP transpiler - Write and deploy modern PHP 8 code, today.

Phabel Write and deploy modern PHP 8 code, today. This is a transpiler that allows native usage of PHP 8+ features and especially syntax in projects a

Phabel 219 Dec 31, 2022
Elegant SSH tasks for PHP.

Laravel Envoy Introduction Laravel Envoy provides a clean, minimal syntax for defining common tasks you run on your remote servers. Using Blade style

The Laravel Framework 1.5k Dec 20, 2022
A deployer library for PHP 5.3

Plum An object oriented deployer library Installation and configuration Plum does not provide and autoloader but follow the PSR-0 convention. $plum =

Julien Brochet 87 Feb 5, 2022
🚀 Zero-downtime deployment out-of-the-box

?? Laravel Deployer Looking for the old Laravel Deployer? Click here. Laravel Deployer is no longer the package it used to be. Since that package was

Loris Leiva 1.6k Dec 31, 2022
YCOM Impersonate. Login as selected YCOM user 🧙‍♂️in frontend.

YCOM Impersonate Login as selected YCOM user in frontend. Features: Backend users with admin rights or YCOM[] rights, can be automatically logged in v

Friends Of REDAXO 17 Sep 12, 2022
TeleBot - Easy way to create Telegram-bots in PHP. Rich Laravel support out of the box.

TeleBot is a PHP library for telegram bots development. Rich Laravel support out of the box. Has an easy, clean, and extendable way to handle telegram Updates.

WeStacks 206 Jan 6, 2023
A Laravel dashboard front-end scaffolding preset for Tailwind CSS - Support RTL out of the box.

?? Laravel tailwind css dashboard preset A Laravel dashboard front-end scaffolding preset for Tailwind CSS - Support RTL out of the box. Usage Fresh i

Miaababikir 343 Dec 7, 2022
Hi Im L, I found a box that I believe it's contain Kira's real ID. for open that box we need to find three keys. let's start looking for them

DeathNote ctf Description are you smart enaugh to help me capturing the three keys for open the box that contain the real ID of kira? Let's start solv

Hamza Elansari 4 Nov 28, 2022
Scotch Box is a preconfigured Vagrant Box with a full array of LAMP Stack features to get you up and running with Vagrant in no time.

Scotch Box is a preconfigured Vagrant Box with a full array of LAMP Stack features to get you up and running with Vagrant in no time.

scotch 2.7k Jan 8, 2023
Pux is a fast PHP Router and includes out-of-box controller tools

Pux Pux is a faster PHP router, it also includes out-of-box controller helpers. 2.0.x Branch Build Status (This branch is under development) Benchmark

Yo-An Lin 1.3k Dec 21, 2022
🤖 Telegram Bot API PHP SDK. Lets you build Telegram Bots easily! Supports Laravel out of the box.

Telegram Bot API - PHP SDK Telegram Bot PHP SDK lets you develop Telegram Bots in PHP easily! Supports Laravel out of the box. Telegram Bot API is an

Irfaq Syed 2.5k Jan 6, 2023
BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience.

BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience.

BookStackApp 10.6k Jan 2, 2023
🖖Repository Pattern in Laravel. The package allows to filter by request out-of-the-box, as well as to integrate customized criteria and any kind of filters.

Repository Repository Pattern in Laravel. The package allows to filter by request out-of-the-box, as well as to integrate customized criteria and any

Awes.io 160 Dec 26, 2022
A nice GUI for Laravel Artisan, ready out of the box, configurable and handy for non-CLI experienced developers.

Artisan UI A nice GUI for Laravel Artisan, ready out of the box, configurable and handy for non-CLI experienced developers. Supported commands must be

Pablo Leone 1 Dec 3, 2021
LaravelS is an out-of-the-box adapter between Swoole and Laravel/Lumen.

?? LaravelS is an out-of-the-box adapter between Swoole and Laravel/Lumen.

Biao Xie 3.7k Dec 29, 2022
Automatically load the next page of products in Magento. Easy to install and configure, this module works 100% out of the box with vanilla Magento 1.9.x and earlier.

Automatically load the next page of products in Magento. Easy to install and configure, this module works 100% out of the box with vanilla Magento 1.9.x and earlier.

Strategery 123 Nov 20, 2021
Two-Factor Authentication for all your users out-of-the-box.

Two Factor On-premises Two-Factor Authentication for all your users out of the box. use Illuminate\Support\Facades\Auth; use Laragear\TwoFactor\TwoFac

Laragear 105 Dec 22, 2022