Scotty is a tool that runs tasks on your remote servers over SSH. You write your tasks in a Scotty.sh file (plain bash with annotation comments), and Scotty takes care of connecting, running each script, and showing you exactly what's happening. It's fully compatible with Laravel Envoy, so you can use it as a drop-in replacement.
Here's what a Scotty.sh file looks like:
#!/usr/bin/env scotty
# @servers remote=deployer@your-server.com
# @macro deploy pullCode clearCache
# @task on:remote
pullCode() {
cd /var/www/my-app
git pull origin main
}
# @task on:remote
clearCache() {
cd /var/www/my-app
php artisan cache:clear
}Run it with scotty run deploy.
Scotty ships as a single-file phar. Downloading the phar is the preferred install. Drop it in your project:
curl -L https://github.com/spatie/scotty/releases/latest/download/scotty -o scotty
chmod +x scotty
./scotty listOr install it globally on your $PATH:
curl -L https://github.com/spatie/scotty/releases/latest/download/scotty -o /usr/local/bin/scotty
chmod +x /usr/local/bin/scottyYou can also install it globally with Composer:
composer global require spatie/scottySee the installation docs for details and other options.
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.
All documentation is available on our documentation site.
Scotty is built on the ideas and architecture of Laravel Envoy by Taylor Otwell. The Blade file parser includes code ported from Envoy's compiler. We're grateful for the foundation Envoy provided.
composer testPlease see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.