spatie/
laravel-remote
g4t.io

Run Artisan Commands on Remote Servers

283 stars by Paul Redmond

Execute Artisan commands on remote servers

README from spatie/laravel-remote Open on GitHub →

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 a jump host

If you need to connect through a jump host (bastion server), use the --jump option.

php artisan remote cache:clear --jump=jumphost.example.com

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.

More from the ecosystem

marcreichel/
laya-php
g4t.io
3 53

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Classify text in PHP without an LLM bill: typed decisions in 100+ languages, self-hosted. Laravel-ready SDK for Laya, a Jev AI alternative.

ai classification decision-engine
marcreichel/laya-php via Laravel News
Josh-Dovey/
postcodes-laravel
g4t.io
5 9

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Postcodes for Laravel adds typed GB postcode lookups, validation, geography data, distance searches, and test fakes through the GB Postcodes API.

Josh-Dovey/postcodes-laravel via Laravel News
RedberryProducts/
mailbox-for-laravel
g4t.io
4 115

Mailbox for Laravel: Preview and Test Rendered Email

Mailbox for Laravel captures outgoing mail in a local dashboard and lets you test rendered HTML, recipients, and attachments with fluent assertions.

RedberryProducts/mailbox-for-laravel via Laravel News