spatie / laravel-remote by spatie

Execute Artisan commands on remote servers
41,719
259
4
Package Data
Maintainer Username: spatie
Maintainer Contact: freek@spatie.be (Freek Van der Herten)
Package Create Date: 2021-03-09
Package Last Update: 2024-02-27
Home Page: https://spatie.be/open-source
Language: PHP
License: MIT
Last Refreshed: 2024-05-01 15:00:46
Package Statistics
Total Downloads: 41,719
Monthly Downloads: 1,948
Daily Downloads: 58
Total Stars: 259
Total Watchers: 4
Total Forks: 31
Total Open Issues: 0

Execute Artisan commands on remote servers

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status 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'),
        ]
    ],
];

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.