# 🐳 Запуск через 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. **Настроить мониторинг** логов и метрик