5.4 KiB
5.4 KiB
🐳 Запуск 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. Веб-интерфейс
- Основное приложение: http://localhost:15100
- MY Network Monitor: http://localhost:15100/api/my/monitor/
- Метрики: http://localhost:9090
🔧 Дополнительные профили
Мониторинг (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:
- Конфигурация bootstrap: http://localhost:15100/api/my/bootstrap/config
- Статус сети: http://localhost:15100/api/my/health
- Мониторинг ASCII: http://localhost:15100/api/my/monitor/
- Метрики: http://localhost:15100/api/my/metrics
⚠ Важные переменные в .env
| Переменная | Описание | Обязательна |
|---|---|---|
TELEGRAM_API_KEY |
Основной бот токен | ✅ ДА |
CLIENT_TELEGRAM_API_KEY |
Клиентский бот токен | ✅ ДА |
SECRET_KEY |
Секретный ключ (32+ символов) | ✅ ДА |
JWT_SECRET_KEY |
JWT секрет (32+ символов) | ✅ ДА |
POSTGRES_PASSWORD |
Пароль базы данных | ❌ НЕТ |
DEBUG |
Режим отладки | ❌ НЕТ |
TESTNET |
Тестовая сеть TON | ❌ НЕТ |
🚀 Готово к продакшену
Для продакшена дополнительно настройте:
- Сильные пароли в
.env DEBUG=false- Правильный
DOMAIN TESTNET=falseдля основной сети TON- Валидные
TONCENTER_API_KEY - SSL сертификаты через Traefik профиль