256 lines
7.1 KiB
Markdown
256 lines
7.1 KiB
Markdown
# 📦 Инструкция по развертыванию 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 # Справка по обновлению
|
||
```
|