Files
links/scripts/quick-deploy.sh
Andrey K. Choi 6a2bc06fb9
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.
2025-11-04 20:18:50 +09:00

127 lines
3.8 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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