/laravel-remote

Execute Artisan commands on a remote server

Primary LanguagePHPMIT LicenseMIT

Execute Artisan commands on remote servers

Latest Version on Packagist Total Downloads

This package provides a command to execute Artisan command on a remote server.

Here's an example that will clear the cache on the remote server.

php artisan remote cache:clear

Support us

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

Installation

You can install the package via composer:

composer require spatie/laravel-remote

You can publish the config file with:

php artisan vendor:publish --tag="remote-config"

This is the contents of the published config file:

return [
    /*
     * This host will be used if none is specified
     * when executing the `remote` command.
     */
    'default_host' => 'default',
    
    /*
    * When set to true, A confirmation prompt will be shown before executing the `remote` command.
    */
    'needs_confirmation' => env('REMOTE_NEEDS_CONFIRMATION', false),

    /*
     * Here you can define the hosts where the commands should be executed.
     */
    'hosts' => [
        'default' => [
            'host' => env('REMOTE_HOST'),

            'port' => env('REMOTE_PORT', 22),

            'user' => env('REMOTE_USER'),

            /*
             * The package will cd to the given path before executing the given command.
             */
            'path' => env('REMOTE_PATH'),
            
            /*
             * Optional. Path to the private key on your computer if your remote server requires it.
             */
            'privateKeyPath' => env('REMOTE_PRIVATE_KEY_PATH'),
            
            /*
             * Optional. Path to the php binary on your remote server.
             */
            'phpPath' => env('REMOTE_PHP_PATH', 'php'),
        ]
    ],
];

Usage

To execute a command on the remote server use the remote Artisan command. You can pass any artisan command that you would like to execute on the server.

Here's an example where we clear the cache.

php artisan remote cache:clear

Executing raw commands

If you want to execute a bash command, use the --raw option.

Here we will get a list of files on the server.

php artisan remote ls --raw

Using another host

You can define hosts in the config file. By default, the default host is used. To execute a command on another host use the --host option.

php artisan remote cache:clear --host=my-other-host

Using options in remote commands

If you need to use flags or options in the command you're trying to execute, you can wrap the entire command in quotes:

php artisan remote --raw "ls -a"

Testing

composer test

Changelog

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

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.