Files
global_it24_landing/README.deployment.md

7.1 KiB
Raw Blame History

📦 Инструкция по развертыванию Global-IT24 Landing Page

🎯 Быстрый старт

cd /home/ubuntu/global_it24_landing

# 1. Настройте .env файл (если еще не настроен)
nano .env

# 2. Очистите старые контейнеры и кеш
docker compose down
docker builder prune -f

# 3. Запустите развертывание (РЕКОМЕНДУЕТСЯ)
./deploy.sh --fast

📝 Варианты развертывания

Вариант 1: Быстрая сборка (РЕКОМЕНДУЕТСЯ)

./deploy.sh --fast

⏱️ Время: 10-15 минут
Использует: BuildKit кеш для ускорения

Вариант 2: Полная сборка без кеша

./deploy.sh

⏱️ Время: 20-30 минут
⚠️ Используйте только: При первом развертывании или проблемах с кешем

Вариант 3: Обновление без пересборки

./update.sh

⏱️ Время: ~10 секунд
Используйте: Когда изменились только переменные .env

Вариант 4: Обновление с пересборкой

./update.sh --rebuild

⏱️ Время: 5-10 минут
Используйте: После изменения кода или зависимостей

🔧 Конфигурация .env

Обязательные переменные:

# Основные настройки
DOMAIN=global-it24.ru
NEXT_PUBLIC_SITE_URL=https://global-it24.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

📊 Мониторинг

Проверка статуса

./status.sh

Просмотр логов

./logs.sh              # Все логи
./logs.sh --tail 100   # Последние 100 строк

Проверка работы приложения

# Локально
curl http://localhost:3000

# Через Traefik (если настроен)
curl https://global-it24.ru

🐛 Решение проблем

Проблема: Сборка зависла на "Building fresh packages"

Решение:

# Остановите сборку
Ctrl+C

# Очистите кеш
docker builder prune -f

# Попробуйте снова с --fast
./deploy.sh --fast

См. подробности в QUICK_FIX.md

Проблема: Недостаточно ресурсов

Проверьте:

free -h           # Проверка RAM
df -h             # Проверка диска
docker info       # Лимиты Docker

Рекомендуемые ресурсы:

  • CPU: минимум 2 ядра, рекомендуется 4
  • RAM: минимум 4GB, рекомендуется 8GB
  • Диск: минимум 10GB свободного места

Проблема: Не запускается после сборки

Проверьте логи:

docker compose logs web
docker compose logs db

Типичные причины:

  1. Ошибки в .env файле
  2. База данных не запустилась
  3. Порт 3000 уже занят

Проблема: База данных не подключается

Проверьте:

# Статус контейнера БД
docker compose ps db

# Логи БД
docker compose logs db

# Подключение вручную
docker compose exec db psql -U $POSTGRES_USER -d $POSTGRES_DB

🔄 Обновление приложения

Обновление кода из Git

cd /home/ubuntu/global_it24_landing
git pull origin master
./update.sh --rebuild

Обновление только переменных .env

nano .env
./update.sh

Применение миграций БД

docker compose exec web npx prisma migrate deploy

📦 Резервное копирование

Создание бэкапа БД

./backup-db.sh

Файл сохраняется в: ./backups/db_backup_YYYYMMDD_HHMMSS.sql

Восстановление из бэкапа

docker compose exec -T db psql -U $POSTGRES_USER -d $POSTGRES_DB < backups/db_backup_XXXXXXXX.sql

🌐 Настройка Traefik

  1. Скопируйте пример конфигурации:
cp traefik-config-example.yml /путь/к/traefik/dynamic/global-it24.yml
  1. Отредактируйте параметры:

    • APP_HOST_IP:3000 - IP вашего сервера
    • global-it24.ru - ваш домен
  2. Перезагрузите Traefik:

docker restart traefik  # или используйте ваш метод

📚 Дополнительная документация

  • BUILD_OPTIMIZATION.md - Подробности оптимизации сборки
  • QUICK_FIX.md - Быстрое решение проблемы зависания
  • DATABASE.md - Управление базой данных

🆘 Поддержка

Если проблема не решена:

  1. Проверьте логи: ./logs.sh
  2. Проверьте статус: ./status.sh
  3. Попробуйте полную пересборку:
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

🚀 Готово!

Приложение развернуто и готово к работе!

Полезные команды:

./status.sh           # Статус
./logs.sh             # Логи
./update.sh           # Обновление
./backup-db.sh        # Бэкап БД
./deploy.sh --help    # Справка по развертыванию
./update.sh --help    # Справка по обновлению