chore: Remove outdated deployment documentation files
This commit is contained in:
@ -1,238 +0,0 @@
|
|||||||
# 🚀 Автоматическое развертывание на тестовом сервере
|
|
||||||
|
|
||||||
## Обзор
|
|
||||||
|
|
||||||
Этот репозиторий содержит GitHub Actions workflow для автоматического развертывания приложения на тестовом сервере при создании Pull Request в ветку `develop`. Каждый PR получает свою изолированную среду тестирования.
|
|
||||||
|
|
||||||
## 📁 Структура файлов
|
|
||||||
|
|
||||||
```
|
|
||||||
.github/workflows/
|
|
||||||
├── deploy-testing.yml # Основной workflow для развертывания
|
|
||||||
└── test-deployment.yml # Workflow для тестирования развертывания
|
|
||||||
|
|
||||||
scripts/
|
|
||||||
└── setup-testing-server.sh # Скрипт настройки тестового сервера
|
|
||||||
|
|
||||||
DEPLOYMENT.md # Подробная документация по настройке
|
|
||||||
QUICK-START.md # Быстрый старт
|
|
||||||
.env.testing.example # Пример переменных окружения
|
|
||||||
```
|
|
||||||
|
|
||||||
## ⚡ Быстрый старт
|
|
||||||
|
|
||||||
### 1. Настройте тестовый сервер
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# На вашем тестовом сервере выполните:
|
|
||||||
curl -sSL https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_REPO/main/scripts/setup-testing-server.sh | bash
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Добавьте GitHub Secrets
|
|
||||||
|
|
||||||
В настройках репозитория добавьте следующие секреты:
|
|
||||||
|
|
||||||
```
|
|
||||||
TESTING_SERVER_HOST=your.server.ip.address
|
|
||||||
TESTING_SERVER_USER=deploy
|
|
||||||
TESTING_SERVER_SSH_KEY=-----BEGIN OPENSSH PRIVATE KEY-----
|
|
||||||
your private SSH key content
|
|
||||||
-----END OPENSSH PRIVATE KEY-----
|
|
||||||
TESTING_DB_ROOT_PASSWORD=strong_root_password
|
|
||||||
TESTING_DB_USERNAME=app_user
|
|
||||||
TESTING_DB_PASSWORD=strong_user_password
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Создайте Pull Request
|
|
||||||
|
|
||||||
1. Создайте новую ветку от `develop`
|
|
||||||
2. Внесите изменения
|
|
||||||
3. Создайте Pull Request в ветку `develop`
|
|
||||||
4. GitHub Actions автоматически развернет ваше приложение
|
|
||||||
5. Проверьте комментарий в PR с ссылкой на развертывание
|
|
||||||
|
|
||||||
## 🏗️ Как это работает
|
|
||||||
|
|
||||||
### Workflow процесс
|
|
||||||
|
|
||||||
1. **Триггер**: Pull Request в ветку `develop`
|
|
||||||
2. **Сборка**: Установка зависимостей, линтинг, сборка приложения
|
|
||||||
3. **Docker**: Создание Docker образа
|
|
||||||
4. **Развертывание**: Копирование файлов на сервер и запуск контейнеров
|
|
||||||
5. **Проверка**: Health check и уведомление в PR
|
|
||||||
6. **Очистка**: Автоматическая очистка при закрытии PR
|
|
||||||
|
|
||||||
### Архитектура развертывания
|
|
||||||
|
|
||||||
```
|
|
||||||
Тестовый сервер
|
|
||||||
├── /opt/low-code-engine/
|
|
||||||
│ ├── testing-pr-123/ # Изолированная среда для PR #123
|
|
||||||
│ │ ├── docker-compose.yml
|
|
||||||
│ │ ├── docker-compose.override.yml
|
|
||||||
│ │ ├── .env
|
|
||||||
│ │ └── docker/
|
|
||||||
│ ├── testing-pr-124/ # Изолированная среда для PR #124
|
|
||||||
│ └── ...
|
|
||||||
└── Порты:
|
|
||||||
├── Приложение: 3000 + PR_NUMBER
|
|
||||||
├── База данных: 3300 + PR_NUMBER
|
|
||||||
└── Redis: 6300 + PR_NUMBER
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔧 Конфигурация
|
|
||||||
|
|
||||||
### Порты по умолчанию
|
|
||||||
|
|
||||||
- **Приложение**: 3000 + номер PR (например, PR #123 → порт 3123)
|
|
||||||
- **База данных**: 3300 + номер PR (например, PR #123 → порт 3423)
|
|
||||||
- **Redis**: 6300 + номер PR (например, PR #123 → порт 6423)
|
|
||||||
|
|
||||||
### Переменные окружения
|
|
||||||
|
|
||||||
Можно настроить базовые порты через GitHub Variables:
|
|
||||||
|
|
||||||
```
|
|
||||||
TESTING_BASE_PORT=3000 # Базовый порт приложения
|
|
||||||
TESTING_BASE_DB_PORT=3300 # Базовый порт БД
|
|
||||||
TESTING_BASE_REDIS_PORT=6300 # Базовый порт Redis
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📊 Мониторинг
|
|
||||||
|
|
||||||
### Команды на сервере
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Мониторинг всех развертываний
|
|
||||||
sudo /usr/local/bin/monitor-deployments
|
|
||||||
|
|
||||||
# Очистка старых развертываний (старше 7 дней)
|
|
||||||
sudo /usr/local/bin/cleanup-old-deployments
|
|
||||||
|
|
||||||
# Просмотр логов конкретного PR
|
|
||||||
cd /opt/low-code-engine/testing-pr-123
|
|
||||||
docker-compose logs -f app
|
|
||||||
|
|
||||||
# Проверка статуса
|
|
||||||
docker-compose ps
|
|
||||||
```
|
|
||||||
|
|
||||||
### Пример вывода мониторинга
|
|
||||||
|
|
||||||
```
|
|
||||||
=== Testing Deployments Status ===
|
|
||||||
Date: Mon Oct 13 10:30:00 UTC 2025
|
|
||||||
|
|
||||||
Active Deployments:
|
|
||||||
PR #123: Running on port 3123
|
|
||||||
Status: ✅ Healthy
|
|
||||||
PR #124: Running on port 3124
|
|
||||||
Status: ❌ Unhealthy
|
|
||||||
|
|
||||||
=== System Resources ===
|
|
||||||
Disk Usage:
|
|
||||||
/dev/sda1 20G 8.5G 11G 45% /opt/low-code-engine
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔒 Безопасность
|
|
||||||
|
|
||||||
### Рекомендации
|
|
||||||
|
|
||||||
1. **SSH ключи**: Используйте отдельный SSH ключ только для развертывания
|
|
||||||
2. **Пользователь**: Создайте отдельного пользователя `deploy` с минимальными правами
|
|
||||||
3. **Firewall**: Настройте фаервол для ограничения доступа
|
|
||||||
4. **Пароли**: Используйте сильные пароли для базы данных
|
|
||||||
5. **Автоочистка**: Включена автоматическая очистка старых развертываний
|
|
||||||
|
|
||||||
### Настройка firewall
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo ufw enable
|
|
||||||
sudo ufw allow ssh
|
|
||||||
sudo ufw allow 80/tcp
|
|
||||||
sudo ufw allow 443/tcp
|
|
||||||
sudo ufw allow 3000:3999/tcp # Порты приложений
|
|
||||||
sudo ufw allow 3300:3999/tcp # Порты БД
|
|
||||||
sudo ufw allow 6300:6999/tcp # Порты Redis
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🧪 Тестирование
|
|
||||||
|
|
||||||
### Тестирование самого процесса развертывания
|
|
||||||
|
|
||||||
Запустите тестовый workflow вручную:
|
|
||||||
|
|
||||||
1. Перейдите в Actions → Test Deployment Workflow
|
|
||||||
2. Нажмите "Run workflow"
|
|
||||||
3. Укажите номер PR для симуляции (например, 999)
|
|
||||||
4. Запустите тест
|
|
||||||
|
|
||||||
### Локальное тестирование
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Сборка и тест Docker образа локально
|
|
||||||
docker build -t low-code-engine:local .
|
|
||||||
docker run -d --name test-app -p 3000:3000 low-code-engine:local
|
|
||||||
|
|
||||||
# Проверка health endpoint
|
|
||||||
curl http://localhost:3000/health
|
|
||||||
|
|
||||||
# Очистка
|
|
||||||
docker stop test-app && docker rm test-app
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📚 Дополнительная документация
|
|
||||||
|
|
||||||
- [DEPLOYMENT.md](./DEPLOYMENT.md) - Подробная документация по настройке
|
|
||||||
- [QUICK-START.md](./QUICK-START.md) - Краткое руководство по быстрому старту
|
|
||||||
- [.env.testing.example](./.env.testing.example) - Пример переменных окружения
|
|
||||||
|
|
||||||
## 🛠️ Troubleshooting
|
|
||||||
|
|
||||||
### Часто встречающиеся проблемы
|
|
||||||
|
|
||||||
#### "Permission denied" при SSH
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Проверьте права на сервере
|
|
||||||
sudo ls -la /home/deploy/.ssh/
|
|
||||||
sudo chmod 700 /home/deploy/.ssh/
|
|
||||||
sudo chmod 600 /home/deploy/.ssh/authorized_keys
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Порт уже занят
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Найдите процесс
|
|
||||||
sudo netstat -tulpn | grep :3123
|
|
||||||
|
|
||||||
# Остановите развертывание
|
|
||||||
cd /opt/low-code-engine/testing-pr-123
|
|
||||||
docker-compose down
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Нехватка места на диске
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Очистка Docker
|
|
||||||
docker system prune -a -f
|
|
||||||
|
|
||||||
# Очистка старых развертываний
|
|
||||||
sudo /usr/local/bin/cleanup-old-deployments
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🤝 Вклад в развитие
|
|
||||||
|
|
||||||
1. Создайте форк репозитория
|
|
||||||
2. Создайте ветку для новой функции
|
|
||||||
3. Внесите изменения
|
|
||||||
4. Создайте Pull Request
|
|
||||||
5. Протестируйте развертывание
|
|
||||||
|
|
||||||
## 📝 Лицензия
|
|
||||||
|
|
||||||
Этот проект использует лицензию, указанную в основном проекте.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
💡 **Совет**: Начните с [QUICK-START.md](./QUICK-START.md) для быстрой настройки, затем обратитесь к [DEPLOYMENT.md](./DEPLOYMENT.md) для подробной конфигурации.
|
|
||||||
178
QUICK-START.md
178
QUICK-START.md
@ -1,178 +0,0 @@
|
|||||||
# Quick Start Guide для GitHub Actions Deploy
|
|
||||||
|
|
||||||
## 🚀 Быстрая настройка
|
|
||||||
|
|
||||||
### 1. Настройка тестового сервера
|
|
||||||
|
|
||||||
Запустите на своем тестовом сервере:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Скачать и запустить скрипт настройки
|
|
||||||
curl -sSL https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_REPO/main/scripts/setup-testing-server.sh | bash
|
|
||||||
```
|
|
||||||
|
|
||||||
Или вручную:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/YOUR_USERNAME/YOUR_REPO.git
|
|
||||||
cd YOUR_REPO
|
|
||||||
./scripts/setup-testing-server.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Настройка SSH ключей
|
|
||||||
|
|
||||||
На тестовом сервере добавьте свой публичный SSH ключ:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Генерация нового SSH ключа (если нужно)
|
|
||||||
ssh-keygen -t ed25519 -C "github-actions@yourdomain.com" -f ~/.ssh/github_actions
|
|
||||||
|
|
||||||
# Добавление публичного ключа на сервер
|
|
||||||
sudo -u deploy tee -a /home/deploy/.ssh/authorized_keys < ~/.ssh/github_actions.pub
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Настройка GitHub Secrets
|
|
||||||
|
|
||||||
В настройках GitHub репозитория (Settings → Secrets and variables → Actions) добавьте:
|
|
||||||
|
|
||||||
**Required Secrets:**
|
|
||||||
|
|
||||||
```
|
|
||||||
TESTING_SERVER_HOST=your.server.ip.address
|
|
||||||
TESTING_SERVER_USER=deploy
|
|
||||||
TESTING_SERVER_SSH_KEY=-----BEGIN OPENSSH PRIVATE KEY-----
|
|
||||||
your private key content here
|
|
||||||
-----END OPENSSH PRIVATE KEY-----
|
|
||||||
TESTING_DB_ROOT_PASSWORD=your_strong_root_password
|
|
||||||
TESTING_DB_USERNAME=app_user
|
|
||||||
TESTING_DB_PASSWORD=your_strong_user_password
|
|
||||||
```
|
|
||||||
|
|
||||||
**Optional Variables:**
|
|
||||||
|
|
||||||
```
|
|
||||||
TESTING_BASE_PORT=3000
|
|
||||||
TESTING_BASE_DB_PORT=3300
|
|
||||||
TESTING_BASE_REDIS_PORT=6300
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Тестирование
|
|
||||||
|
|
||||||
1. Создайте новую ветку и сделайте изменения
|
|
||||||
2. Создайте Pull Request в ветку `develop`
|
|
||||||
3. GitHub Actions автоматически развернет приложение
|
|
||||||
4. Проверьте комментарий в PR с информацией о развертывании
|
|
||||||
|
|
||||||
## 📝 Полезные команды на сервере
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Мониторинг всех развертываний
|
|
||||||
sudo /usr/local/bin/monitor-deployments
|
|
||||||
|
|
||||||
# Очистка старых развертываний
|
|
||||||
sudo /usr/local/bin/cleanup-old-deployments
|
|
||||||
|
|
||||||
# Просмотр логов конкретного PR
|
|
||||||
cd /opt/low-code-engine/testing-pr-123
|
|
||||||
docker-compose logs -f app
|
|
||||||
|
|
||||||
# Проверка статуса контейнеров
|
|
||||||
docker-compose ps
|
|
||||||
|
|
||||||
# Запуск миграций вручную
|
|
||||||
docker-compose exec app yarn migration:run
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔧 Troubleshooting
|
|
||||||
|
|
||||||
### Проблема: "Permission denied" при SSH подключении
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# На сервере проверьте права доступа
|
|
||||||
sudo ls -la /home/deploy/.ssh/
|
|
||||||
sudo cat /home/deploy/.ssh/authorized_keys
|
|
||||||
|
|
||||||
# Права должны быть:
|
|
||||||
# drwx------ deploy deploy .ssh/
|
|
||||||
# -rw------- deploy deploy authorized_keys
|
|
||||||
```
|
|
||||||
|
|
||||||
### Проблема: Порт уже занят
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Найти процесс использующий порт
|
|
||||||
sudo netstat -tulpn | grep :3123
|
|
||||||
|
|
||||||
# Остановить все контейнеры для PR
|
|
||||||
cd /opt/low-code-engine/testing-pr-123
|
|
||||||
docker-compose down
|
|
||||||
```
|
|
||||||
|
|
||||||
### Проблема: Не хватает места на диске
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Очистить Docker ресурсы
|
|
||||||
docker system prune -a -f
|
|
||||||
|
|
||||||
# Очистить старые развертывания
|
|
||||||
sudo /usr/local/bin/cleanup-old-deployments
|
|
||||||
```
|
|
||||||
|
|
||||||
### Проблема: База данных не запускается
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Проверить логи MariaDB
|
|
||||||
docker-compose logs mariadb
|
|
||||||
|
|
||||||
# Пересоздать контейнер базы данных
|
|
||||||
docker-compose down
|
|
||||||
docker-compose up -d mariadb
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🌐 Доступ к приложениям
|
|
||||||
|
|
||||||
### По портам (прямой доступ):
|
|
||||||
|
|
||||||
- Приложение: `http://YOUR_SERVER_IP:3000{PR_NUMBER}`
|
|
||||||
- База данных: `YOUR_SERVER_IP:3300{PR_NUMBER}`
|
|
||||||
- Redis: `YOUR_SERVER_IP:6300{PR_NUMBER}`
|
|
||||||
|
|
||||||
### Через домены (если настроен Nginx):
|
|
||||||
|
|
||||||
- Приложение: `http://pr-{PR_NUMBER}.testing.yourdomain.com`
|
|
||||||
|
|
||||||
Пример для PR #123:
|
|
||||||
|
|
||||||
- Приложение: `http://your.server.ip:3123` или `http://pr-123.testing.yourdomain.com`
|
|
||||||
- База данных: `your.server.ip:3423`
|
|
||||||
- Redis: `your.server.ip:6423`
|
|
||||||
|
|
||||||
## 📊 Мониторинг
|
|
||||||
|
|
||||||
Проверить статус всех развертываний:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo /usr/local/bin/monitor-deployments
|
|
||||||
```
|
|
||||||
|
|
||||||
Вывод будет примерно таким:
|
|
||||||
|
|
||||||
```
|
|
||||||
=== Testing Deployments Status ===
|
|
||||||
Date: Mon Oct 13 10:30:00 UTC 2025
|
|
||||||
|
|
||||||
Active Deployments:
|
|
||||||
PR #123: Running on port 3123
|
|
||||||
Status: ✅ Healthy
|
|
||||||
PR #124: Running on port 3124
|
|
||||||
Status: ❌ Unhealthy
|
|
||||||
|
|
||||||
=== System Resources ===
|
|
||||||
Disk Usage:
|
|
||||||
/dev/sda1 20G 8.5G 11G 45% /opt/low-code-engine
|
|
||||||
|
|
||||||
Docker Usage:
|
|
||||||
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
|
|
||||||
Images 15 8 2.5GB 1.2GB (48%)
|
|
||||||
Containers 16 8 150MB 80MB (53%)
|
|
||||||
```
|
|
||||||
Reference in New Issue
Block a user