EnglishРусский Map

Scotty

title
Scotty
type
toolbox
summary
SSH-исполнитель задач, оформляющий шаги развёртывания как аннотированные bash-функции; преемник Laravel Envoy
tags
php, ssh, deployment, cli
language
PHP
license
unknown
created
2026-04-06
updated
2026-04-06
lang
ru
translation_of
scotty
source_updated
2026-04-06
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-medium

SSH-исполнитель задач от Spatie, позволяющий описывать скрипты развёртывания обычными bash-функциями и запускать их на удалённых серверах с выводом в реальном времени. Идейный преемник Laravel Envoy, переписанный с нуля.

Как устроен: вы создаёте файл Scotty.sh с аннотированными bash-функциями. Каждая функция - это задача, а аннотации указывают, на каком сервере её выполнять. Scotty парсит файл, подключается к серверу по SSH и транслирует вывод со счётчиками шагов и хронометражем.

#!/usr/bin/env scotty
# @servers remote=deployer@your-server.com
# @task on:remote
deploy() {
    cd /var/www/my-app
    git pull origin main
    php artisan migrate --force
}
scotty run deploy

Что делает его удобным:

  • Обычный синтаксис bash (не Blade-шаблоны) - честная подсветка синтаксиса оболочки и полная совместимость с bash
  • Отображение в реальном времени: имя задачи, счётчик шагов, затраченное время, текущая команда
  • Сводная таблица по завершении с хронометражем по каждому шагу
  • Нажатие p ставит развёртывание на паузу, чтобы проверить всё на сервере, а затем продолжить или отменить
  • Режим --pretend показывает команды без выполнения
  • Режим --summary скрывает вывод, показывая только результаты
  • scotty doctor проверяет парсинг файлов, доступность по SSH и наличие утилит на удалённом сервере
  • Читает существующие файлы Envoy.blade.php для обратной совместимости

Ограничения: написан на PHP, поэтому требует среду выполнения PHP. Ориентирован на мир развёртывания Laravel/PHP, хотя формат bash-задач подходит для чего угодно.

Repo: https://github.com/spatie/scotty - 162 stars.