Инфраструктура и секреты 🔐
Все настройки системы Gifty управляются через переменные окружения (.env файл). Этот документ объясняет назначение ключевых параметров и правила работы с токенами.
🔑 Токены и Безопасность
1. Межсервисное взаимодействие
Для безопасности внутренних эндпоинтов (например, когда Скрапер шлет данные в Core API) используется Internal Token.
INTERNAL_API_TOKEN: Общий секрет для всех микросервисов. Должен передаваться в заголовкеX-Internal-Token.
2. Внешние API токены
INTELLIGENCE_API_TOKEN: Токен для доступа к AI-движку (оценка товаров, тегирование). Без него функции ML будут недоступны.WEEEK_API_TOKEN: Позволяет боту управлять задачами в Weeek.ANALYTICS_API_TOKEN: Токен для доступа к сервису аналитики (DAU/MAU).
3. Авторизация (OAuth)
Для каждого провайдера (Google, Yandex, VK) требуются ID и Secret, полученные в консоли разработчика.
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRETYANDEX_CLIENT_ID,YANDEX_CLIENT_SECRETVK_CLIENT_ID,VK_CLIENT_SECRET
🏗 Подключения (Data & Infra)
| Переменная | Описание | Значение для Dev |
|---|---|---|
DATABASE_URL |
Строка подключения к PostgreSQL. | postgresql+asyncpg://user:pass@localhost:5432/db |
REDIS_URL |
Адрес Redis для сессий и очередей. | redis://localhost:6379/0 |
RABBITMQ_URL |
Брокер сообщений для парсинга. | amqp://guest:guest@localhost:5672/ |
API_BASE |
Публичный URL бэкенда (для колбэков). | http://localhost:8000 |
FRONTEND_BASE |
URL фронтенда (React). | http://localhost:5173 |
🤖 Настройки Telegram
TELEGRAM_BOT_TOKEN: Токен вашего бота от @BotFather.TELEGRAM_ADMIN_SECRET: Секретный ключ для первой регистрации суперадмина через/start <secret>.TELEGRAM_WEBAPP_URL: URL запущенного дашборда парсинга (обязательно HTTPS для работы в телеграме).
⚙️ Системные флаги
ENV: Режим работы (devилиprod). Влияет на строгость проверок SSL и логгирование.DEBUG: ЕслиTrue, FastAPI будет выводить подробные ошибки и интерактивную документацию.SECRET_KEY: Используется для шифрования куки и подписи сессий. В продакшене должен быть длинной случайной строкой.
⚠️ Правила работы с секретами
- Никогда не пушьте
.envфайл в GitHub. - Используйте
.env.exampleдля описания новых переменных, но без живых ключей. - Если вы добавили новую переменную в
app/config.py, обязательно обновите этот документ и.env.example.