From ed584fc9e4eca65cdcf0286401f9e0436f611b15 Mon Sep 17 00:00:00 2001 From: Fr1ngg Date: Mon, 4 Aug 2025 17:01:03 +0300 Subject: [PATCH] Create run.sh --- run.sh | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 run.sh diff --git a/run.sh b/run.sh new file mode 100644 index 00000000..93446207 --- /dev/null +++ b/run.sh @@ -0,0 +1,218 @@ +#!/bin/bash + +# === RemnaWave Bot Setup & Management Script === + +SERVICE_NAME="remnawave-bot" +BOT_FILE="main.py" +ENV_FILE=".env" +VENV_DIR="venv" + +# Select language +echo "🌐 Select language / Выберите язык:" +echo "1) English" +echo "2) Русский" +read -p ">>> " LANG_CHOICE + +case $LANG_CHOICE in + 2) LANG_CODE="ru" ;; + *) LANG_CODE="en" ;; +esac + +# === Internationalized messages === +msg() { + case $1 in + check_python) [[ $LANG_CODE == "ru" ]] && echo "🔍 Проверка Python..." || echo "🔍 Checking Python..." ;; + python_missing) [[ $LANG_CODE == "ru" ]] && echo "❌ Python 3 не установлен. Установите Python 3.8+." || echo "❌ Python 3 is not installed. Please install Python 3.8+." ;; + version) echo "📋 Python version: $PYTHON_VERSION" ;; + creating_venv) [[ $LANG_CODE == "ru" ]] && echo "🔧 Создание виртуального окружения..." || echo "🔧 Creating virtual environment..." ;; + activating_venv) [[ $LANG_CODE == "ru" ]] && echo "🔧 Активация виртуального окружения..." || echo "🔧 Activating virtual environment..." ;; + upgrading_pip) [[ $LANG_CODE == "ru" ]] && echo "📦 Обновление pip..." || echo "📦 Upgrading pip..." ;; + installing_requirements) [[ $LANG_CODE == "ru" ]] && echo "📦 Установка зависимостей..." || echo "📦 Installing requirements..." ;; + env_missing) [[ $LANG_CODE == "ru" ]] && echo "⚠️ Файл .env не найден!" || echo "⚠️ .env file not found!" ;; + env_created) [[ $LANG_CODE == "ru" ]] && echo "📋 Создан .env файл. Пожалуйста, отредактируйте его." || echo "📋 .env created. Please edit it." ;; + validating) [[ $LANG_CODE == "ru" ]] && echo "🔍 Проверка конфигурации..." || echo "🔍 Validating configuration..." ;; + config_ok) [[ $LANG_CODE == "ru" ]] && echo "✅ Конфигурация прошла проверку." || echo "✅ Configuration validated successfully." ;; + creating_service) [[ $LANG_CODE == "ru" ]] && echo "🔧 Создание systemd-сервиса..." || echo "🔧 Creating systemd service..." ;; + service_created) [[ $LANG_CODE == "ru" ]] && echo "✅ Сервис создан и включён." || echo "✅ Service created and enabled." ;; + start_prompt) [[ $LANG_CODE == "ru" ]] && echo "🚀 Запуск бота..." || echo "🚀 Starting the bot..." ;; + already_running) [[ $LANG_CODE == "ru" ]] && echo "🟢 Бот уже запущен!" || echo "🟢 Bot is already running!" ;; + last_logs) [[ $LANG_CODE == "ru" ]] && echo "📄 Последние 20 строк лога:" || echo "📄 Last 20 log lines:" ;; + action_menu) + [[ $LANG_CODE == "ru" ]] && { + echo -e "\nЧто вы хотите сделать?" + echo "1) Остановить бота" + echo "2) Перезапустить бота" + echo "3) Выйти" + } || { + echo -e "\nWhat would you like to do?" + echo "1) Stop the bot" + echo "2) Restart the bot" + echo "3) Exit" + } + ;; + restarting) [[ $LANG_CODE == "ru" ]] && echo "🔄 Перезапуск бота..." || echo "🔄 Restarting bot..." ;; + completed) + echo "" + [[ $LANG_CODE == "ru" ]] && { + echo "🎉 Установка завершена!" + echo "📋 Возможности бота:" + echo " ✅ Мультиязычный интерфейс" + echo " ✅ Управление балансом и подписками" + echo " ✅ Промокоды и поддержка" + echo "" + } || { + echo "🎉 Installation complete!" + echo "📋 Bot Features:" + echo " ✅ Multi-language support" + echo " ✅ Subscription and balance management" + echo " ✅ Promocode system and support" + echo "" + } + ;; + esac +} + +# === Check if bot is running === +if systemctl is-active --quiet "$SERVICE_NAME"; then + msg already_running + msg last_logs + sudo journalctl -u "$SERVICE_NAME" -n 20 --no-pager + msg action_menu + read -p ">>> " choice + case $choice in + 1) + [[ $LANG_CODE == "ru" ]] && echo "🛑 Остановка бота..." || echo "🛑 Stopping the bot..." + sudo systemctl stop "$SERVICE_NAME" + [[ $LANG_CODE == "ru" ]] && echo "✅ Бот остановлен." || echo "✅ Bot stopped." + exit 0 + ;; + 2) + msg restarting + sudo systemctl restart "$SERVICE_NAME" + [[ $LANG_CODE == "ru" ]] && echo "✅ Бот перезапущен." || echo "✅ Bot restarted." + exit 0 + ;; + 3) + [[ $LANG_CODE == "ru" ]] && echo "👋 Выход." || echo "👋 Exiting." + exit 0 + ;; + *) + [[ $LANG_CODE == "ru" ]] && echo "⚠️ Неверный выбор." || echo "⚠️ Invalid choice." + exit 1 + ;; + esac +fi + +# === Install/Setup === +msg check_python +if ! command -v python3 &> /dev/null; then + msg python_missing + exit 1 +fi + +PYTHON_VERSION=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') +msg version + +if [ ! -d "$VENV_DIR" ]; then + msg creating_venv + python3 -m venv "$VENV_DIR" +fi + +msg activating_venv +source "$VENV_DIR/bin/activate" + +msg upgrading_pip +pip install --upgrade pip + +msg installing_requirements +pip install -r requirements.txt + +# Create .env if needed +if [ ! -f "$ENV_FILE" ]; then + msg env_missing + cat > "$ENV_FILE" < /dev/null <