mirror of
https://github.com/andrey271192/vps_monitoring.git
synced 2026-09-20 11:55:34 +00:00
- FastAPI backend with auth, server CRUD, metrics collection - Web dashboard with dark theme, server cards, SSH terminal (xterm.js) - Telegram bot with inline keyboards, server management, reboot - Telegram Mini App for mobile monitoring - Background monitoring via asyncssh (CPU, RAM, Disk, Network, Uptime) - Alert system with configurable thresholds - WebSocket SSH terminal in browser - One-command install script - Systemd service configuration Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
90 lines
2.7 KiB
Bash
Executable File
90 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# VPS Monitoring — One-command installer
|
|
# Usage: curl -sSL https://raw.githubusercontent.com/andrey271192/vps_monitoring/main/install.sh | bash
|
|
|
|
echo "================================================"
|
|
echo " 🖥 VPS Monitoring — Установка"
|
|
echo "================================================"
|
|
echo ""
|
|
|
|
APP_DIR="/opt/vps-monitoring"
|
|
REPO_URL="https://github.com/andrey271192/vps_monitoring.git"
|
|
SERVICE_NAME="vps-monitoring"
|
|
|
|
# Check root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "❌ Запустите от root: sudo bash install.sh"
|
|
exit 1
|
|
fi
|
|
|
|
echo "📦 Обновление системы..."
|
|
apt-get update -qq
|
|
apt-get install -y -qq python3 python3-venv python3-pip git curl > /dev/null 2>&1
|
|
|
|
# Clone or update repo
|
|
if [ -d "$APP_DIR" ]; then
|
|
echo "📂 Обновление существующей установки..."
|
|
cd "$APP_DIR"
|
|
git pull --ff-only || true
|
|
else
|
|
echo "📥 Клонирование репозитория..."
|
|
git clone "$REPO_URL" "$APP_DIR"
|
|
cd "$APP_DIR"
|
|
fi
|
|
|
|
# Python virtual environment
|
|
echo "🐍 Настройка Python окружения..."
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install -q --upgrade pip
|
|
pip install -q -r requirements.txt
|
|
|
|
# Create data directory
|
|
mkdir -p data
|
|
|
|
# Setup environment variables
|
|
if [ ! -f .env ]; then
|
|
echo "⚙️ Создание конфигурации..."
|
|
cat > .env << 'ENVEOF'
|
|
TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
|
|
TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-}
|
|
ENVEOF
|
|
fi
|
|
|
|
# Install systemd service
|
|
echo "🔧 Установка systemd сервиса..."
|
|
cp systemd/vps-monitoring.service /etc/systemd/system/
|
|
systemctl daemon-reload
|
|
systemctl enable $SERVICE_NAME
|
|
systemctl restart $SERVICE_NAME
|
|
|
|
# Firewall (allow 8000)
|
|
if command -v ufw &> /dev/null; then
|
|
ufw allow 8000/tcp > /dev/null 2>&1 || true
|
|
fi
|
|
|
|
# Get server IP
|
|
SERVER_IP=$(curl -s ifconfig.me 2>/dev/null || hostname -I | awk '{print $1}')
|
|
|
|
echo ""
|
|
echo "================================================"
|
|
echo " ✅ Установка завершена!"
|
|
echo "================================================"
|
|
echo ""
|
|
echo " 🌐 Панель: http://${SERVER_IP}:8000"
|
|
echo " 👤 Логин: admin"
|
|
echo " 🔑 Пароль: admin"
|
|
echo ""
|
|
echo " 📱 Telegram бот активен"
|
|
echo " 🔄 Авто-обновление: systemctl restart $SERVICE_NAME"
|
|
echo ""
|
|
echo " 📋 Команды управления:"
|
|
echo " systemctl status $SERVICE_NAME"
|
|
echo " systemctl restart $SERVICE_NAME"
|
|
echo " journalctl -u $SERVICE_NAME -f"
|
|
echo ""
|
|
echo " ⚠️ Смените пароль в настройках панели!"
|
|
echo "================================================"
|