domovoy_bot/ВЕБ_ИНТЕРФЕЙС.md
Admin ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00

7.1 KiB
Raw Blame History

🌐 Веб-интерфейс админа — v1.11

Версия: v1.11 Дата: 27 февраля 2026 г. Статус: Реализовано


📋 Описание

Веб-интерфейс для администратора домового бота на базе FastAPI. Позволяет просматривать статистику, управлять пользователями, экспортировать данные через браузер.


🎯 Возможности

  • Дашборд с основной статистикой
  • Просмотр пользователей с поиском
  • Экспорт данных в JSON
  • Страница настроек
  • API для интеграции
  • Авторизация (HTTP Basic Auth)
  • Адаптивный дизайн (Bootstrap 5)

🚀 Быстрый старт

1. Запуск с ботом

Веб-сервер запускается автоматически при старте бота:

cd /home/matrixhasyou/domovoy_bot
./run.sh

2. Доступ к интерфейсу

Откройте в браузере:

http://localhost:8000

Логин: admin Пароль: Ваш ADMIN_USER_ID (из .env)


📱 Страницы

1. Дашборд (/)

Основная статистика:

  • Пользователей
  • Верифицировано
  • Сообщений
  • Активных опросов
  • Объявлений
  • Предстоящих событий

Быстрые действия:

  • Переход к пользователям
  • Экспорт JSON
  • Настройки

2. Пользователи (/users)

Функции:

  • Таблица всех пользователей (до 100)
  • Поиск по имени, квартире, нику
  • Статус верификации
  • Рейтинг и количество сообщений

Поля:

  • ID
  • Имя
  • Ник (@username)
  • Квартира
  • Верифицирован (/)
  • Рейтинг
  • Сообщений

3. Экспорт (/export)

Функции:

  • Кнопка экспорта в JSON
  • Статус экспорта
  • Путь к файлу

Экспортируются:

  • Все пользователи
  • Все сообщения
  • Даты и время
  • Квартиры и телефоны

4. Настройки (/settings)

Отображается:

  • Bot Token (маска)
  • Admin Chat ID
  • Admin User ID
  • Статус прокси

🔌 API Endpoints

GET /api/stats

Описание: Получить статистику для дашборда

Ответ:

{
  "top_users": [
    {"id": 123456789, "name": "Иван", "apartment": "45", "rating": 500}
  ],
  "active_polls": [
    {"id": 1, "question": "За какой цвет?", "votes": 25}
  ],
  "recent_messages": [...]
}

Описание: Список пользователей с поиском

Параметры:

  • search (опционально) — строка поиска

Ответ:

{
  "users": [
    {
      "id": 123456789,
      "name": "Иван Иванов",
      "username": "ivanov",
      "apartment": "45",
      "verified": true,
      "rating": 500,
      "messages": 150
    }
  ]
}

GET /api/export/json

Описание: Экспорт данных в JSON

Ответ:

{
  "success": true,
  "filepath": "exports/export_2026-02-27.json"
}

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

Авторизация

Тип: HTTP Basic Auth

Логин: admin Пароль: Значение ADMIN_USER_ID из .env

Пример curl:

curl -u admin:123456789 http://localhost:8000/api/stats

Защита страниц

Все страницы требуют авторизации. При неверных данных возвращается 401.


🗄️ Зависимости

Новые пакеты (v1.11+):

fastapi>=0.109.0
uvicorn>=0.27.0
jinja2>=3.1.3
python-multipart>=0.0.6

Установка:

cd /home/matrixhasyou/domovoy_bot
source venv/bin/activate
pip install -r requirements.txt

📁 Структура файлов

web/
├── app.py                 # FastAPI приложение
├── templates/
│   ├── dashboard.html     # Дашборд
│   ├── users.html         # Пользователи
│   ├── export.html        # Экспорт
│   └── settings.html      # Настройки
└── static/
    ├── css/               # Стили (пока не используется)
    └── js/                # Скрипты (пока не используется)

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

Чек-лист проверки:

1. Запуск

./run.sh
  • Бот запускается
  • Веб-сервер запускается
  • В логах видно URL

2. Авторизация

http://localhost:8000
Логин: admin
Пароль: <ADMIN_USER_ID>
  • Форма авторизации появляется
  • Верные данные пускают
  • Неверные данные блокируют

3. Дашборд

  • Статистика отображается
  • Карточки красивые
  • Кнопки работают

4. Пользователи

  • Таблица загружается
  • Поиск работает
  • Верификация показывается

5. Экспорт

  • Кнопка работает
  • Файл создаётся
  • Путь показывается

🔧 Отладка

Логи веб-сервера:

tail -f logs/bot.log | grep -i "web\|uvicorn"

Проверка порта:

ss -tlnp | grep 8000

Тест API:

curl -u admin:<PASSWORD> http://localhost:8000/api/stats

🚀 Запуск в production

1. Изменить порт (если нужно):

В services/web_server.py:

def __init__(self, host: str = "0.0.0.0", port: int = 8000):

2. Настроить nginx (опционально):

server {
    listen 80;
    server_name bot.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

3. Включить HTTPS:

sudo certbot --nginx -d bot.yourdomain.com

Преимущества

Было Стало
Только Telegram Веб-интерфейс
Нет визуализации Дашборд с графиками
Ручной экспорт Кнопка в браузере
Нет поиска Поиск пользователей

Веб-интерфейс готов! 🌐

Следующий шаг: тестирование и фиксация версии v1.11