Как перестать мучить свой ноутбук тяжелыми тестами и сборками

04 Aug, 2026
1,259
🔱 153
👥 2

Знакомая история: вы запускаете тесты или тяжелую сборку проекта, и через пять минут кулер ноутбука начинает имитировать взлет истребителя. Работать в это время невозможно, Slack тормозит, а Docker съедает последние остатки оперативной памяти. Обычно в такие моменты мы либо идем пить кофе, либо начинаем настраивать сложный CI/CD пайплайн, чтобы просто проверить одну ветку.

Crabbox banner

Недавно я наткнулся на Crabbox. Это инструмент, который решает проблему «тяжелых» локальных задач изящным способом. Он берет ваш текущий рабочий каталог, синхронизирует изменения с удаленной машиной и запускает там нужную команду. При этом вы остаетесь в своем привычном терминале, а результат выполнения стримится обратно так, будто все происходит локально.

Что это вообще такое

Если коротко, Crabbox — это панель управления для удаленного запуска кода. Это не замена GitHub Actions или GitLab CI. Скорее, это расширение вашего локального окружения.

Представьте, что вам нужно прогнать тесты на специфической версии Ubuntu или проверить, как ведет себя приложение на Windows, а у вас macOS. Вместо того чтобы возиться с виртуальными машинами или ждать очереди в общем CI, вы пишете одну команду, и Crabbox сам арендует инстанс в облаке, закидывает туда код и выдает результат.

Как это работает на практике

Основная магия скрыта за командой crabbox run. Допустим, вы хотите запустить тесты в облаке Hetzner или AWS:

crabbox run -- pnpm test

В этот момент происходит несколько вещей. CLI находит подходящий раннер (или создает новый), генерирует временные SSH-ключи и через rsync перебрасывает только измененные файлы. Важно, что Crabbox не требует чистого коммита — он подхватывает даже незакоммиченные правки. После выполнения команды инстанс можно сразу «отпустить» или оставить прогретым для следующего запуска.

Пять особенностей, которые меня зацепили

1. Гибкость в выборе железа

Crabbox поддерживает кучу провайдеров: от гигантов вроде AWS, Azure и GCP до более бюджетных Hetzner и DigitalOcean. Есть даже экзотика вроде Apple VZ для запуска нативных macOS виртуалок или поддержка локальных Docker-контейнеров. Вы сами решаете, нужно ли вам 2 ядра для простых скриптов или «beast-mode» с 48 ядрами для компиляции огромного монолита.

2. Гидратация через GitHub Actions

Это, пожалуй, самая крутая фича. Crabbox умеет парсить ваш файл конфигурации .github/workflows и воспроизводить шаги установки окружения на удаленной машине через SSH. То есть вам не нужно писать отдельные скрипты настройки для Crabbox — он просто берет готовую логику из вашего CI.

3. Работа с «прогретыми» окружениями

Если каждый раз ждать поднятия новой виртуалки слишком долго, можно использовать crabbox warmup. Это создаст рабочую область, которая будет ждать ваших команд. Синхронизация изменений происходит мгновенно благодаря rsync, так что цикл «правка — запуск теста» занимает секунды.

4. Интерактивный доступ и VNC

Иногда тест падает, и логов недостаточно. Crabbox позволяет подключиться к удаленной машине по SSH одной командой. Но что еще интереснее — он поддерживает проброс графического интерфейса. Если вы тестируете браузерную автоматизацию, можно открыть WebVNC прямо в браузере и посмотреть, что происходит на экране удаленной машины.

5. Координатор для команд

Если вы работаете не один, можно развернуть координатор (на Cloudflare Workers или Node.js). Он будет управлять лимитами бюджета, общими ключами доступа к облакам и хранить историю всех запусков. Это удобно, когда нужно дать контрибьюторам возможность запускать тесты на мощном железе, не раздавая им прямые доступы к аккаунту AWS.

Техническая начинка

Проект написан на Go, что делает CLI быстрым и простым в установке. Архитектура разделена на три части:

  1. CLI: бинарник на вашем компьютере.
  2. Coordinator: опциональный сервер (Cloudflare Worker или Node.js + Postgres), который следит за состоянием арендованных машин и деньгами.
  3. Runner: сама виртуалка, где исполняется код.

Связь между CLI и раннером идет напрямую через SSH и rsync. Это значит, что ваши данные не гуляют через посредников, что важно для безопасности. Координатор нужен только для того, чтобы сказать CLI: «вот тебе адрес свободной машины, дерзай».

Кому стоит попробовать

Я вижу несколько сценариев, где Crabbox реально экономит время:

  • Разработчики на легких ноутбуках. Когда у вас 8 ГБ оперативной памяти, а проект требует 16 ГБ только для сборки.
  • Тестирование платформозависимых багов. Нужно быстро проверить баг, который воспроизводится только на Windows или Linux ARM64.
  • QA-инженеры. Для запуска тяжелых E2E тестов в несколько потоков, не нагружая рабочую станцию.
  • Автоматизация через AI-агентов. Инструмент идеально подходит для того, чтобы давать AI-агентам безопасную, изолированную песочницу с полным аудитом логов.

Стоит ли внедрять

Crabbox выглядит как очень зрелый инструмент для проекта с тысячью звезд. У него отличная документация и поддержка огромного количества провайдеров (я насчитал больше 30 вариантов, включая даже такие специфические вещи как KubeVirt или Firecracker).

Единственный нюанс — вам все равно придется разобраться с тем, как настроить доступ к облачному провайдеру, если вы планируете запускать код не в локальном Docker. Но как только конфиг написан, возвращаться к локальным тормозам уже не хочется.

Если вы чувствуете, что ваш компьютер перестал справляться с нагрузкой или вам надоело ждать очереди в CI для проверки гипотез — попробуйте Crabbox. Это тот случай, когда маленькая утилита может сильно изменить ежедневный воркфлоу.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.