This commit is contained in:
2026-03-18 16:06:29 +07:00
parent fa98e42349
commit ab3d27a4f1
6 changed files with 436 additions and 20 deletions

View File

@@ -0,0 +1,31 @@
#!/bin/bash
# Генерирование безопасных паролей и секретов для production VPS
set -e
echo "🔐 Генерирование захищенных паролей для production..."
echo ""
# Генерируем паароль для БД
DB_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-25)
echo "📊 DB_PASSWORD: $DB_PASSWORD"
# Генерируем JWT секрет
JWT_SECRET=$(openssl rand -base64 64 | tr -d "\n")
echo "🔑 JWT_SECRET: $JWT_SECRET"
# Генерируем Redis пароль
REDIS_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-25)
echo "💾 REDIS_PASSWORD: $REDIS_PASSWORD"
echo ""
echo "========================================"
echo "📝 Скопируй эти значения в .env на VPS:"
echo "========================================"
echo ""
echo "DB_PASSWORD=$DB_PASSWORD"
echo "JWT_SECRET=$JWT_SECRET"
echo "REDIS_PASSWORD=$REDIS_PASSWORD"
echo ""
echo "⚠️ НЕ коммитьи эти значения в git!"
echo "⚠️ Храни .env в безопасном месте, не в репозитории!"

79
scripts/setup-vps.sh Normal file
View File

@@ -0,0 +1,79 @@
#!/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. Настрой мониторинг"