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.
127 lines
3.8 KiB
Bash
Executable File
127 lines
3.8 KiB
Bash
Executable File
#!/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" |