uploader-bot/scripts/setup_production_env.sh

188 lines
7.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

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
# =============================================================================
# НАСТРОЙКА PRODUCTION ОКРУЖЕНИЯ ДЛЯ MY UPLOADER BOT
# =============================================================================
if [ $# -lt 2 ]; then
echo "Usage: $0 <domain> <email>"
exit 1
fi
DOMAIN="$1"
EMAIL="$2"
ENV_FILE=".env.production"
echo "Создание production конфигурации для $DOMAIN..."
# Генерация случайных ключей
SECRET_KEY=$(openssl rand -base64 48 | tr -d "=+/" | cut -c1-64)
JWT_SECRET_KEY=$(openssl rand -base64 48 | tr -d "=+/" | cut -c1-64)
POSTGRES_PASSWORD=$(openssl rand -base64 24 | tr -d "=+/" | cut -c1-32)
cat > "$ENV_FILE" << EOF
# =============================================================================
# MY UPLOADER BOT - PRODUCTION CONFIGURATION
# =============================================================================
# Domain: $DOMAIN
# Email: $EMAIL
# Generated: $(date)
# =============================================================================
# =============================================================================
# ОБЯЗАТЕЛЬНЫЕ TELEGRAM ТОКЕНЫ (ТРЕБУЕТСЯ ЗАПОЛНИТЬ ВРУЧНУЮ!)
# =============================================================================
# Получить токены можно у @BotFather в Telegram
TELEGRAM_API_KEY=CHANGE_ME_123456789:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
CLIENT_TELEGRAM_API_KEY=CHANGE_ME_987654321:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
# =============================================================================
# ДОМЕН И ХОСТ
# =============================================================================
PROJECT_HOST=https://$DOMAIN
DOMAIN=$DOMAIN
ACME_EMAIL=$EMAIL
# =============================================================================
# БАЗА ДАННЫХ PostgreSQL
# =============================================================================
POSTGRES_DB=myuploader
POSTGRES_USER=uploader
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
POSTGRES_PORT=5432
# =============================================================================
# REDIS
# =============================================================================
REDIS_PORT=6379
# =============================================================================
# ПРИЛОЖЕНИЕ (PRODUCTION SETTINGS)
# =============================================================================
SANIC_PORT=15100
DEBUG=false
LOG_LEVEL=INFO
MAINTENANCE_MODE=false
# =============================================================================
# БЕЗОПАСНОСТЬ (АВТОГЕНЕРИРОВАННЫЕ КЛЮЧИ)
# =============================================================================
SECRET_KEY=$SECRET_KEY
JWT_SECRET_KEY=$JWT_SECRET_KEY
# =============================================================================
# TON BLOCKCHAIN (MAINNET)
# =============================================================================
TESTNET=false
TONCENTER_HOST=https://toncenter.com/api/v2/
TONCENTER_API_KEY=
TONCENTER_V3_HOST=https://toncenter.com/api/v3/
# =============================================================================
# ФОНОВЫЕ СЕРВИСЫ
# =============================================================================
INDEXER_ENABLED=true
TON_DAEMON_ENABLED=true
LICENSE_SERVICE_ENABLED=true
CONVERT_SERVICE_ENABLED=true
# =============================================================================
# МОНИТОРИНГ И МЕТРИКИ
# =============================================================================
METRICS_ENABLED=true
METRICS_PORT=9090
HEALTH_CHECK_ENABLED=true
# =============================================================================
# ОГРАНИЧЕНИЯ СКОРОСТИ (PRODUCTION VALUES)
# =============================================================================
RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS=1000
RATE_LIMIT_WINDOW=60
# =============================================================================
# ПРОИЗВОДИТЕЛЬНОСТЬ
# =============================================================================
DATABASE_POOL_SIZE=20
DATABASE_MAX_OVERFLOW=30
REDIS_POOL_SIZE=20
# =============================================================================
# БЕЗОПАСНОСТЬ И ФАЙЛЫ
# =============================================================================
MAX_FILE_SIZE=104857600 # 100MB
UPLOADS_DIR=/app/data
# =============================================================================
# GRAFANA И МОНИТОРИНГ
# =============================================================================
GRAFANA_PASSWORD=$(openssl rand -base64 16 | tr -d "=+/" | cut -c1-20)
# =============================================================================
# BACKUP НАСТРОЙКИ
# =============================================================================
BACKUP_SCHEDULE=0 2 * * *
# =============================================================================
# WEB2-CLIENT НАСТРОЙКИ
# =============================================================================
WEB2_CLIENT_PORT=3000
WEB2_CLIENT_HOST=http://localhost:3000
# =============================================================================
# CONVERTER-MODULE НАСТРОЙКИ
# =============================================================================
CONVERTER_PORT=8080
CONVERTER_HOST=http://localhost:8080
EOF
echo "✅ Production конфигурация создана: $ENV_FILE"
# Создание примера локального .env
cat > ".env.example" << EOF
# =============================================================================
# MY UPLOADER BOT - EXAMPLE CONFIGURATION
# =============================================================================
# Скопируйте этот файл в .env и заполните необходимые значения
# =============================================================================
# ОБЯЗАТЕЛЬНЫЕ ПОЛЯ
TELEGRAM_API_KEY=123456789:YOUR_BOT_TOKEN_FROM_BOTFATHER
CLIENT_TELEGRAM_API_KEY=987654321:YOUR_CLIENT_BOT_TOKEN_FROM_BOTFATHER
# ОСНОВНЫЕ НАСТРОЙКИ
PROJECT_HOST=http://localhost:15100
DEBUG=true
LOG_LEVEL=DEBUG
# БАЗА ДАННЫХ
POSTGRES_DB=uploader_bot
POSTGRES_USER=uploader
POSTGRES_PASSWORD=secure_password_123
# БЕЗОПАСНОСТЬ (СГЕНЕРИРУЙТЕ НОВЫЕ!)
SECRET_KEY=your-secret-key-here-minimum-32-characters
JWT_SECRET_KEY=your-jwt-secret-key-here-minimum-32-characters
# TON (ТЕСТОВАЯ СЕТЬ ДЛЯ РАЗРАБОТКИ)
TESTNET=true
TONCENTER_HOST=https://testnet.toncenter.com/api/v2/
EOF
echo "✅ Пример конфигурации создан: .env.example"
# Установка правильных прав доступа
chmod 600 "$ENV_FILE"
chmod 644 ".env.example"
echo ""
echo "⚠️ ВАЖНО: Отредактируйте файл $ENV_FILE и заполните:"
echo " - TELEGRAM_API_KEY (получите у @BotFather)"
echo " - CLIENT_TELEGRAM_API_KEY (получите у @BotFather)"
echo " - TONCENTER_API_KEY (если используете TON mainnet)"
echo ""
echo "🔒 Сгенерированные секретные ключи:"
echo " - SECRET_KEY: $SECRET_KEY"
echo " - JWT_SECRET_KEY: $JWT_SECRET_KEY"
echo " - POSTGRES_PASSWORD: $POSTGRES_PASSWORD"
echo ""