Run Artisan Commands on Remote Servers
Published on by Paul Redmond
Laravel Remote is a package by Spatie that provides a command to execute Artisan commands on a remote server.
Introducing spatie/laravel-remote, a Laravel package to easily run @laravelphp Artisan commands on remote servers.
— Freek Van der Herten 📯 (@freekmurze) March 10, 2021
Blog post: https://t.co/g1Puai020u
Repo: https://t.co/f4MDXc85gS#laravel #php #package pic.twitter.com/n3BJFOXhq5
Here are some examples of remote commands from the documentation:
php artisan remote cache:clear # Raw ls command on the serverphp artisan remote ls --raw # Raw ls with flagsphp artisan remote --raw "ls -a" # Defining which host configuration to usephp artisan remote cache:clear --host=my-other-host
At the heart of the package's configuration, you define hosts for remote servers that you want to interact with. In order to execute a command on a given host, you can use the --host
flag for the desired configuration:
return [ 'hosts' => [ 'default' => [ 'host' => env('REMOTE_HOST'), 'port' => env('REMOTE_PORT', 22), 'user' => env('REMOTE_USER'), 'path' => env('REMOTE_PATH'), ], 'example2' => [ 'host' => env('EXAMPLE2_REMOTE_HOST'), 'port' => env('EXAMPLE2_REMOTE_PORT', 22), 'user' => env('EXAMPLE2_REMOTE_USER'), 'path' => env('EXAMPLE2_REMOTE_PATH'), ], ],];
Under the hood, this package uses Spatie's ssh package, a lightweight PHP library to execute commands over SSH.
If you'd like to follow the author Freek Van der Herten to see how to build this package, he live-streamed it on YouTube. Learn practical examples from one of the most prolific Laravel package developers, where he shows you tips on how to build Laravel packages from scratch:
Learn More
To get started with spatie/laravel-remote, read the documentation available in the project's GitHub readme. Freek also wrote a blog post that goes into more detail about the package.