Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 16s
Features: - User registration and login with JWT tokens - All data is now user-specific (multi-tenancy) - Profile page with integrations and logout - Automatic migration of existing data to first user Backend changes: - Added users and refresh_tokens tables - Added user_id to all data tables (projects, entries, nodes, dictionaries, words, progress, configs, telegram_integrations, weekly_goals) - JWT authentication middleware - claimOrphanedData() for data migration Frontend changes: - AuthContext for state management - Login/Register forms - Profile page (replaced Integrations) - All API calls use authFetch with Bearer token Migration notes: - On first deploy, backend automatically adds user_id columns - First user to login claims all existing data
70 lines
3.7 KiB
Plaintext
70 lines
3.7 KiB
Plaintext
# ============================================
|
||
# Единый файл конфигурации для всех проектов
|
||
# Backend и Play-Life-Web
|
||
# ============================================
|
||
|
||
# ============================================
|
||
# Database Configuration
|
||
# ============================================
|
||
DB_HOST=localhost
|
||
DB_PORT=5432
|
||
DB_USER=playeng
|
||
DB_PASSWORD=playeng
|
||
DB_NAME=playeng
|
||
|
||
# ============================================
|
||
# Backend Server Configuration
|
||
# ============================================
|
||
# Порт для backend сервера (по умолчанию: 8080)
|
||
# В production всегда используется порт 8080 внутри контейнера
|
||
PORT=8080
|
||
|
||
# ============================================
|
||
# Play Life Web Configuration
|
||
# ============================================
|
||
# Порт для frontend приложения play-life-web
|
||
WEB_PORT=3001
|
||
|
||
# ============================================
|
||
# Telegram Bot Configuration
|
||
# ============================================
|
||
# Bot Token и Chat ID настраиваются через UI приложения в разделе "Интеграции" -> "Telegram"
|
||
# Get token from @BotFather in Telegram: https://t.me/botfather
|
||
# Base URL для автоматической настройки webhook
|
||
# Примеры:
|
||
# - Для production с HTTPS: https://your-domain.com
|
||
# - Для локальной разработки с ngrok: https://abc123.ngrok.io
|
||
# - Для прямого доступа на нестандартном порту: http://your-server:8080
|
||
# Webhook будет настроен автоматически при старте сервера на: <WEBHOOK_BASE_URL>/webhook/telegram
|
||
# Если не указан, webhook нужно настраивать вручную
|
||
WEBHOOK_BASE_URL=https://your-domain.com
|
||
|
||
# ============================================
|
||
# Todoist Webhook Configuration (optional)
|
||
# ============================================
|
||
# Секрет для проверки подлинности webhook от Todoist
|
||
# Если задан, все запросы должны содержать заголовок X-Todoist-Webhook-Secret с этим значением
|
||
# Оставьте пустым, если не хотите использовать проверку секрета
|
||
TODOIST_WEBHOOK_SECRET=
|
||
|
||
# ============================================
|
||
# Authentication Configuration
|
||
# ============================================
|
||
# Секретный ключ для подписи JWT токенов
|
||
# ВАЖНО: Обязательно задайте свой уникальный секретный ключ для production!
|
||
# Если не задан, будет использован случайно сгенерированный (не рекомендуется для production)
|
||
# Можно сгенерировать с помощью: openssl rand -base64 32
|
||
JWT_SECRET=your-super-secret-jwt-key-change-in-production
|
||
|
||
# ============================================
|
||
# Scheduler Configuration
|
||
# ============================================
|
||
# Часовой пояс для планировщика задач (например: Europe/Moscow, America/New_York, UTC)
|
||
# Используется для:
|
||
# - Автоматической фиксации целей на неделю каждый понедельник в 6:00
|
||
# - Отправки ежедневного отчёта в 23:59
|
||
# ВАЖНО: Укажите правильный часовой пояс, иначе задачи будут срабатывать в UTC!
|
||
# Список доступных часовых поясов: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||
TIMEZONE=Europe/Moscow
|
||
|