uploader-bot/DOCKER_SETUP.md

5.4 KiB
Raw Blame History

🐳 Запуск MY Uploader Bot через Docker

📋 Требования

  • Docker и Docker Compose установлены
  • Telegram Bot токены от @BotFather

Быстрый запуск

1. Настройка переменных окружения

Отредактируйте файл .env - ОБЯЗАТЕЛЬНО заполните Telegram токены:

# ОБЯЗАТЕЛЬНО: Получите токены у @BotFather в Telegram
TELEGRAM_API_KEY=123456789:YOUR_ACTUAL_BOT_TOKEN_HERE
CLIENT_TELEGRAM_API_KEY=987654321:YOUR_ACTUAL_CLIENT_BOT_TOKEN_HERE

Остальные настройки можно оставить по умолчанию для тестирования.

2. Запуск базовых сервисов

# Базовые сервисы (PostgreSQL + Redis + Application)
docker-compose -f docker-compose.new.yml up -d postgres redis app

# Проверка статуса
docker-compose -f docker-compose.new.yml ps

3. Проверка работы

# Проверка логов приложения
docker-compose -f docker-compose.new.yml logs -f app

# Проверка health endpoints
curl http://localhost:15100/health
curl http://localhost:15100/api/my/health

4. Веб-интерфейс

🔧 Дополнительные профили

Мониторинг (Prometheus + Grafana)

docker-compose -f docker-compose.new.yml --profile monitoring up -d

# Доступ:
# Prometheus: http://localhost:9091
# Grafana: http://localhost:3001 (admin/admin)

Отдельные сервисы (альтернативная архитектура)

docker-compose -f docker-compose.new.yml --profile separate-services up -d

Прокси с SSL (Traefik)

docker-compose -f docker-compose.new.yml --profile proxy up -d

# Настройте DOMAIN в .env перед запуском

Автоматические бэкапы

docker-compose -f docker-compose.new.yml --profile backup up -d

🔍 Диагностика

Просмотр логов

# Все сервисы
docker-compose -f docker-compose.new.yml logs -f

# Конкретный сервис
docker-compose -f docker-compose.new.yml logs -f app
docker-compose -f docker-compose.new.yml logs -f postgres
docker-compose -f docker-compose.new.yml logs -f redis

Проверка состояния базы данных

# Подключение к PostgreSQL
docker-compose -f docker-compose.new.yml exec postgres psql -U uploader -d uploader_bot

# Проверка таблиц
\dt

# Выход
\q

Проверка Redis

# Подключение к Redis
docker-compose -f docker-compose.new.yml exec redis redis-cli

# Проверка ключей
KEYS *

# Выход
exit

🛠 Разработка

Пересборка приложения

# После изменения кода
docker-compose -f docker-compose.new.yml build app
docker-compose -f docker-compose.new.yml up -d app

Выполнение команд внутри контейнера

# Bash в контейнере приложения
docker-compose -f docker-compose.new.yml exec app bash

# Миграции базы данных
docker-compose -f docker-compose.new.yml exec app python -m alembic upgrade head

# Проверка MY Network
docker-compose -f docker-compose.new.yml exec app python -c "from app.core.my_network import test_connection; test_connection()"

🛑 Остановка

# Остановка всех сервисов
docker-compose -f docker-compose.new.yml down

# Остановка с удалением volumes (ВНИМАНИЕ: удалит все данные!)
docker-compose -f docker-compose.new.yml down -v

# Очистка всех docker ресурсов
docker system prune -a

📊 MY Network Protocol

После запуска доступны MY Network endpoints:

⚠ Важные переменные в .env

Переменная Описание Обязательна
TELEGRAM_API_KEY Основной бот токен ДА
CLIENT_TELEGRAM_API_KEY Клиентский бот токен ДА
SECRET_KEY Секретный ключ (32+ символов) ДА
JWT_SECRET_KEY JWT секрет (32+ символов) ДА
POSTGRES_PASSWORD Пароль базы данных НЕТ
DEBUG Режим отладки НЕТ
TESTNET Тестовая сеть TON НЕТ

🚀 Готово к продакшену

Для продакшена дополнительно настройте:

  1. Сильные пароли в .env
  2. DEBUG=false
  3. Правильный DOMAIN
  4. TESTNET=false для основной сети TON
  5. Валидные TONCENTER_API_KEY
  6. SSL сертификаты через Traefik профиль