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)
169 lines
3.2 KiB
Markdown
169 lines
3.2 KiB
Markdown
# 🐳 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
|
||
```
|