Initial commit: Batch Bot - Telegram Comment Bot

0.0.1
Features:
- Multi-account support via session files
- AI comments generation via Ollama (local LLM)
- Telegram bot for moderation (approve/reject/regenerate)
- Docker support (controller + worker)
- Auto-join public groups
- Comment regeneration on group re-add
- Statistics tracking

Tech stack:
- Python 3.11
- Telethon 1.34 (Telegram user client)
- Aiogram 3.4 (Telegram bot framework)
- SQLite (Database)
- Docker & Docker Compose
- Ollama (Local LLM)
This commit is contained in:
2026-02-24 04:40:07 +03:00
commit a18ad30961
20 changed files with 3431 additions and 0 deletions

168
DOCKER.md Normal file
View File

@@ -0,0 +1,168 @@
# 🐳 Docker Guide
## Предварительные требования
- ✅ Docker установлен
- ✅ Ollama запущена отдельно (на хосте)
- ✅ Есть токен бота от @BotFather
## 1. Настройка
```bash
cd batch-bot
# Скопируйте конфиг
cp .env.example .env
# Отредактируйте
nano .env
```
**Обязательные параметры:**
```bash
BOT_TOKEN=1234567890:AABBccDDeeFFggHHiiJJkkLLmmNNooP
TELEGRAM_API_ID=12345678
TELEGRAM_API_HASH=abc123def456ghi789
TARGET_GROUP_ID=1416283017
LOG_GROUP_ID=-1004804863247
ADMIN_IDS=123456789
# Ollama URL (Linux)
OLLAMA_URL=http://172.17.0.1:11434
```
## 2. Создание сессий
Сессии создаются **на хосте** (вне Docker):
```bash
pip install -r requirements.txt
python auth.py
```
Введите:
1. Номер телефона
2. Код из Telegram
**Для нескольких аккаунтов:**
```bash
python auth.py # первый
python auth.py # второй
```
Проверьте:
```bash
ls sessions/
# user_123456789.session user_987654321.session
```
## 3. Запуск
```bash
# Сборка
docker-compose build
# Запуск
docker-compose up -d
# Проверка
docker-compose ps
# Логи
docker-compose logs -f
```
**Ожидается:**
```
NAME STATUS
batch-bot-controller Up
batch-bot-worker Up
```
## 4. Проверка
1. Откройте бота в Telegram
2. Отправьте `/start`
3. Проверьте `/stats`
## 🔧 Управление
```bash
# Перезапуск
docker-compose restart
# Пересборка
docker-compose build --no-cache
# Остановка
docker-compose down
# Логи controller
docker-compose logs -f controller
# Логи worker
docker-compose logs -f worker
```
## ⚠️ Troubleshooting
**"BOT_TOKEN не задан":**
```bash
docker-compose config
docker-compose restart controller
```
**"Нет сессий":**
```bash
ls sessions/
docker-compose restart worker
```
**"Ollama не отвечает":**
```bash
# Проверка с хоста
curl http://172.17.0.1:11434/api/tags
# Проверка из контейнера
docker run --rm alpine wget -qO- http://172.17.0.1:11434/api/tags
```
**"Сессия не авторизована":**
```bash
rm sessions/user_*.session
python auth.py
docker-compose restart worker
```
## 📁 Тома
| Том | Описание |
|-----|----------|
| `./sessions:/app/sessions` | Файлы сессий |
| `./logs:/app/logs` | Логи |
| `./comments.db:/app/comments.db` | База данных |
## 🌐 Сетевые настройки
Контейнеры используют Docker bridge сеть.
**Доступ к хосту:**
- `172.17.0.1` — IP хоста в Docker bridge
- `host.docker.internal` — альтернативное имя (добавлено через `extra_hosts`)
**Если Ollama на другом сервере:**
```bash
OLLAMA_URL=http://192.168.1.100:11434
```
## 📝 Обновление
```bash
# Обновление кода
git pull
# Пересборка и перезапуск
docker-compose build
docker-compose up -d
```