- Updated `README.md` to include instructions for the new `redeploy-ubuntu.sh` script and added a link to the new `REDEPLOY_GUIDE.md`. - Created `REDEPLOY_GUIDE.md` detailing the redeployment process, including backup creation, code updates, and troubleshooting steps. - Introduced `redeploy-hint.md` for GitHub Actions automation example, outlining setup for automatic redeployment on push events. - Improved documentation structure for better navigation and clarity.
2.5 KiB
2.5 KiB
🔄 Автоматический Redeploy через GitHub Actions (пример)
Этот файл показывает, как настроить автоматическое обновление сервера при push в main.
⚠️ Важно
Этот workflow НЕ включен по умолчанию для безопасности. Чтобы включить:
- Переименуйте этот файл:
redeploy-hint.md→redeploy.yml - Настройте secrets в GitHub:
SSH_PRIVATE_KEY- SSH ключ для доступа к серверуSERVER_HOST- IP адрес или домен сервераSERVER_USER- Пользователь на сервере
Пример workflow:
name: Redeploy to Production
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy to server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /opt/ai-review
sudo git pull origin main
sudo ./redeploy-ubuntu.sh
- name: Check service status
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
sudo systemctl status ai-review --no-pager
- name: Notify on failure
if: failure()
run: echo "Deployment failed! Check the logs."
Альтернатива: Webhook
Можно настроить webhook, который будет вызывать redeploy при push:
# На сервере создать endpoint для webhook
# /opt/ai-review/webhook-server.sh
#!/bin/bash
# Простой webhook сервер
while true; do
echo -e "HTTP/1.1 200 OK\n\n$(sudo /opt/ai-review/redeploy-ubuntu.sh 2>&1)" | nc -l -p 9000
done
Затем в GitHub:
- Settings → Webhooks → Add webhook
- Payload URL:
http://your-server:9000 - Content type:
application/json - Events:
Just the push event
Безопасность
⚠️ Не используйте автоматический деплой без:
- Тестов в CI/CD
- Staging окружения
- Возможности быстрого отката
- Мониторинга после деплоя