# 🚀 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. Проверка готовности системы ```bash make pre-deploy-check ``` ### 2. Мастер-развертывание ```bash make deploy ``` ### 3. Проверка безопасности ```bash make security-audit ``` ## 📋 Пошаговая инструкция ### Шаг 1: Подготовка сервера 1. **Обновите систему:** ```bash sudo apt update && sudo apt upgrade -y ``` 2. **Клонируйте проект:** ```bash cd /opt sudo git clone https://github.com/smartsoltech/links.git sudo chown -R $USER:$USER links cd links ``` 3. **Проверьте готовность:** ```bash make pre-deploy-check ``` ### Шаг 2: Настройка DNS Убедитесь что ваш домен указывает на IP сервера: ```bash # Проверьте A-запись nslookup your-domain.com # Должен возвращать IP вашего сервера ``` ### Шаг 3: Мастер-развертывание Запустите мастер-скрипт: ```bash make deploy ``` Скрипт запросит: - **Основной домен** (например: links.yourdomain.com) - **Дополнительные домены** (через запятую, опционально) - **Email для Let's Encrypt** - **Режим SSL** (Let's Encrypt / самоподписанный / без SSL) - **Окружение** (production / staging / development) ### Шаг 4: Проверка развертывания После завершения проверьте: ```bash # Статус сервисов 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 ```bash make security-audit ``` **Проверяет:** - Версию PostgreSQL - SSL настройки - Права пользователей - Сетевую изоляцию - Настройки логирования - Конфигурационные файлы **Оценивает по 10-балльной шкале** ### Управление SSL ```bash # Интерактивная настройка SSL make ssl-setup # Обновление сертификатов make ssl-renew ``` ### Обновление безопасности в продакшене ```bash make update-production-security ``` ## 💾 Backup и восстановление ### Автоматические backup - **База данных**: ежедневно в 2:00 - **Файлы**: tar.gz архивы - **Конфигурация**: .env и docker-compose файлы - **Ротация**: хранение 30 дней ### Ручной backup ```bash ./scripts/auto-backup.sh ``` ### Восстановление ```bash # Восстановление БД 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 ``` ## 📊 Мониторинг и обслуживание ### Проверка здоровья системы ```bash ./scripts/health-check.sh ``` ### Просмотр логов ```bash make logs ``` ### Мониторинг ресурсов ```bash make monitor ``` ### Перезапуск сервисов ```bash make restart ``` ## 🆘 Устранение неполадок ### 1. Проблемы с SSL ```bash # Проверка статуса сертификатов ./scripts/ssl-manager.sh # Принудительное обновление sudo certbot renew --force-renewal ``` ### 2. Проблемы с БД ```bash # Аудит безопасности make security-audit # Проверка подключения docker exec links-db-1 pg_isready -U postgres ``` ### 3. Проблемы с контейнерами ```bash # Пересборка без кэша make build # Полный перезапуск make restart # Просмотр логов make logs ``` ### 4. Проблемы с доменом ```bash # Проверка 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** ## 🔄 Обновления ### Обновление кода ```bash git pull make restart ``` ### Обновление безопасности ```bash make update-production-security ``` ### Обновление SSL ```bash make ssl-renew ``` ## 📞 Поддержка - **README.md** - основная документация - **SECURITY.md** - руководство по безопасности - **logs/** - логи системы - **scripts/** - утилиты обслуживания --- **🎉 Поздравляем! Ваш CatLink готов к использованию!**