Деплой по SSH из GitHub
Кратко: как настроить автодеплой при push в репозиторий.
Чтобы при каждом push в ветку main код автоматически подтягивался на сервер и перезапускался — используйте GitHub Actions и SSH.
Что нужно
- Репозиторий на GitHub с workflow (например
.github/workflows/deploy.yml). - Секреты репозитория (Settings → Secrets and variables → Actions):
VPS_HOST— IP или домен сервераVPS_USER— пользователь для SSH (напримерdeploy)VPS_SSH_KEY— приватный ключ SSH (содержимоеid_rsa)
На сервере
- Пользователь
VPS_USERдолжен иметь доступ по SSH по ключу (публичный ключ добавлен в~/.ssh/authorized_keys). - В каталоге деплоя (например
/opt) — клонированный репозиторий и при необходимости права на выполнение скриптов деплоя и sudo для nginx (см. DEPLOY.md в проекте).
Что делает workflow
Обычно: сборка (например Docker-образа или артефактов), затем по SSH — git pull, копирование конфигов при необходимости, перезапуск контейнеров или сервисов.
После настройки достаточно пушить в main — деплой запустится сам.