🔧 Исправлена синтаксическая ошибка и улучшена система развертывания
Some checks failed
continuous-integration/drone/push Build is failing

 Исправления:
- Удален дублированный Python код из master-deploy.sh (строка 491)
- Исправлена логика завершения pre-deploy-check.sh
- Предупреждения больше не вызывают ошибку выхода

 Новые возможности:
- Добавлен quick-deploy.sh для быстрого развертывания
- Команда make quick-deploy для систем с ограниченными ресурсами
- Команда make deploy-force для пропуска проверок
- Команда make pre-deploy-check-force для игнорирования предупреждений

📋 Улучшения:
- pre-deploy-check теперь корректно обрабатывает предупреждения о RAM
- Добавлена поддержка флага --skip-checks в master-deploy.sh
- Более понятные сообщения об ошибках и предупреждениях

Теперь система готова к развертыванию даже на серверах с 1GB RAM.
This commit is contained in:
2025-11-04 20:18:50 +09:00
parent 280a6c4ad0
commit 6a2bc06fb9
4 changed files with 176 additions and 12 deletions

127
scripts/quick-deploy.sh Executable file
View File

@@ -0,0 +1,127 @@
#!/bin/bash
# Quick deployment script for CatLink
# Быстрое развертывание для систем с ограниченными ресурсами
set -e
# Цвета
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log() { echo -e "${BLUE}[$(date '+%H:%M:%S')]${NC} $1"; }
success() { echo -e "${GREEN}$1${NC}"; }
warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
echo "⚡ ===== CatLink Quick Deploy ====="
echo " Быстрое развертывание без полной настройки"
echo ""
# Проверка файлов
if [ ! -f "docker-compose.yml" ]; then
echo "❌ Файл docker-compose.yml не найден"
exit 1
fi
# Проверка .env
if [ ! -f ".env" ]; then
warning ".env файл не найден, создаем базовый..."
cat > .env << 'EOF'
# Basic CatLink Configuration
DJANGO_SECRET_KEY=change-me-in-production-please-use-long-random-string
DJANGO_DEBUG=False
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
# Database
DATABASE_ENGINE=django.db.backends.postgresql
DATABASE_NAME=links_db
DATABASE_USER=links_user
DATABASE_PASSWORD=change-me-in-production
DATABASE_HOST=db
DATABASE_PORT=5432
# PostgreSQL
POSTGRES_DB=links_db
POSTGRES_USER=links_user
POSTGRES_PASSWORD=change-me-in-production
# Frontend
NEXT_PUBLIC_API_URL=http://localhost:8000
# Security (basic)
DJANGO_SECURE_SSL_REDIRECT=False
DJANGO_SECURE_HSTS_SECONDS=0
EOF
success ".env файл создан с базовыми настройками"
warning "ВАЖНО: Смените пароли в продакшене!"
fi
# Определяем Docker Compose команду
if command -v docker-compose &> /dev/null; then
COMPOSE_CMD="docker-compose"
elif docker compose version &> /dev/null 2>&1; then
COMPOSE_CMD="docker compose"
else
echo "❌ Docker Compose не найден"
exit 1
fi
log "Используется: $COMPOSE_CMD"
# Остановка существующих контейнеров
log "Остановка существующих контейнеров..."
$COMPOSE_CMD down 2>/dev/null || true
# Сборка
log "Сборка контейнеров..."
$COMPOSE_CMD build
# Запуск
log "Запуск сервисов..."
$COMPOSE_CMD up -d
# Ожидание запуска
log "Ожидание запуска сервисов..."
sleep 15
# Миграции
log "Применение миграций..."
$COMPOSE_CMD exec -T web python manage.py migrate
# Создание суперпользователя
log "Создание суперпользователя..."
$COMPOSE_CMD exec -T web python manage.py shell << 'EOF'
from django.contrib.auth import get_user_model
User = get_user_model()
if not User.objects.filter(username='admin').exists():
User.objects.create_superuser('admin', 'admin@example.com', 'admin123')
print('✅ Суперпользователь admin создан')
print('🔑 Пароль: admin123')
print('⚠️ Смените пароль после входа!')
else:
print(' Суперпользователь уже существует')
EOF
# Проверка статуса
echo ""
log "Проверка статуса сервисов..."
$COMPOSE_CMD ps
echo ""
success "Быстрое развертывание завершено!"
echo ""
echo "🌐 Сайт доступен по адресу:"
echo " Frontend: http://localhost:3000"
echo " Backend: http://localhost:8000"
echo " Admin: http://localhost:8000/admin"
echo ""
echo "👤 Учетные данные:"
echo " Логин: admin"
echo " Пароль: admin123"
echo ""
warning "Это базовое развертывание без SSL и расширенной безопасности"
echo "💡 Для полного развертывания используйте: make deploy"