188 lines
7.3 KiB
Bash
188 lines
7.3 KiB
Bash
#!/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 "" |