- Implemented a new GitHub Actions workflow for testing deployments (`test-deployment.yml`). - Created detailed deployment documentation (`DEPLOYMENT-README.md`, `DEPLOYMENT.md`, `QUICK-START.md`) for setting up the testing server and configuring GitHub secrets. - Added a setup script (`setup-testing-server.sh`) for automating the environment setup on the testing server, including Docker, Nginx, and user configurations. - Included monitoring and cleanup scripts for managing deployments on the server.
179 lines
4.9 KiB
Markdown
179 lines
4.9 KiB
Markdown
# 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%)
|
||
```
|