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 update -qq
|
||||||
apt-get install -y -qq python3 python3-pip python3-venv
|
apt-get install -y -qq python3 python3-pip python3-venv
|
||||||
|
|
||||||
if python3 -c "import psutil" 2>/dev/null; then
|
BOT_VENV="$BOT_DIR/venv"
|
||||||
ok "psutil уже установлен"
|
if [[ ! -d "$BOT_VENV" ]]; then
|
||||||
else
|
python3 -m venv "$BOT_VENV"
|
||||||
info "Установка psutil..."
|
|
||||||
pip3 install psutil
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if python3 -c "from telegram.ext import Application" 2>/dev/null; then
|
"$BOT_VENV/bin/pip" install -q python-telegram-bot psutil 2>/dev/null
|
||||||
ok "python-telegram-bot уже установлен"
|
ok "Python-зависимости установлены в виртуальное окружение"
|
||||||
else
|
|
||||||
info "Установка python-telegram-bot..."
|
|
||||||
pip3 install python-telegram-bot
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ── копирование файлов ──────────────────────────────────────────────
|
# ── копирование файлов ──────────────────────────────────────────────
|
||||||
section "Установка бота"
|
section "Установка бота"
|
||||||
@@ -128,7 +122,7 @@ After=network.target
|
|||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=$BOT_DIR
|
WorkingDirectory=$BOT_DIR
|
||||||
EnvironmentFile=$BOT_DIR/env
|
EnvironmentFile=$BOT_DIR/env
|
||||||
ExecStart=/usr/bin/python3 $BOT_DIR/bot.py
|
ExecStart=$BOT_VENV/bin/python3 $BOT_DIR/bot.py
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
User=root
|
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 id="ssh-tunnel-info" style="font-size:.82rem;color:var(--muted);margin-bottom:14px;line-height:1.7">
|
||||||
Загрузка...
|
Загрузка...
|
||||||
</div>
|
</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>
|
<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-туннель
|
Переключить на SSH-туннель
|
||||||
</button>
|
</button>
|
||||||
@@ -184,13 +184,12 @@
|
|||||||
<p style="color:var(--muted);font-size:.875rem;margin-bottom:14px;line-height:1.6">
|
<p style="color:var(--muted);font-size:.875rem;margin-bottom:14px;line-height:1.6">
|
||||||
После смены сертификата необходимо перезапустить панель, чтобы применить изменения.
|
После смены сертификата необходимо перезапустить панель, чтобы применить изменения.
|
||||||
</p>
|
</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>
|
<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>
|
</button>
|
||||||
<div id="restart-result" style="margin-top:12px"></div>
|
<div id="restart-result" style="margin-top:12px"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- SECURITY / FAIL2BAN -->
|
<!-- SECURITY / FAIL2BAN -->
|
||||||
@@ -882,7 +881,7 @@ async function loadPanelAccess() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function switchToSSHTunnel() {
|
async function switchToSSHTunnel() {
|
||||||
const btn = document.querySelector('#page-ssl .btn-warn');
|
const btn = document.getElementById('ssh-tunnel-btn');
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
btn.innerHTML = '<span class="spinner"></span> Переключение...';
|
btn.innerHTML = '<span class="spinner"></span> Переключение...';
|
||||||
|
|
||||||
@@ -920,7 +919,7 @@ async function getLetsEncrypt(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function restartPanel(){
|
async function restartPanel(){
|
||||||
const btn=document.querySelector('#page-ssl .btn-warn');
|
const btn=document.getElementById('restart-panel-btn');
|
||||||
btn.disabled=true;
|
btn.disabled=true;
|
||||||
btn.innerHTML='<span class="spinner"></span> Перезапуск...';
|
btn.innerHTML='<span class="spinner"></span> Перезапуск...';
|
||||||
const el=document.getElementById('restart-result');
|
const el=document.getElementById('restart-result');
|
||||||
|
|||||||
Reference in New Issue
Block a user