Files
tg_bot_language/README_DOCKER.md

175 lines
3.8 KiB
Markdown
Raw Normal View History

# 🐳 Запуск через Docker Compose
## Быстрый старт
1. **Клонировать репозиторий:**
```bash
git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git
cd tg_bot_language
```
2. **Настроить переменные окружения:**
```bash
cp .env.example .env
nano .env # или используйте любой редактор
```
Заполните обязательные поля в `.env`:
```env
BOT_TOKEN=ваш_telegram_bot_token
OPENAI_API_KEY=ваш_openai_api_key
```
3. **Запустить:**
```bash
docker-compose up -d
```
4. **Проверить логи:**
```bash
docker-compose logs -f bot
```
## Управление
### Запуск
```bash
docker-compose up -d
```
### Остановка
```bash
docker-compose down
```
### Перезапуск
```bash
docker-compose restart
```
### Пересборка после изменений
```bash
docker-compose up -d --build
```
### Просмотр логов
```bash
# Все сервисы
docker-compose logs -f
# Только бот
docker-compose logs -f bot
# Только база данных
docker-compose logs -f db
```
### Статус контейнеров
```bash
docker-compose ps
```
## Работа с базой данных
### Подключение к PostgreSQL
```bash
docker-compose exec db psql -U botuser -d language_bot
```
### Бэкап базы данных
```bash
docker-compose exec db pg_dump -U botuser language_bot > backup.sql
```
### Восстановление из бэкапа
```bash
docker-compose exec -T db psql -U botuser language_bot < backup.sql
```
## Структура Docker
### Сервисы
- **db** - PostgreSQL 15 (база данных)
- Порт: 5432
- Volume: `postgres_data` для персистентности
- Health check для проверки готовности
- **bot** - Telegram бот (Python приложение)
- Зависит от `db`
- Автоматический рестарт
- Логи в `./logs`
### Volumes
- `postgres_data` - данные PostgreSQL (персистентные)
- `./logs` - логи бота (на хосте)
## Переменные окружения
Полный список переменных в `.env`:
```env
# Обязательные
BOT_TOKEN=your_token # Токен от @BotFather
OPENAI_API_KEY=your_key # API ключ OpenAI
# PostgreSQL (можно оставить по умолчанию)
POSTGRES_USER=botuser
POSTGRES_PASSWORD=botpassword
POSTGRES_DB=language_bot
# Настройки
DEBUG=True
```
## Troubleshooting
### Бот не запускается
1. Проверьте логи:
```bash
docker-compose logs bot
```
2. Проверьте, что база данных запущена:
```bash
docker-compose ps db
```
3. Проверьте переменные окружения в `.env`
### База данных недоступна
```bash
# Проверить статус
docker-compose ps db
# Перезапустить базу
docker-compose restart db
# Проверить логи
docker-compose logs db
```
### Очистка и полный перезапуск
```bash
# Остановить и удалить контейнеры
docker-compose down
# Удалить volumes (ВНИМАНИЕ: удалит все данные!)
docker-compose down -v
# Пересобрать и запустить
docker-compose up -d --build
```
## Production рекомендации
1. **Изменить пароли БД** в `.env`
2. **Отключить DEBUG**: `DEBUG=False`
3. **Настроить регулярные бэкапы** БД
4. **Использовать Docker secrets** для чувствительных данных
5. **Настроить мониторинг** логов и метрик