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:
168
DOCKER.md
Normal file
168
DOCKER.md
Normal 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
|
||||
```
|
||||
Reference in New Issue
Block a user