9.4 KiB
9.4 KiB
🚀 CatLink Master Deployment Guide
Полное руководство по мастер-развертыванию проекта CatLink с автоматической настройкой всех компонентов.
🎯 Что включает мастер-развертывание
1. 🔧 Системные требования и подготовка
- Автоматическая проверка системы
- Установка необходимых компонентов (nginx, certbot, docker)
- Проверка портов и ресурсов
2. ⚙️ Генерация конфигурации
- Автоматическая генерация .env с безопасными настройками
- Генерация Django SECRET_KEY (криптографически стойкий)
- Генерация паролей БД (32 символа, случайные)
- Настройка доменов и SSL параметров
3. 🗄️ База данных и безопасность
- Полная изоляция PostgreSQL в Docker сети
- Удаление прав суперпользователя у приложения
- SCRAM-SHA-256 аутентификация
- TLSv1.3 SSL/TLS для БД
- Детальное логирование всех операций
- Автоматический аудит безопасности
4. 🔒 SSL/TLS сертификаты
- Let's Encrypt автоматическое получение
- Автообновление сертификатов via cron
- Fallback на самоподписанные для тестирования
- HTTP→HTTPS редирект
- Security headers (HSTS, CSP, XSS Protection)
5. 🌐 Nginx конфигурация
- Reverse proxy для frontend и backend
- Security headers и защита
- Gzip compression
- Статические файлы с кэшированием
- Rate limiting и DDoS защита
6. 💾 Backup и мониторинг
- Автоматические backup БД и файлов
- Система здоровья (health checks)
- Логирование всех операций
- Cron задачи для обслуживания
🚀 Быстрый старт
1. Проверка готовности системы
make pre-deploy-check
2. Мастер-развертывание
make deploy
3. Проверка безопасности
make security-audit
📋 Пошаговая инструкция
Шаг 1: Подготовка сервера
- Обновите систему:
sudo apt update && sudo apt upgrade -y
- Клонируйте проект:
cd /opt
sudo git clone https://github.com/smartsoltech/links.git
sudo chown -R $USER:$USER links
cd links
- Проверьте готовность:
make pre-deploy-check
Шаг 2: Настройка DNS
Убедитесь что ваш домен указывает на IP сервера:
# Проверьте A-запись
nslookup your-domain.com
# Должен возвращать IP вашего сервера
Шаг 3: Мастер-развертывание
Запустите мастер-скрипт:
make deploy
Скрипт запросит:
- Основной домен (например: links.yourdomain.com)
- Дополнительные домены (через запятую, опционально)
- Email для Let's Encrypt
- Режим SSL (Let's Encrypt / самоподписанный / без SSL)
- Окружение (production / staging / development)
Шаг 4: Проверка развертывания
После завершения проверьте:
# Статус сервисов
make status
# Проверка здоровья
./scripts/health-check.sh
# Аудит безопасности
make security-audit
🔧 Генерируемые файлы и настройки
1. .env файл
Автоматически генерируется с:
- DJANGO_SECRET_KEY - криптографически стойкий ключ
- DATABASE_PASSWORD - случайный 32-символьный пароль
- DJANGO_ALLOWED_HOSTS - настроенные домены
- NEXT_PUBLIC_API_URL - правильный API URL
- SSL настройки в зависимости от выбора
2. Nginx конфигурация
- HTTP→HTTPS редирект
- Security headers (HSTS, CSP, XSS Protection)
- Proxy настройки для frontend и backend
- Gzip compression
- Timeout настройки
3. PostgreSQL безопасность
- Изоляция в Docker сети (без внешних портов)
- SCRAM-SHA-256 аутентификация
- TLSv1.3 для SSL
- Логирование подключений и операций
- Ограниченные права для пользователя приложения
4. SSL сертификаты
- Let's Encrypt с автообновлением
- Wildcard поддержка для поддоменов
- Fallback на самоподписанные
- Cron задача для обновления
🔒 Безопасность
Аудит безопасности PostgreSQL
make security-audit
Проверяет:
- Версию PostgreSQL
- SSL настройки
- Права пользователей
- Сетевую изоляцию
- Настройки логирования
- Конфигурационные файлы
Оценивает по 10-балльной шкале
Управление SSL
# Интерактивная настройка SSL
make ssl-setup
# Обновление сертификатов
make ssl-renew
Обновление безопасности в продакшене
make update-production-security
💾 Backup и восстановление
Автоматические backup
- База данных: ежедневно в 2:00
- Файлы: tar.gz архивы
- Конфигурация: .env и docker-compose файлы
- Ротация: хранение 30 дней
Ручной backup
./scripts/auto-backup.sh
Восстановление
# Восстановление БД
docker exec -i links-db-1 psql -U postgres links_db < backups/database/links_db_YYYYMMDD_HHMMSS.sql
# Восстановление файлов
tar -xzf backups/files/media_YYYYMMDD_HHMMSS.tar.gz
📊 Мониторинг и обслуживание
Проверка здоровья системы
./scripts/health-check.sh
Просмотр логов
make logs
Мониторинг ресурсов
make monitor
Перезапуск сервисов
make restart
🆘 Устранение неполадок
1. Проблемы с SSL
# Проверка статуса сертификатов
./scripts/ssl-manager.sh
# Принудительное обновление
sudo certbot renew --force-renewal
2. Проблемы с БД
# Аудит безопасности
make security-audit
# Проверка подключения
docker exec links-db-1 pg_isready -U postgres
3. Проблемы с контейнерами
# Пересборка без кэша
make build
# Полный перезапуск
make restart
# Просмотр логов
make logs
4. Проблемы с доменом
# Проверка DNS
nslookup your-domain.com
# Проверка nginx
sudo nginx -t
sudo systemctl status nginx
🎯 Результат развертывания
После успешного развертывания вы получите:
🌐 Готовый сайт
- HTTPS с валидными сертификатами
- Автообновление SSL
- Security headers и защита
- Optimized конфигурация nginx
🔒 Безопасная БД
- Изолированная в Docker сети
- Зашифрованные соединения (TLS 1.3)
- Ограниченные права приложения
- Полное логирование
💾 Система backup
- Автоматические ежедневные backup
- Ротация файлов (30 дней)
- Простое восстановление
📊 Мониторинг
- Health checks для всех сервисов
- Логирование операций
- Resource monitoring
🔄 Обновления
Обновление кода
git pull
make restart
Обновление безопасности
make update-production-security
Обновление SSL
make ssl-renew
📞 Поддержка
- README.md - основная документация
- SECURITY.md - руководство по безопасности
- logs/ - логи системы
- scripts/ - утилиты обслуживания
🎉 Поздравляем! Ваш CatLink готов к использованию!