🚀 Добавлен мастер-скрипт развертывания с полной автоматизацией
Some checks failed
continuous-integration/drone/push Build is failing

 Новые возможности:
- Мастер-развертывание с автоматической настройкой всех компонентов
- Генерация безопасных .env файлов с криптографически стойкими ключами
- Полная изоляция и защита PostgreSQL
- Автоматическая настройка Let's Encrypt SSL
- Система backup и мониторинга
- Comprehensive security audit для БД

🔧 Новые команды:
- make deploy - мастер-развертывание
- make pre-deploy-check - проверка готовности системы
- make security-audit - аудит безопасности PostgreSQL
- make ssl-setup - интерактивная настройка SSL
- make update-production-security - безопасное обновление в продакшене

📁 Новые файлы:
- scripts/master-deploy.sh - основной скрипт развертывания
- scripts/pre-deploy-check.sh - проверка системы
- scripts/ssl-manager.sh - управление SSL сертификатами
- scripts/audit-db-security.sh - аудит безопасности БД
- DEPLOYMENT.md - полное руководство по развертыванию
- COMMANDS.md - справочник команд
- SECURITY.md - документация по безопасности

🔒 Улучшения безопасности:
- Изоляция PostgreSQL в Docker сети (без внешних портов)
- SCRAM-SHA-256 аутентификация
- TLSv1.3 для БД соединений
- Удаление прав суперпользователя у приложения
- Детальное логирование всех операций БД
- Security headers в nginx
- Автообновление SSL сертификатов
This commit is contained in:
2025-11-04 14:07:58 +09:00
parent 735c1984f9
commit e1bb1ab90a
7 changed files with 1933 additions and 22 deletions

323
DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,323 @@
# 🚀 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 готов к использованию!**