#!/bin/bash # Инициализация Django приложения на VPS (Ubuntu 24.04) # Запуск: bash scripts/setup-vps.sh set -e echo "🚀 Инициализация pg-admin на VPS..." echo "" # Проверяем что мы на VPS (Ubuntu) if ! grep -qi ubuntu /etc/os-release; then echo "⚠️ Это скрипт для Ubuntu. Попробуй вручную для другой OS." fi # 1. Обновляем систему echo "📦 Обновление системы..." sudo apt-get update sudo apt-get upgrade -y # 2. Устанавливаем Docker если его нет if ! command -v docker &> /dev/null; then echo "🐳 Установка Docker..." sudo apt-get install -y docker.io docker-compose-plugin sudo usermod -aG docker $USER echo "⚠️ Нужен перелогин для работы docker без sudo. Выполни: newgrp docker" else echo "✅ Docker уже установлен" fi # 3. Создаем .env если его нет if [ ! -f .env ]; then echo "📝 Создание .env из .env.example..." cp .env.example .env echo "" echo "⚠️ ВАЖНО! Отредактируй .env:" echo " - Замени CHANGE_ME_TO_STRONG_PASSWORD на реальный пароль" echo " - Замени CHANGE_ME_TO_STRONG_RANDOM_SECRET на реальный секрет" echo " - Замени your-domain.com на твой домен" echo " - Используй скрипт: bash scripts/generate-secrets.sh" echo "" echo "📝 Открой .env в редакторе и отредактируй значения:" echo " nano .env" exit 1 else echo "✅ .env файл уже существует" fi # 4. Останавливаем старые контейнеры echo "🛑 Остановка старых контейнеров..." docker compose down -v --remove-orphans || true # 5. Создаем необходимые папки echo "📁 Создание папок..." mkdir -p backend/logs mkdir -p logs # 6. Собираем и запускаем контейнеры echo "🔨 Сборка и запуск контейнеров..." docker compose up -d --build # 7. Проверяем статус echo "" echo "✅ Инициализация завершена!" echo "" echo "📊 Статус контейнеров:" docker compose ps echo "" echo "🌐 Приложение доступно по адресу:" echo " http://YOUR_VPS_IP:80" echo "" echo "📝 Логи:" echo " docker compose logs -f" echo "" echo "💡 Рекомендации:" echo " 1. Настрой файрвол (UFW): sudo ufw allow 80,443/tcp" echo " 2. Добавь SSL (Let's Encrypt) когда будешь готов" echo " 3. Настрой резервное копирование БД" echo " 4. Настрой мониторинг"