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.
Linked from