🔧 Исправлена синтаксическая ошибка и улучшена система развертывания
Some checks failed
continuous-integration/drone/push Build is failing
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:
127
scripts/quick-deploy.sh
Executable file
127
scripts/quick-deploy.sh
Executable 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"
|
||||
Reference in New Issue
Block a user