КомандаДеплой

/deploy

Деплой на VPS через Docker: сборка образа, пуш, docker-compose up. С rollback при ошибке.

Закинь в Claude, Cursor или любой AI

Описание

Простым языком

Написал код локально — хочешь чтобы он появился на сайте. Напиши /deploy — Claude сам упакует код, отправит на сервер, запустит и проверит что всё работает. Как отправить посылку: упаковал, передал курьеру, получил подтверждение доставки.

Если что-то пошло не так — Claude попробует починить сам. Если совсем не получится — вернёт предыдущую рабочую версию сайта. Ты в любом случае не останешься со сломанным сайтом.


Что делает

/deploy выполняет полный цикл деплоя на VPS через Docker: сборка образа, проверка env vars, docker compose up -d --build, health check. При ошибке — Auto-Fix Pipeline с 3 попытками и откатом на предыдущую версию. Подключается к серверу через MCP SSH.

Синтаксис

# Деплой на production (по умолчанию)
/deploy

# Деплой на staging
/deploy --env staging

# Принудительная пересборка без кэша
/deploy --force

# Dry run — показать что будет делать
/deploy --dry-run

Пошаговый процесс

  1. Проверяет что все изменения закоммичены (нет dirty working tree)
  2. Подключается к VPS через MCP SSH-сервер
  3. Проверяет наличие всех env vars из .env.example на сервере
  4. Запускает docker compose build --no-cache (или с кэшем без --force)
  5. Выполняет docker compose up -d — старый контейнер меняется без даунтайма
  6. Health check: проверяет /api/health или настроенный endpoint
  7. При успехе — уведомление с новой версией; при ошибке — Auto-Fix Pipeline

Примеры использования

Стандартный деплой фичи

Закончили разработку, тесты прошли, хотите выкатить на прод. Вызываете /deploy — Claude делает всё сам, включая проверку что ничего не забыли.

# Пример вывода /deploy:
Подключение: stackovervibe (109.172.36.108)
Git: ветка main, коммит c645f54

Проверка env vars:
  PAYLOAD_SECRET      OK
  DATABASE_URI        OK
  NEXT_PUBLIC_URL     OK
  TELEGRAM_BOT_TOKEN  OK

Docker build... (2m 34s)
docker compose up -d --build

Health check: https://stackovervibe.ru/api/health
Status: 200 OK

Деплой успешен. Версия: c645f54

Деплой с откатом при ошибке

Если health check упал — Auto-Fix Pipeline пробует исправить. Если 3 попытки провалились — автоматический откат на предыдущий рабочий образ.

# Auto-Fix Pipeline при ошибке деплоя:
Попытка 1: Health check упал — читаю логи
  → Ошибка: DATABASE_URI некорректный
  → Исправляю env на сервере

Попытка 2: Health check прошёл
  → Деплой успешен

# Если все 3 попытки провалились:
git revert HEAD && git push
→ автоматический откат к предыдущей версии

Автоматизация

В CI/CD: каждый пуш в main запускает GitHub Actions, который через self-hosted runner выполняет SSH-деплой. Ручной /deploy нужен только для срочных хотфиксов или деплоя без пуша.

# CI/CD pipeline (GitHub Actions):
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: self-hosted  # runner на secondbrain
    steps:
      - name: Deploy
        run: |
          ssh stackovervibe "cd /home/claude/stackovervibe &&
            git pull &&
            docker compose up -d --build"
Хороший деплой — тот, о котором не думаешь. /deploy + CI/CD делают выкладку скучной рутиной.
#Commands#Claude Code#Docker#Nginx
TG

> Пока нет комментариев

Связанный контент

Похожие инструменты