#!/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"