Skip to content

KusokMedi/server-control-python

Repository files navigation

WebControl 🖥️

Введение 📖

WebControl - это веб-приложение для удаленного управления компьютером через браузер. Оно предоставляет полный доступ к управлению файлами, процессами, мониторингу системы, окнами, вводом с клавиатуры и мыши, скриншотам, буферу обмена и логам. Проект разработан на Python с использованием фреймворка Flask и предназначен для удобного администрирования системы из любой точки с доступом к интернету.

Приложение позволяет администраторам контролировать компьютер без физического доступа, что полезно для серверов, рабочих станций или домашних ПК. Интерфейс интуитивно понятен и включает в себя боковую панель навигации для быстрого доступа к различным модулям.

Основные возможности ⚡

WebControl предлагает широкий спектр функций для управления системой:

Менеджер файлов 📁

  • Просмотр структуры файлов и папок
  • Создание, удаление и переименование файлов и директорий
  • Редактирование текстовых файлов прямо в браузере
  • Загрузка и скачивание файлов
  • Запуск исполняемых файлов

Управление процессами ⚙️

  • Просмотр списка всех запущенных процессов
  • Завершение процессов
  • Мониторинг состояния процессов

Мониторинг системы 📊

  • Реальное время статистики CPU, RAM, диска и сети
  • Графическое отображение нагрузки
  • Информация о системе (ОС, версия, аптайм)

Управление окнами 🪟

  • Просмотр списка открытых окон
  • Скрытие/показ окон
  • Минимизация/максимизация окон
  • Перемещение и фокус на окнах

Имитация ввода ⌨️

  • Симуляция нажатий клавиш клавиатуры
  • Управление курсором мыши (движения, клики)
  • Полезно для автоматизации задач

Скриншоты 📸

  • Захват изображений экрана
  • Просмотр и скачивание скриншотов
  • Автоматическое сохранение в папку screenshots

Буфер обмена 📋

  • Чтение содержимого буфера обмена
  • Запись текста в буфер обмена
  • Очистка буфера

Логи 📝

  • Просмотр системных логов действий
  • Фильтрация и поиск по логам
  • Автоматическая запись всех операций

Управление 🖥️

  • Live-стрим экрана сервера с контролем FPS
  • Захват экрана выбранного монитора через Python API
  • Отображение курсора мыши на скриншоте
  • Регулировка частоты кадров (15, 30, 60 FPS или кастомное значение)
  • Индикация реального FPS в реальном времени

Архитектура проекта 🏗️

Проект построен по модульной архитектуре:

  • app.py: Основной файл приложения Flask
  • run.py: Скрипт для запуска сервера
  • api/: Модули API для различных функций
    • clipboard.py: Работа с буфером обмена
    • input.py: Имитация ввода
    • logs.py: Управление логами
    • monitoring.py: Мониторинг системы
    • processes.py: Управление процессами
    • screenshots.py: Скриншоты
    • windows.py: Управление окнами
  • static/: Статические файлы (CSS, JS, изображения)
  • templates/: HTML шаблоны
  • utils/: Вспомогательные модули
    • logger.py: Логирование
    • system_utils.py: Системные утилиты
  • logs/: Папка для логов
  • resources/: Ресурсы (иконки, логотипы)

Установка 🔧

Требования

  • Python 3.7+
  • Windows (проект оптимизирован для Windows)
  • Браузер для доступа к веб-интерфейсу

Шаги установки

  1. Клонируйте репозиторий или скачайте файлы проекта: 📥

    git clone <repository-url>
    cd server-control-python
    
  2. Установите зависимости: 📦 Откройте командную строку в папке проекта и выполните:

    pip install -r requirements.txt
    

    Это установит все необходимые библиотеки, включая Flask, psutil и другие.

  3. Настройте пароль администратора: 🔑 Откройте файл admin.password и установите пароль для доступа к интерфейсу. Пароль должен быть в первой строке файла.

  4. Запустите приложение: ▶️ Используйте один из способов:

    • python run.py
    • Или двойной клик по start.bat

    Приложение запустится на порту 5000.

Настройка ⚙️

Конфигурация сервера

По умолчанию сервер запускается на localhost:5000. Для изменения порта или хоста отредактируйте run.py.

Безопасность

  • Используйте сильный пароль в admin.password
  • Для продакшена рассмотрите использование HTTPS
  • Ограничьте доступ к серверу через firewall

Использование 🚀

  1. Доступ к интерфейсу: 🌐 Откройте браузер и перейдите по адресу: http://localhost:5000

  2. Авторизация: 🔐 Введите пароль из файла admin.password

  3. Навигация: 🧭 Используйте боковую панель для переключения между модулями:

    • Файлы: Управление файловой системой
    • Процессы: Просмотр и управление процессами
    • Мониторинг: Статистика системы
    • Окна: Управление окнами
    • Ввод: Имитация клавиатуры/мыши
    • Скриншоты: Захват экрана
    • Буфер: Работа с clipboard
    • Логи: Просмотр логов

Примеры использования

Управление файлами 📂

  • Перейдите в раздел "Файлы"
  • Просмотрите дерево файлов
  • Кликните правой кнопкой для контекстного меню
  • Для редактирования текста выберите файл и нажмите "Редактировать"

Мониторинг системы 📈

  • В разделе "Мониторинг" отображаются графики в реальном времени
  • Обновление каждые 5 секунд

Скриншоты 🖼️

  • Нажмите "Сделать скриншот" для захвата экрана
  • Изображения сохраняются в static/screenshots/

Управление экраном 🖥️

  • Перейдите в раздел "Управление"
  • Выберите монитор из списка доступных
  • Выберите желаемый FPS из предустановок или введите кастомное значение (1-120)
  • Включите/выключите отображение курсора
  • Нажмите "Начать" для запуска live-стрима экрана сервера
  • Наблюдайте за реальным FPS в углу изображения и в панели управления
  • Нажмите "Остановить" для прекращения трансляции

API 🔌

WebControl предоставляет REST API для программного доступа:

Базовый URL

http://localhost:5000/api/

Доступные эндпоинты

/api/clipboard

  • GET: Получить содержимое буфера обмена
  • POST: Установить текст в буфер обмена
  • DELETE: Очистить буфер

/api/input

  • POST: Имитировать ввод (клавиатура/мышь)

/api/logs

  • GET: Получить логи

/api/monitoring

  • GET: Получить статистику системы

/api/processes

  • GET: Список процессов
  • DELETE: Завершить процесс

/api/screenshots

  • GET: Получить скриншот
  • POST: Сделать новый скриншот

/api/windows

  • GET: Список окон
  • POST: Управление окном (показать/скрыть и т.д.)

Все запросы требуют аутентификации через заголовок Authorization.

Безопасность 🔒

  • Все коммуникации происходят через HTTP (для продакшена используйте HTTPS)
  • Аутентификация по паролю
  • Логирование всех действий для аудита
  • Рекомендуется запускать на локальной сети или с VPN

Разработка 💻

Структура кода

  • Следуйте модульной архитектуре
  • Используйте utils/ для общих функций
  • Добавляйте логирование через logger.py

Добавление новых функций

  1. Создайте новый модуль в api/
  2. Добавьте маршрут в app.py
  3. Обновите шаблоны и JavaScript

Тестирование

  • Запустите python run.py для локального тестирования
  • Проверьте все модули через веб-интерфейс

Лицензия 📄

Проект распространяется под лицензией MIT. См. файл LICENSE для деталей.

Поддержка ❓

Если у вас возникли проблемы или вопросы:

  • Проверьте логи в папке logs/
  • Убедитесь, что все зависимости установлены
  • Проверьте настройки firewall

Changelog 📈

v1.0.0

  • Первая стабильная версия
  • Полный набор функций для управления ПК
  • Веб-интерфейс на Flask

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published