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