diff --git a/README.md b/README.md index a14f0b3..82aa529 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,276 @@ - 📝 Красивое HTML форматирование сообщений - ⚙️ Гибкая настройка через YAML конфиги -## Быстрый старт +## Установка через скрипт (простой способ) -### 1. Клонирование репозитория +Этот способ подходит, если на сервере уже есть Python 3.8+ и вы хотите запустить бота как обычный процесс или systemd сервис. + +### Шаг 1. Клонируем репозиторий ```bash git clone https://git.islipper.ru/Matrix_Bots/matrix-rss-bot.git -cd matrix-rss-bot \ No newline at end of file +cd matrix-rss-bot +``` + +### Шаг 2. Запускаем установочный скрипт + +```bash +chmod +x scripts/setup.sh +./scripts/setup.sh +``` + +Скрипт автоматически: +- Создаст виртуальное окружение Python +- Установит все зависимости +- Создаст папки для данных и логов +- Скопирует примеры конфигов +- Предложит установить systemd сервис + +### Шаг 3. Настраиваем конфиги + +Отредактируйте основной конфиг: + +```bash +nano config/config.yaml +``` + +Введите ваши данные: +- `homeserver`: URL вашего Matrix сервера (например, https://matrix.example.com) +- `bot_user_id`: ID бота (например, @rssbot:example.com) +- `access_token`: токен доступа бота + +Отредактируйте список RSS источников: + +```bash +nano config/sources.yaml +``` + +Добавьте ваши источники в формате: +```yaml +sources: + - url: "https://example.com/rss.xml" + name: "Название источника" + room_id: "!идентификатор_комнаты:сервер" +``` + +### Шаг 4. Запускаем бота + +**Вариант 1: Ручной запуск** + +```bash +source venv/bin/activate +python -m bot.main +``` + +**Вариант 2: Через systemd (если установили)** + +```bash +sudo systemctl start matrix-rss-bot +sudo systemctl enable matrix-rss-bot +sudo systemctl status matrix-rss-bot +``` + +**Вариант 3: Через screen (для долгой работы)** + +```bash +screen -S rss-bot +source venv/bin/activate +python -m bot.main +# Нажми Ctrl+A, затем D для выхода +# Вернуться: screen -r rss-bot +``` + +--- + +## Установка через Docker (рекомендуемый способ) + +Этот способ изолирует бота от системы, упрощает обновление и управление. + +### Шаг 1. Убедитесь, что Docker установлен + +```bash +docker --version +docker-compose --version +``` + +Если Docker не установлен: + +```bash +# Установка Docker +curl -fsSL https://get.docker.com -o get-docker.sh +sh get-docker.sh + +# Установка Docker Compose +curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose +``` + +### Шаг 2. Клонируем репозиторий + +```bash +git clone https://git.islipper.ru/Matrix_Bots/matrix-rss-bot.git +cd matrix-rss-bot +``` + +### Шаг 3. Настраиваем конфиги + +```bash +# Копируем примеры +cp config/config.example.yaml config/config.yaml +cp config/sources.example.yaml config/sources.yaml + +# Редактируем +nano config/config.yaml +nano config/sources.yaml +``` + +### Шаг 4. Запускаем бота + +```bash +# Сборка и запуск в фоне +docker-compose up -d + +# Просмотр логов +docker-compose logs -f + +# Проверка статуса +docker-compose ps +``` + +### Шаг 5. Управление ботом + +```bash +# Остановка +docker-compose stop + +# Запуск +docker-compose start + +# Перезапуск +docker-compose restart + +# Остановка с удалением контейнера +docker-compose down + +# Обновление (после git pull) +docker-compose up -d --build +``` + +--- + +## Получение access_token для бота + +1. Войдите в аккаунт бота в Matrix клиенте (Element, FluffyChat и т.д.) +2. Откройте настройки профиля → Помощь и о программе +3. Нажмите "Перейти на страницу разработчика" +4. Скопируйте access_token из раздела "Информация о сессии" + +Или через API: + +```bash +curl -X POST "https://ваш_сервер/_matrix/client/r0/login" \ + -H "Content-Type: application/json" \ + -d '{ + "type": "m.login.password", + "user": "@rssbot:ваш_сервер", + "password": "пароль_бота" + }' +``` + +--- + +## Получение room_id для комнаты + +**Способ 1: Через клиент** +- Откройте комнату в Element +- Нажмите на название комнаты → Настройки комнаты +- Скопируйте внутренний идентификатор (начинается с !) + +**Способ 2: Через API** + +```bash +curl -X GET "https://ваш_сервер/_matrix/client/r0/joined_rooms" \ + -H "Authorization: Bearer syt_ваш_токен" +``` + +--- + +## Проверка работы + +После запуска бота проверьте логи: + +```bash +# Для обычной установки +tail -f bot.log + +# Для Docker +docker-compose logs -f +``` + +Вы должны увидеть: + +``` +Запускаем RSS-бота... +Соединение с Matrix установлено +Цикл #1 +Проверяю: Habr +Найдено 3 новых в Habr +Отправка 3 новостей в комнату +``` + +--- + +## Обновление бота + +**Для обычной установки:** + +```bash +git pull +source venv/bin/activate +pip install -r requirements.txt --upgrade +sudo systemctl restart matrix-rss-bot # если через systemd +``` + +**Для Docker:** + +```bash +git pull +docker-compose down +docker-compose up -d --build +``` + +--- + +## Устранение частых проблем + +**Ошибка "Authentication failed"** +Проверьте access_token в config.yaml, получите новый токен. + +**Бот не отправляет сообщения** +Убедитесь, что бот приглашен в комнату и имеет права на отправку. + +**Не скачиваются изображения** +Проверьте права на папку data/news_images, установите Pillow. + +**Контейнер не запускается (Docker)** +Проверьте логи: docker-compose logs + +--- + +## Структура проекта + +``` +matrix-rss-bot/ +├── bot/ # Исходный код +├── config/ # Конфиги (config.yaml, sources.yaml) +├── data/ # Данные (история, изображения) +├── logs/ # Логи бота +├── scripts/ # Установочные скрипты +├── docker-compose.yml # Конфигурация Docker +├── requirements.txt # Зависимости Python +└── README.md # Документация +``` + +--- + +Выберите способ установки, который лучше подходит для вашего сервера. Docker проще в обслуживании и обновлении, обычная установка дает больше контроля над процессом. \ No newline at end of file