# 🐳 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 ```