Files
global_it24_landing/README.deployment.md
2025-11-11 13:52:43 +00:00

256 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📦 Инструкция по развертыванию Global-IT24 Landing Page
## 🎯 Быстрый старт
```bash
cd /home/ubuntu/global_it24_landing
# 1. Настройте .env файл (если еще не настроен)
nano .env
# 2. Очистите старые контейнеры и кеш
docker compose down
docker builder prune -f
# 3. Запустите развертывание (РЕКОМЕНДУЕТСЯ)
./deploy.sh --fast
```
## 📝 Варианты развертывания
### Вариант 1: Быстрая сборка (РЕКОМЕНДУЕТСЯ)
```bash
./deploy.sh --fast
```
⏱️ **Время:** 10-15 минут
**Использует:** BuildKit кеш для ускорения
### Вариант 2: Полная сборка без кеша
```bash
./deploy.sh
```
⏱️ **Время:** 20-30 минут
⚠️ **Используйте только:** При первом развертывании или проблемах с кешем
### Вариант 3: Обновление без пересборки
```bash
./update.sh
```
⏱️ **Время:** ~10 секунд
**Используйте:** Когда изменились только переменные .env
### Вариант 4: Обновление с пересборкой
```bash
./update.sh --rebuild
```
⏱️ **Время:** 5-10 минут
**Используйте:** После изменения кода или зависимостей
## 🔧 Конфигурация .env
Обязательные переменные:
```bash
# Основные настройки
DOMAIN=video.mscsrv.ru
NEXT_PUBLIC_SITE_URL=https://video.mscsrv.ru
APP_HOST_IP=192.168.50.100 # IP вашего сервера
# База данных PostgreSQL
POSTGRES_USER=global_it24_user
POSTGRES_PASSWORD=ваш_надежный_пароль
POSTGRES_DB=global_it24_db
DATABASE_URL="postgresql://..."
# Email уведомления
SMTP_HOST=smtp.yandex.ru
SMTP_PORT=587
SMTP_USER=info@global-it24.ru
SMTP_PASSWORD=ваш_пароль_приложения
EMAIL_FROM=info@global-it24.ru
EMAIL_TO=info@global-it24.ru
# Telegram уведомления (опционально)
TELEGRAM_BOT_TOKEN=ваш_токен_бота
TELEGRAM_CHAT_ID=ваш_chat_id
# Traefik (если используется внешний Traefik)
TRAEFIK_HOST=traefik-host # Hostname сервера с Traefik
```
## 📊 Мониторинг
### Проверка статуса
```bash
./status.sh
```
### Просмотр логов
```bash
./logs.sh # Все логи
./logs.sh --tail 100 # Последние 100 строк
```
### Проверка работы приложения
```bash
# Локально
curl http://localhost:3000
# Через Traefik (если настроен)
curl https://video.mscsrv.ru
```
## 🐛 Решение проблем
### Проблема: Сборка зависла на "Building fresh packages"
**Решение:**
```bash
# Остановите сборку
Ctrl+C
# Очистите кеш
docker builder prune -f
# Попробуйте снова с --fast
./deploy.sh --fast
```
См. подробности в `QUICK_FIX.md`
### Проблема: Недостаточно ресурсов
**Проверьте:**
```bash
free -h # Проверка RAM
df -h # Проверка диска
docker info # Лимиты Docker
```
**Рекомендуемые ресурсы:**
- CPU: минимум 2 ядра, рекомендуется 4
- RAM: минимум 4GB, рекомендуется 8GB
- Диск: минимум 10GB свободного места
### Проблема: Не запускается после сборки
**Проверьте логи:**
```bash
docker compose logs web
docker compose logs db
```
**Типичные причины:**
1. Ошибки в .env файле
2. База данных не запустилась
3. Порт 3000 уже занят
### Проблема: База данных не подключается
**Проверьте:**
```bash
# Статус контейнера БД
docker compose ps db
# Логи БД
docker compose logs db
# Подключение вручную
docker compose exec db psql -U $POSTGRES_USER -d $POSTGRES_DB
```
## 🔄 Обновление приложения
### Обновление кода из Git
```bash
cd /home/ubuntu/global_it24_landing
git pull origin master
./update.sh --rebuild
```
### Обновление только переменных .env
```bash
nano .env
./update.sh
```
### Применение миграций БД
```bash
docker compose exec web npx prisma migrate deploy
```
## 📦 Резервное копирование
### Создание бэкапа БД
```bash
./backup-db.sh
```
Файл сохраняется в: `./backups/db_backup_YYYYMMDD_HHMMSS.sql`
### Восстановление из бэкапа
```bash
docker compose exec -T db psql -U $POSTGRES_USER -d $POSTGRES_DB < backups/db_backup_XXXXXXXX.sql
```
## 🌐 Настройка Traefik
1. Скопируйте пример конфигурации:
```bash
cp traefik-config-example.yml /путь/к/traefik/dynamic/global-it24.yml
```
2. Отредактируйте параметры:
- `APP_HOST_IP:3000` - IP вашего сервера
- `video.mscsrv.ru` - ваш домен
3. Перезагрузите Traefik:
```bash
docker restart traefik # или используйте ваш метод
```
## 📚 Дополнительная документация
- `BUILD_OPTIMIZATION.md` - Подробности оптимизации сборки
- `QUICK_FIX.md` - Быстрое решение проблемы зависания
- `DATABASE.md` - Управление базой данных
## 🆘 Поддержка
Если проблема не решена:
1. Проверьте логи: `./logs.sh`
2. Проверьте статус: `./status.sh`
3. Попробуйте полную пересборку:
```bash
docker compose down -v
docker builder prune -a -f
./deploy.sh
```
## ✅ Чек-лист после развертывания
- [ ] Приложение запущено: `./status.sh`
- [ ] Доступно локально: `curl http://localhost:3000`
- [ ] База данных работает: `docker compose logs db`
- [ ] Логи без ошибок: `./logs.sh`
- [ ] Настроен Traefik (если используется)
- [ ] Форма обратной связи работает
- [ ] Email уведомления приходят
- [ ] Telegram уведомления работают (если настроены)
- [ ] Создан первый бэкап БД: `./backup-db.sh`
## 🚀 Готово!
Приложение развернуто и готово к работе!
Полезные команды:
```bash
./status.sh # Статус
./logs.sh # Логи
./update.sh # Обновление
./backup-db.sh # Бэкап БД
./deploy.sh --help # Справка по развертыванию
./update.sh --help # Справка по обновлению
```