version 1.2.4: исправлены ошибки установки бота и вкладок веб-панели
- install-bot.sh: pip в venv вместо системного (externally-managed fix), ExecStart через venv/bin/python3 - templates/index.html: убран лишний </div> ломавший DOM (пустые вкладки), уникальные ID для кнопок - app.py: селекторы кнопок restartPanel/switchToSSHTunnel используют id вместо классов
This commit is contained in:
+6
-12
@@ -68,19 +68,13 @@ section "Установка зависимостей"
|
||||
apt-get update -qq
|
||||
apt-get install -y -qq python3 python3-pip python3-venv
|
||||
|
||||
if python3 -c "import psutil" 2>/dev/null; then
|
||||
ok "psutil уже установлен"
|
||||
else
|
||||
info "Установка psutil..."
|
||||
pip3 install psutil
|
||||
BOT_VENV="$BOT_DIR/venv"
|
||||
if [[ ! -d "$BOT_VENV" ]]; then
|
||||
python3 -m venv "$BOT_VENV"
|
||||
fi
|
||||
|
||||
if python3 -c "from telegram.ext import Application" 2>/dev/null; then
|
||||
ok "python-telegram-bot уже установлен"
|
||||
else
|
||||
info "Установка python-telegram-bot..."
|
||||
pip3 install python-telegram-bot
|
||||
fi
|
||||
"$BOT_VENV/bin/pip" install -q python-telegram-bot psutil 2>/dev/null
|
||||
ok "Python-зависимости установлены в виртуальное окружение"
|
||||
|
||||
# ── копирование файлов ──────────────────────────────────────────────
|
||||
section "Установка бота"
|
||||
@@ -128,7 +122,7 @@ After=network.target
|
||||
Type=simple
|
||||
WorkingDirectory=$BOT_DIR
|
||||
EnvironmentFile=$BOT_DIR/env
|
||||
ExecStart=/usr/bin/python3 $BOT_DIR/bot.py
|
||||
ExecStart=$BOT_VENV/bin/python3 $BOT_DIR/bot.py
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
User=root
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
<div id="ssh-tunnel-info" style="font-size:.82rem;color:var(--muted);margin-bottom:14px;line-height:1.7">
|
||||
Загрузка...
|
||||
</div>
|
||||
<button class="btn btn-warn" onclick="switchToSSHTunnel()">
|
||||
<button class="btn btn-warn" id="ssh-tunnel-btn" onclick="switchToSSHTunnel()">
|
||||
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 11V7a4 4 0 118 0m-4 8v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2z"/></svg>
|
||||
Переключить на SSH-туннель
|
||||
</button>
|
||||
@@ -184,13 +184,12 @@
|
||||
<p style="color:var(--muted);font-size:.875rem;margin-bottom:14px;line-height:1.6">
|
||||
После смены сертификата необходимо перезапустить панель, чтобы применить изменения.
|
||||
</p>
|
||||
<button class="btn btn-warn" onclick="restartPanel()">
|
||||
<button class="btn btn-warn" id="restart-panel-btn" onclick="restartPanel()">
|
||||
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/></svg>
|
||||
Перезапустить панель
|
||||
</button>
|
||||
<div id="restart-result" style="margin-top:12px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- SECURITY / FAIL2BAN -->
|
||||
@@ -882,7 +881,7 @@ async function loadPanelAccess() {
|
||||
}
|
||||
|
||||
async function switchToSSHTunnel() {
|
||||
const btn = document.querySelector('#page-ssl .btn-warn');
|
||||
const btn = document.getElementById('ssh-tunnel-btn');
|
||||
btn.disabled = true;
|
||||
btn.innerHTML = '<span class="spinner"></span> Переключение...';
|
||||
|
||||
@@ -920,7 +919,7 @@ async function getLetsEncrypt(){
|
||||
}
|
||||
|
||||
async function restartPanel(){
|
||||
const btn=document.querySelector('#page-ssl .btn-warn');
|
||||
const btn=document.getElementById('restart-panel-btn');
|
||||
btn.disabled=true;
|
||||
btn.innerHTML='<span class="spinner"></span> Перезапуск...';
|
||||
const el=document.getElementById('restart-result');
|
||||
|
||||
Reference in New Issue
Block a user