This commit is contained in:
111
setup.sh
111
setup.sh
@@ -78,81 +78,54 @@ create_env_file() {
|
||||
|
||||
if [ -f .env ]; then
|
||||
print_info ".env файл уже существует"
|
||||
read -p "Пересоздать? (y/N): " recreate
|
||||
if [[ ! $recreate =~ ^[Yy]$ ]]; then
|
||||
read -p "Пересоздать с помощью интерактивного генератора? (y/N): " recreate
|
||||
if [[ $recreate =~ ^[Yy]$ ]]; then
|
||||
print_info "Запуск интерактивного генератора .env..."
|
||||
./scripts/generate_env.sh
|
||||
return
|
||||
else
|
||||
print_info "Пропуск создания .env"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
# Генерация SECRET_KEY
|
||||
SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(50))" 2>/dev/null || openssl rand -base64 32)
|
||||
print_info "Запуск интерактивного генератора .env..."
|
||||
|
||||
# Запрос данных от пользователя
|
||||
echo ""
|
||||
read -p "Имя базы данных [links_db]: " DB_NAME
|
||||
DB_NAME=${DB_NAME:-links_db}
|
||||
|
||||
read -p "Пользователь БД [links_user]: " DB_USER
|
||||
DB_USER=${DB_USER:-links_user}
|
||||
|
||||
read -p "Пароль БД [links_password]: " DB_PASSWORD
|
||||
DB_PASSWORD=${DB_PASSWORD:-links_password}
|
||||
|
||||
read -p "Хост БД [db]: " DB_HOST
|
||||
DB_HOST=${DB_HOST:-db}
|
||||
|
||||
read -p "Порт БД [5432]: " DB_PORT
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
|
||||
read -p "Домен для продакшена [localhost]: " DOMAIN
|
||||
DOMAIN=${DOMAIN:-localhost}
|
||||
|
||||
read -p "Email для SSL сертификатов: " SSL_EMAIL
|
||||
|
||||
# Создание .env файла
|
||||
cat > .env << EOF
|
||||
# Django Configuration
|
||||
SECRET_KEY=$SECRET_KEY
|
||||
DEBUG=True
|
||||
ALLOWED_HOSTS=localhost,127.0.0.1,$DOMAIN
|
||||
|
||||
# Database Configuration
|
||||
DATABASE_URL=postgresql://$DB_USER:$DB_PASSWORD@$DB_HOST:$DB_PORT/$DB_NAME
|
||||
DB_NAME=$DB_NAME
|
||||
DB_USER=$DB_USER
|
||||
DB_PASSWORD=$DB_PASSWORD
|
||||
DB_HOST=$DB_HOST
|
||||
DB_PORT=$DB_PORT
|
||||
|
||||
# Production Settings
|
||||
DOMAIN=$DOMAIN
|
||||
SSL_EMAIL=$SSL_EMAIL
|
||||
|
||||
# CORS Settings
|
||||
CORS_ALLOWED_ORIGINS=http://localhost:3000,https://$DOMAIN
|
||||
|
||||
# File Upload Settings
|
||||
MAX_UPLOAD_SIZE=10485760
|
||||
MEDIA_ROOT=/app/storage
|
||||
|
||||
# Cache Settings
|
||||
CACHE_TTL=300
|
||||
|
||||
# Email Settings (optional)
|
||||
EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend
|
||||
EMAIL_HOST=
|
||||
EMAIL_PORT=587
|
||||
EMAIL_USE_TLS=True
|
||||
EMAIL_HOST_USER=
|
||||
EMAIL_HOST_PASSWORD=
|
||||
|
||||
# Redis Settings (optional)
|
||||
REDIS_URL=redis://redis:6379/0
|
||||
|
||||
# Logging
|
||||
LOG_LEVEL=INFO
|
||||
EOF
|
||||
# Проверяем наличие скрипта генерации
|
||||
if [ -f "scripts/generate_env.sh" ]; then
|
||||
chmod +x scripts/generate_env.sh
|
||||
./scripts/generate_env.sh
|
||||
else
|
||||
print_warning "Скрипт генерации не найден, создаем базовый .env"
|
||||
|
||||
# Генерация SECRET_KEY
|
||||
SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(50))" 2>/dev/null || openssl rand -base64 32)
|
||||
|
||||
# Запрос основных данных
|
||||
echo ""
|
||||
read -p "Имя базы данных [links_db]: " DB_NAME
|
||||
DB_NAME=${DB_NAME:-links_db}
|
||||
|
||||
read -p "Пользователь БД [links_user]: " DB_USER
|
||||
DB_USER=${DB_USER:-links_user}
|
||||
|
||||
read -p "Пароль БД (пустой для генерации): " DB_PASSWORD
|
||||
if [ -z "$DB_PASSWORD" ]; then
|
||||
DB_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-25)
|
||||
print_info "Сгенерирован пароль БД: $DB_PASSWORD"
|
||||
fi
|
||||
|
||||
# Копируем из примера и заполняем основные поля
|
||||
cp .env.example .env
|
||||
sed -i "s|^DJANGO_SECRET_KEY=.*|DJANGO_SECRET_KEY=$SECRET_KEY|" .env
|
||||
sed -i "s|^DATABASE_NAME=.*|DATABASE_NAME=$DB_NAME|" .env
|
||||
sed -i "s|^DATABASE_USER=.*|DATABASE_USER=$DB_USER|" .env
|
||||
sed -i "s|^DATABASE_PASSWORD=.*|DATABASE_PASSWORD=$DB_PASSWORD|" .env
|
||||
sed -i "s|^POSTGRES_DB=.*|POSTGRES_DB=$DB_NAME|" .env
|
||||
sed -i "s|^POSTGRES_USER=.*|POSTGRES_USER=$DB_USER|" .env
|
||||
sed -i "s|^POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=$DB_PASSWORD|" .env
|
||||
sed -i "s|^NEXT_PUBLIC_API_URL=.*|NEXT_PUBLIC_API_URL=http://localhost:8000|" .env
|
||||
fi
|
||||
|
||||
print_success ".env файл создан"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user