version 1.2: Telegram-бот, мониторинг сервера на дашборде, README
- bot.py: Telegram-бот (/users, /create, /delete, /warp, /stats, /dashboard)
- install-bot.sh: установщик бота (systemd, конфиг /etc/mita/bot.json)
- app.py: API /api/bot/{status,install,uninstall,config}, /api/stats (CPU/RAM/диск)
- templates: раздел «Telegram бот» в UI, мониторинг CPU/RAM/диск на дашборде (2s auto-refresh)
- mita-ctl.sh: пункт 11 «Telegram-бот», удаление бота в полном uninstall
- install.sh: опциональная установка бота с инструкцией
- README.md: описание проекта и дорожная карта
This commit is contained in:
+86
-1
@@ -629,12 +629,20 @@ bash "$UPDATE_SCRIPT" && ok "Списки обновлены, конфиг пр
|
||||
section "Настройка firewall"
|
||||
|
||||
if command -v ufw &>/dev/null && ufw status | grep -q "Status: active"; then
|
||||
# UFW требует двоеточие для диапазонов: 3000:3010/tcp, а не 3000-3010/tcp
|
||||
if [[ "$MITA_PORT_RANGE" == *"-"* ]]; then
|
||||
ufw allow "${MITA_PORT_RANGE}/${MITA_PROTOCOL,,}" comment "mita proxy" 2>/dev/null || true
|
||||
_UFW_START="${MITA_PORT_RANGE%-*}"; _UFW_END="${MITA_PORT_RANGE#*-}"
|
||||
ufw allow "${_UFW_START}:${_UFW_END}/${MITA_PROTOCOL,,}" comment "mita proxy" 2>/dev/null || true
|
||||
else
|
||||
ufw allow "${MITA_PORT_RANGE}/${MITA_PROTOCOL,,}" comment "mita proxy" 2>/dev/null || true
|
||||
fi
|
||||
ok "UFW: порты $MITA_PORT_RANGE/$MITA_PROTOCOL открыты"
|
||||
echo ""
|
||||
warn "ВАЖНО: UFW управляет только локальным фаерволом ОС."
|
||||
warn "Если ваш VPS у облачного провайдера (Hetzner, AWS, GCP, DigitalOcean, Vultr и др.),"
|
||||
warn "откройте порты ${MITA_PORT_RANGE} (${MITA_PROTOCOL}) ТАКЖЕ в консоли провайдера"
|
||||
warn "(Security Groups / Firewall / Network Rules) — иначе подключения не будет."
|
||||
echo ""
|
||||
elif command -v iptables &>/dev/null; then
|
||||
if [[ "$MITA_PORT_RANGE" == *"-"* ]]; then
|
||||
START_PORT="${MITA_PORT_RANGE%-*}"; END_PORT="${MITA_PORT_RANGE#*-}"
|
||||
@@ -732,6 +740,83 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════════════
|
||||
# УСТАНОВКА TELEGRAM-БОТА (опционально)
|
||||
# ═══════════════════════════════════════════════════════════════════════
|
||||
section "Telegram-бот"
|
||||
|
||||
BOT_INSTALLER=""
|
||||
for candidate in \
|
||||
"$SCRIPT_DIR/install-bot.sh" \
|
||||
"$SCRIPT_DIR/mita-bot-pkg/install-bot.sh"
|
||||
do
|
||||
if [[ -f "$candidate" ]]; then
|
||||
BOT_INSTALLER="$candidate"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "$BOT_INSTALLER" ]]; then
|
||||
warn "install-bot.sh не найден рядом со скриптом."
|
||||
warn "Поместите bot.py и install-bot.sh рядом с install.sh для установки бота."
|
||||
else
|
||||
echo -e "Установить Telegram-бота для управления сервером?"
|
||||
echo -e " Бот позволит: создавать/удалять пользователей, смотреть трафик,"
|
||||
echo -e " включать WARP, мониторить CPU/RAM/диск — всё через Telegram."
|
||||
echo ""
|
||||
echo -e " ${GREEN}y${NC} — да, установить сейчас (потребуется токен и Telegram ID)"
|
||||
echo -e " ${YELLOW}n${NC} — пропустить (установить позже: bash $BOT_INSTALLER или через веб-панель)"
|
||||
echo ""
|
||||
read -r -p "Установить бота? [y/N]: " INSTALL_BOT
|
||||
echo ""
|
||||
|
||||
if [[ "${INSTALL_BOT,,}" == "y" || "${INSTALL_BOT,,}" == "yes" ]]; then
|
||||
echo ""
|
||||
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
||||
echo -e "${CYAN} Инструкция по созданию бота${NC}"
|
||||
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
||||
echo ""
|
||||
echo -e " ${BOLD}1.${NC} Откройте Telegram и найдите ${GREEN}@BotFather${NC}"
|
||||
echo -e " Отправьте команду ${YELLOW}/newbot${NC}"
|
||||
echo -e " Следуйте инструкциям: придумайте имя и username бота"
|
||||
echo -e " В ответ вы получите ${BOLD}токен${NC} — длинную строку вида:"
|
||||
echo -e " ${YELLOW}1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw${NC}"
|
||||
echo ""
|
||||
echo -e " ${BOLD}2.${NC} Найдите ${GREEN}@userinfobot${NC} и нажмите /start"
|
||||
echo -e " Он покажет ваш ${BOLD}Telegram ID${NC} — число (например 123456789)"
|
||||
echo ""
|
||||
echo -e " ${BOLD}3.${NC} Когда токен и ID готовы — нажмите Enter для продолжения"
|
||||
|
||||
while true; do
|
||||
echo ""
|
||||
read -r -p " Впишите токен от @BotFather: " BOT_TOKEN
|
||||
if [[ -z "$BOT_TOKEN" ]]; then
|
||||
warn "Токен не может быть пустым"
|
||||
continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
|
||||
while true; do
|
||||
echo ""
|
||||
read -r -p " Впишите ваш Telegram ID (число): " BOT_ADMIN
|
||||
if [[ -z "$BOT_ADMIN" || ! "$BOT_ADMIN" =~ ^[0-9]+$ ]]; then
|
||||
warn "Telegram ID должен быть числом (узнайте у @userinfobot)"
|
||||
continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
|
||||
echo ""
|
||||
info "Запуск установки Telegram-бота..."
|
||||
BOT_TOKEN_NONINTERACTIVE="$BOT_TOKEN" BOT_ADMIN_NONINTERACTIVE="$BOT_ADMIN" bash "$BOT_INSTALLER"
|
||||
else
|
||||
info "Пропускаем установку бота."
|
||||
echo -e " Установить позже: ${YELLOW}bash $BOT_INSTALLER${NC}"
|
||||
echo -e " Или через веб-панель: раздел «Telegram бот»"
|
||||
fi
|
||||
fi
|
||||
|
||||
# ── Установка mita-ctl как системной команды ──────────────────────
|
||||
section "Установка утилиты управления mita-ctl"
|
||||
CTL_SRC="$SCRIPT_DIR/mita-ctl.sh"
|
||||
|
||||
Reference in New Issue
Block a user