Добавлена полная инструкция по развертыванию
This commit is contained in:
@@ -1,491 +1,255 @@
|
|||||||
|
# 📦 Инструкция по развертыванию Global-IT24 Landing Page
|
||||||
|
|
||||||
# Инструкция по развертыванию Global-IT24 на Ubuntu с внешним Traefik
|
## 🎯 Быстрый старт
|
||||||
|
|
||||||
## Архитектура
|
|
||||||
|
|
||||||
- **Traefik:** 192.168.50.59 (внешний хост)
|
|
||||||
- **Приложение:** Ваш сервер (докер контейнер на порту 3000)
|
|
||||||
- **Домен:** video.mscsrv.ru
|
|
||||||
|
|
||||||
## Предварительные требования
|
|
||||||
|
|
||||||
1. Ubuntu Server (20.04 или новее)
|
|
||||||
2. Docker и Docker Compose установлены
|
|
||||||
3. Traefik уже настроен на хосте 192.168.50.59
|
|
||||||
4. Домен video.mscsrv.ru направлен на 192.168.50.59
|
|
||||||
5. Сетевая связность между хостами (порт 3000 доступен из 192.168.50.59)
|
|
||||||
|
|
||||||
## Шаг 1: Подготовка сервера приложения
|
|
||||||
|
|
||||||
### 1.1 Установка Docker (если не установлен)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Обновление системы
|
cd /home/ubuntu/global_it24_landing
|
||||||
sudo apt update && sudo apt upgrade -y
|
|
||||||
|
|
||||||
# Установка зависимостей
|
# 1. Настройте .env файл (если еще не настроен)
|
||||||
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
|
|
||||||
|
|
||||||
# Добавление репозитория Docker
|
|
||||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
|
||||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
||||||
|
|
||||||
# Установка Docker
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
|
||||||
|
|
||||||
# Добавление пользователя в группу docker
|
|
||||||
sudo usermod -aG docker $USER
|
|
||||||
newgrp docker
|
|
||||||
|
|
||||||
# Проверка установки
|
|
||||||
docker --version
|
|
||||||
docker compose version
|
|
||||||
```
|
|
||||||
|
|
||||||
### 1.2 Подготовка проекта
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Перейдите в директорию проекта
|
|
||||||
cd /path/to/global_it24_landing
|
|
||||||
|
|
||||||
# Создайте .env файл
|
|
||||||
cp .env.example .env
|
|
||||||
nano .env
|
nano .env
|
||||||
|
|
||||||
|
# 2. Очистите старые контейнеры и кеш
|
||||||
|
docker compose down
|
||||||
|
docker builder prune -f
|
||||||
|
|
||||||
|
# 3. Запустите развертывание (РЕКОМЕНДУЕТСЯ)
|
||||||
|
./deploy.sh --fast
|
||||||
```
|
```
|
||||||
|
|
||||||
Отредактируйте `.env`:
|
## 📝 Варианты развертывания
|
||||||
|
|
||||||
```env
|
|
||||||
DOMAIN=video.mscsrv.ru
|
|
||||||
NEXT_PUBLIC_SITE_URL=https://video.mscsrv.ru
|
|
||||||
TRAEFIK_HOST=192.168.50.59
|
|
||||||
APP_HOST_IP=192.168.50.X # Замените на IP текущего сервера
|
|
||||||
NODE_ENV=production
|
|
||||||
```
|
|
||||||
|
|
||||||
### 1.3 Проверка сетевой доступности
|
|
||||||
|
|
||||||
|
### Вариант 1: Быстрая сборка (РЕКОМЕНДУЕТСЯ)
|
||||||
```bash
|
```bash
|
||||||
# Узнайте IP текущего хоста
|
./deploy.sh --fast
|
||||||
hostname -I
|
|
||||||
|
|
||||||
# С хоста Traefik (192.168.50.59) должен быть доступ к этому IP:3000
|
|
||||||
# Проверьте после запуска контейнера
|
|
||||||
```
|
```
|
||||||
|
⏱️ **Время:** 10-15 минут
|
||||||
|
✅ **Использует:** BuildKit кеш для ускорения
|
||||||
|
|
||||||
## Шаг 2: Запуск приложения
|
### Вариант 2: Полная сборка без кеша
|
||||||
|
|
||||||
### 2.1 Сборка и запуск контейнера
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Автоматическое развертывание
|
|
||||||
./deploy.sh
|
./deploy.sh
|
||||||
|
|
||||||
# Или вручную:
|
|
||||||
docker compose build --no-cache
|
|
||||||
docker compose up -d
|
|
||||||
```
|
```
|
||||||
|
⏱️ **Время:** 20-30 минут
|
||||||
|
⚠️ **Используйте только:** При первом развертывании или проблемах с кешем
|
||||||
|
|
||||||
### 2.2 Проверка работы контейнера
|
### Вариант 3: Обновление без пересборки
|
||||||
|
|
||||||
```bash
|
|
||||||
# Проверка статуса
|
|
||||||
./status.sh
|
|
||||||
# или
|
|
||||||
docker compose ps
|
|
||||||
|
|
||||||
# Просмотр логов
|
|
||||||
./logs.sh
|
|
||||||
# или
|
|
||||||
docker compose logs -f
|
|
||||||
|
|
||||||
# Проверка доступности локально
|
|
||||||
curl http://localhost:3000
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2.3 Проверка доступности из сети
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# С хоста Traefik (192.168.50.59) выполните:
|
|
||||||
curl http://192.168.50.X:3000
|
|
||||||
|
|
||||||
# Замените 192.168.50.X на IP вашего сервера
|
|
||||||
```
|
|
||||||
|
|
||||||
## Шаг 3: Настройка Traefik (на хосте 192.168.50.59)
|
|
||||||
|
|
||||||
### 3.1 Создание конфигурации
|
|
||||||
|
|
||||||
На хосте Traefik создайте файл конфигурации для file provider:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Перейдите в директорию конфигурации Traefik
|
|
||||||
cd /path/to/traefik/config
|
|
||||||
|
|
||||||
# Создайте файл конфигурации
|
|
||||||
nano global-it24.yml
|
|
||||||
```
|
|
||||||
|
|
||||||
Скопируйте содержимое из `traefik-config-example.yml`, заменив:
|
|
||||||
- `192.168.50.X` на реальный IP сервера с приложением
|
|
||||||
|
|
||||||
### 3.2 Пример конфигурации
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
http:
|
|
||||||
routers:
|
|
||||||
global-it24:
|
|
||||||
rule: "Host(`video.mscsrv.ru`)"
|
|
||||||
entryPoints:
|
|
||||||
- web
|
|
||||||
middlewares:
|
|
||||||
- redirect-to-https
|
|
||||||
service: global-it24-service
|
|
||||||
|
|
||||||
global-it24-secure:
|
|
||||||
rule: "Host(`video.mscsrv.ru`)"
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
middlewares:
|
|
||||||
- security-headers
|
|
||||||
- compress
|
|
||||||
service: global-it24-service
|
|
||||||
tls:
|
|
||||||
certResolver: letsencrypt
|
|
||||||
|
|
||||||
services:
|
|
||||||
global-it24-service:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
- url: "http://192.168.50.X:3000" # IP сервера приложения
|
|
||||||
healthCheck:
|
|
||||||
path: /
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
|
|
||||||
middlewares:
|
|
||||||
redirect-to-https:
|
|
||||||
redirectScheme:
|
|
||||||
scheme: https
|
|
||||||
permanent: true
|
|
||||||
|
|
||||||
security-headers:
|
|
||||||
headers:
|
|
||||||
customResponseHeaders:
|
|
||||||
X-Frame-Options: "SAMEORIGIN"
|
|
||||||
X-Content-Type-Options: "nosniff"
|
|
||||||
X-XSS-Protection: "1; mode=block"
|
|
||||||
sslRedirect: true
|
|
||||||
stsSeconds: 31536000
|
|
||||||
|
|
||||||
compress:
|
|
||||||
compress: {}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3.3 Перезагрузка Traefik
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# На хосте Traefik
|
|
||||||
docker restart traefik
|
|
||||||
# или
|
|
||||||
docker compose restart traefik
|
|
||||||
|
|
||||||
# Проверка логов Traefik
|
|
||||||
docker logs traefik -f
|
|
||||||
```
|
|
||||||
|
|
||||||
## Шаг 4: Проверка работы
|
|
||||||
|
|
||||||
1. **Локальная проверка:**
|
|
||||||
```bash
|
|
||||||
curl -v http://localhost:3000
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Проверка через Traefik:**
|
|
||||||
```bash
|
|
||||||
curl -v http://video.mscsrv.ru
|
|
||||||
curl -v https://video.mscsrv.ru
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Проверка в браузере:**
|
|
||||||
- Откройте https://video.mscsrv.ru
|
|
||||||
- Проверьте мобильную версию
|
|
||||||
- Проверьте SSL сертификат
|
|
||||||
|
|
||||||
## Команды для управления
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# На сервере приложения:
|
|
||||||
|
|
||||||
# Перезапуск контейнера
|
|
||||||
./update.sh
|
|
||||||
# или
|
|
||||||
docker compose restart
|
|
||||||
|
|
||||||
# Остановка контейнера
|
|
||||||
./stop.sh
|
|
||||||
# или
|
|
||||||
docker compose down
|
|
||||||
|
|
||||||
# Просмотр логов
|
|
||||||
./logs.sh
|
|
||||||
# или
|
|
||||||
docker compose logs -f
|
|
||||||
|
|
||||||
# Проверка статуса
|
|
||||||
./status.sh
|
|
||||||
|
|
||||||
# Обновление после изменений
|
|
||||||
docker compose down
|
|
||||||
docker compose build --no-cache
|
|
||||||
docker compose up -d
|
|
||||||
|
|
||||||
# Резервное копирование
|
|
||||||
./backup.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Оптимизация и безопасность
|
|
||||||
|
|
||||||
### Файрвол на сервере приложения
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Установка UFW
|
|
||||||
sudo apt install ufw
|
|
||||||
|
|
||||||
# Разрешаем SSH
|
|
||||||
sudo ufw allow 22/tcp
|
|
||||||
|
|
||||||
# Разрешаем порт 3000 ТОЛЬКО с хоста Traefik
|
|
||||||
sudo ufw allow from 192.168.50.59 to any port 3000 proto tcp
|
|
||||||
|
|
||||||
# Включаем файрвол
|
|
||||||
sudo ufw enable
|
|
||||||
|
|
||||||
# Проверка правил
|
|
||||||
sudo ufw status verbose
|
|
||||||
```
|
|
||||||
|
|
||||||
### Мониторинг
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Использование ресурсов
|
|
||||||
docker stats global-it24-landing
|
|
||||||
|
|
||||||
# Проверка здоровья
|
|
||||||
docker inspect --format='{{.State.Health.Status}}' global-it24-landing
|
|
||||||
|
|
||||||
# Системные ресурсы
|
|
||||||
htop
|
|
||||||
```
|
|
||||||
|
|
||||||
### Автоматический перезапуск при сбое
|
|
||||||
|
|
||||||
Docker Compose уже настроен с `restart: unless-stopped`, контейнер будет автоматически перезапускаться.
|
|
||||||
|
|
||||||
### Логирование
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Ротация логов Docker
|
|
||||||
sudo nano /etc/docker/daemon.json
|
|
||||||
```
|
|
||||||
|
|
||||||
Добавьте:
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"log-driver": "json-file",
|
|
||||||
"log-opts": {
|
|
||||||
"max-size": "10m",
|
|
||||||
"max-file": "3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Перезапустите Docker:
|
|
||||||
```bash
|
|
||||||
sudo systemctl restart docker
|
|
||||||
docker compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Обновление приложения
|
|
||||||
|
|
||||||
### Быстрое обновление (без изменения кода)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./update.sh
|
./update.sh
|
||||||
```
|
```
|
||||||
|
⏱️ **Время:** ~10 секунд
|
||||||
|
✅ **Используйте:** Когда изменились только переменные .env
|
||||||
|
|
||||||
### Полное обновление (с пересборкой)
|
### Вариант 4: Обновление с пересборкой
|
||||||
|
```bash
|
||||||
|
./update.sh --rebuild
|
||||||
|
```
|
||||||
|
⏱️ **Время:** 5-10 минут
|
||||||
|
✅ **Используйте:** После изменения кода или зависимостей
|
||||||
|
|
||||||
|
## 🔧 Конфигурация .env
|
||||||
|
|
||||||
|
Обязательные переменные:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Остановка
|
# Основные настройки
|
||||||
docker compose down
|
DOMAIN=global-it24.ru
|
||||||
|
NEXT_PUBLIC_SITE_URL=https://global-it24.ru
|
||||||
|
APP_HOST_IP=192.168.50.100 # IP вашего сервера
|
||||||
|
|
||||||
# Обновление кода (git pull или копирование файлов)
|
# База данных PostgreSQL
|
||||||
|
POSTGRES_USER=global_it24_user
|
||||||
|
POSTGRES_PASSWORD=ваш_надежный_пароль
|
||||||
|
POSTGRES_DB=global_it24_db
|
||||||
|
DATABASE_URL="postgresql://..."
|
||||||
|
|
||||||
# Пересборка и запуск
|
# Email уведомления
|
||||||
./deploy.sh
|
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
|
```bash
|
||||||
# Создание резервной копии
|
./status.sh
|
||||||
./backup.sh
|
|
||||||
|
|
||||||
# Настройка автоматического бэкапа (cron)
|
|
||||||
crontab -e
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Добавьте:
|
### Просмотр логов
|
||||||
```cron
|
|
||||||
# Резервное копирование каждый день в 3:00
|
|
||||||
0 3 * * * cd /path/to/global_it24_landing && ./backup.sh >> /var/log/backup-global-it24.log 2>&1
|
|
||||||
```
|
|
||||||
|
|
||||||
### Восстановление из резервной копии
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Остановка текущего контейнера
|
./logs.sh # Все логи
|
||||||
docker compose down
|
./logs.sh --tail 100 # Последние 100 строк
|
||||||
|
|
||||||
# Восстановление из архива
|
|
||||||
cd /path/to/restore
|
|
||||||
tar -xzf backup_YYYYMMDD_HHMMSS.tar.gz
|
|
||||||
|
|
||||||
# Запуск
|
|
||||||
cd global_it24_landing
|
|
||||||
./deploy.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Устранение неполадок
|
### Проверка работы приложения
|
||||||
|
|
||||||
### Контейнер не запускается
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Просмотр логов
|
|
||||||
docker compose logs global-it24-web
|
|
||||||
|
|
||||||
# Проверка конфигурации
|
|
||||||
docker compose config
|
|
||||||
|
|
||||||
# Пересборка с нуля
|
|
||||||
docker compose down
|
|
||||||
docker system prune -a
|
|
||||||
./deploy.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Сайт недоступен через Traefik
|
|
||||||
|
|
||||||
1. **Проверка доступности приложения локально:**
|
|
||||||
```bash
|
```bash
|
||||||
|
# Локально
|
||||||
curl http://localhost:3000
|
curl http://localhost:3000
|
||||||
|
|
||||||
|
# Через Traefik (если настроен)
|
||||||
|
curl https://global-it24.ru
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Проверка доступности из сети Traefik:**
|
## 🐛 Решение проблем
|
||||||
|
|
||||||
|
### Проблема: Сборка зависла на "Building fresh packages"
|
||||||
|
|
||||||
|
**Решение:**
|
||||||
```bash
|
```bash
|
||||||
# На хосте Traefik (192.168.50.59)
|
# Остановите сборку
|
||||||
curl http://192.168.50.X:3000
|
Ctrl+C
|
||||||
|
|
||||||
|
# Очистите кеш
|
||||||
|
docker builder prune -f
|
||||||
|
|
||||||
|
# Попробуйте снова с --fast
|
||||||
|
./deploy.sh --fast
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **Проверка логов Traefik:**
|
См. подробности в `QUICK_FIX.md`
|
||||||
|
|
||||||
|
### Проблема: Недостаточно ресурсов
|
||||||
|
|
||||||
|
**Проверьте:**
|
||||||
```bash
|
```bash
|
||||||
# На хосте Traefik
|
free -h # Проверка RAM
|
||||||
docker logs traefik -f
|
df -h # Проверка диска
|
||||||
|
docker info # Лимиты Docker
|
||||||
```
|
```
|
||||||
|
|
||||||
4. **Проверка файрвола:**
|
**Рекомендуемые ресурсы:**
|
||||||
|
- CPU: минимум 2 ядра, рекомендуется 4
|
||||||
|
- RAM: минимум 4GB, рекомендуется 8GB
|
||||||
|
- Диск: минимум 10GB свободного места
|
||||||
|
|
||||||
|
### Проблема: Не запускается после сборки
|
||||||
|
|
||||||
|
**Проверьте логи:**
|
||||||
```bash
|
```bash
|
||||||
sudo ufw status
|
docker compose logs web
|
||||||
# Убедитесь, что порт 3000 открыт для 192.168.50.59
|
docker compose logs db
|
||||||
```
|
```
|
||||||
|
|
||||||
5. **Проверка конфигурации Traefik:**
|
**Типичные причины:**
|
||||||
|
1. Ошибки в .env файле
|
||||||
|
2. База данных не запустилась
|
||||||
|
3. Порт 3000 уже занят
|
||||||
|
|
||||||
|
### Проблема: База данных не подключается
|
||||||
|
|
||||||
|
**Проверьте:**
|
||||||
```bash
|
```bash
|
||||||
# Проверьте файл global-it24.yml
|
# Статус контейнера БД
|
||||||
# Убедитесь, что IP адрес правильный
|
docker compose ps db
|
||||||
|
|
||||||
|
# Логи БД
|
||||||
|
docker compose logs db
|
||||||
|
|
||||||
|
# Подключение вручную
|
||||||
|
docker compose exec db psql -U $POSTGRES_USER -d $POSTGRES_DB
|
||||||
```
|
```
|
||||||
|
|
||||||
### Проблемы с SSL
|
## 🔄 Обновление приложения
|
||||||
|
|
||||||
Проверьте на хосте Traefik:
|
### Обновление кода из Git
|
||||||
```bash
|
```bash
|
||||||
# Логи Traefik
|
cd /home/ubuntu/global_it24_landing
|
||||||
docker logs traefik | grep -i error
|
git pull origin master
|
||||||
|
./update.sh --rebuild
|
||||||
# Проверка сертификатов
|
|
||||||
ls -la /path/to/acme.json
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Высокое использование ресурсов
|
### Обновление только переменных .env
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Ограничение ресурсов в docker-compose.yml
|
nano .env
|
||||||
# Добавьте в сервис global-it24-web:
|
./update.sh
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
cpus: '1'
|
|
||||||
memory: 512M
|
|
||||||
reservations:
|
|
||||||
cpus: '0.5'
|
|
||||||
memory: 256M
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Сетевая диаграмма
|
### Применение миграций БД
|
||||||
|
|
||||||
```
|
|
||||||
Internet
|
|
||||||
↓
|
|
||||||
[DNS: video.mscsrv.ru] → 192.168.50.59
|
|
||||||
↓
|
|
||||||
[Traefik: 192.168.50.59]
|
|
||||||
↓ (проксирует на)
|
|
||||||
[App Server: 192.168.50.X:3000]
|
|
||||||
↓
|
|
||||||
[Docker Container: global-it24-landing]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Безопасность
|
|
||||||
|
|
||||||
### Рекомендации:
|
|
||||||
|
|
||||||
1. **Ограничьте доступ к порту 3000** только с хоста Traefik
|
|
||||||
2. **Регулярно обновляйте** Docker образы и систему
|
|
||||||
3. **Используйте сильные пароли** для SSH
|
|
||||||
4. **Настройте fail2ban** для защиты от брутфорса
|
|
||||||
5. **Мониторинг логов** на подозрительную активность
|
|
||||||
|
|
||||||
### Fail2ban (опционально)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install fail2ban
|
docker compose exec web npx prisma migrate deploy
|
||||||
sudo systemctl enable fail2ban
|
|
||||||
sudo systemctl start fail2ban
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Производительность
|
## 📦 Резервное копирование
|
||||||
|
|
||||||
### Рекомендации:
|
### Создание бэкапа БД
|
||||||
|
|
||||||
1. Используйте SSD диски
|
|
||||||
2. Минимум 2GB RAM для сервера
|
|
||||||
3. Настройте swap если RAM < 4GB
|
|
||||||
4. Регулярно очищайте неиспользуемые Docker образы:
|
|
||||||
```bash
|
```bash
|
||||||
docker system prune -a
|
./backup-db.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Контакты для поддержки
|
Файл сохраняется в: `./backups/db_backup_YYYYMMDD_HHMMSS.sql`
|
||||||
|
|
||||||
При возникновении проблем:
|
### Восстановление из бэкапа
|
||||||
1. Проверьте логи контейнера: `./logs.sh`
|
```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 вашего сервера
|
||||||
|
- `global-it24.ru` - ваш домен
|
||||||
|
|
||||||
|
3. Перезагрузите Traefik:
|
||||||
|
```bash
|
||||||
|
docker restart traefik # или используйте ваш метод
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Дополнительная документация
|
||||||
|
|
||||||
|
- `BUILD_OPTIMIZATION.md` - Подробности оптимизации сборки
|
||||||
|
- `QUICK_FIX.md` - Быстрое решение проблемы зависания
|
||||||
|
- `DATABASE.md` - Управление базой данных
|
||||||
|
|
||||||
|
## 🆘 Поддержка
|
||||||
|
|
||||||
|
Если проблема не решена:
|
||||||
|
|
||||||
|
1. Проверьте логи: `./logs.sh`
|
||||||
2. Проверьте статус: `./status.sh`
|
2. Проверьте статус: `./status.sh`
|
||||||
3. Проверьте доступность из сети
|
3. Попробуйте полную пересборку:
|
||||||
4. Проверьте конфигурацию Traefik
|
```bash
|
||||||
5. Проверьте файрвол и сетевую связность
|
docker compose down -v
|
||||||
|
docker builder prune -a -f
|
||||||
|
./deploy.sh
|
||||||
|
```
|
||||||
|
|
||||||
Документация Traefik: https://doc.traefik.io/traefik/
|
## ✅ Чек-лист после развертывания
|
||||||
Документация Docker: https://docs.docker.com/
|
|
||||||
|
- [ ] Приложение запущено: `./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 # Справка по обновлению
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user