Концепції, цінність і типові сценарії
Концепції, цінність і типові сценарії
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Ця сторінка є канонічним довідником для кожної змінної середовища, яку використовує Ring Platform.
Джерелом правди є env.local.template у корені репозиторію — коли сумніваєтеся, звертайтеся до цього файлу.
Використовуйте вкладки Засновник / Розробник у бічній панелі для фільтрації за аудиторією.
DB_BACKEND_MODE (обов'язково)Ring Platform потребує DB_BACKEND_MODE під час виконання. Він визначає, який адаптер бази даних активний і як налаштовані FCM push сповіщення.
| Значення | База даних додатку | Firebase Admin для Firestore? | Push |
|---|---|---|---|
k8s-postgres-fcm | PostgreSQL (ваш кластер) | Ні — mock Firestore | FCM через Firebase Admin messaging |
firebase-full | Firestore | Так | FCM як частина повного стеку Firebase |
supabase-fcm | Supabase PostgreSQL | Ні — mock Firestore | FCM через Firebase Admin messaging |
Див. Режими бекенду та бази даних для глибокого порівняння.
Ваш Ring клон може потребувати облікових даних Firebase у двох контекстах:
DB_BACKEND_MODE, якщо ви хочете доставку push. Firebase використовується як транспорт FCM; ваші дані додатку залишаються в PostgreSQL.DB_BACKEND_MODE=firebase-full. У цьому режимі Firebase Admin SDK служить основною базою даних.Якщо вам не потрібні push сповіщення, ви можете пропустити всі змінні середовища Firebase. Платформа працює на PostgreSQL самостійно.
Firebase Admin SDK v14 використовує Application Default Credentials (ADC) у FirebaseAdapter (рівень абстракції бази даних). Для шляху FCM/auth (firebase-admin.server.ts) явні облікові дані сервісного акаунту через AUTH_FIREBASE_CLIENT_EMAIL + AUTH_FIREBASE_PRIVATE_KEY все ще потрібні, коли ADC не налаштовано.
У продакшені (Cloud Run, Cloud Functions, GKE) ADC автоматично визначає облікові дані з середовища. Вам потрібен лише AUTH_FIREBASE_PROJECT_ID. У локальній розробці або CI надайте повний набір ключів сервісного акаунту.
Ця сторінка є канонічним довідником для кожної змінної середовища, яку використовує Ring Platform.
Джерелом правди є env.local.template у корені репозиторію — коли сумніваєтеся, звертайтеся до цього файлу.
Використовуйте вкладки Засновник / Розробник у бічній панелі для фільтрації за аудиторією.
DB_BACKEND_MODE (обов'язково)Ring Platform потребує DB_BACKEND_MODE під час виконання. Він визначає, який адаптер бази даних активний і як налаштовані FCM push сповіщення.
| Значення | База даних додатку | Firebase Admin для Firestore? | Push |
|---|---|---|---|
k8s-postgres-fcm | PostgreSQL (ваш кластер) | Ні — mock Firestore | FCM через Firebase Admin messaging |
firebase-full | Firestore | Так | FCM як частина повного стеку Firebase |
supabase-fcm | Supabase PostgreSQL | Ні — mock Firestore | FCM через Firebase Admin messaging |
Див. Режими бекенду та бази даних для глибокого порівняння.
Ваш Ring клон може потребувати облікових даних Firebase у двох контекстах:
DB_BACKEND_MODE, якщо ви хочете доставку push. Firebase використовується як транспорт FCM; ваші дані додатку залишаються в PostgreSQL.DB_BACKEND_MODE=firebase-full. У цьому режимі Firebase Admin SDK служить основною базою даних.Якщо вам не потрібні push сповіщення, ви можете пропустити всі змінні середовища Firebase. Платформа працює на PostgreSQL самостійно.
Firebase Admin SDK v14 використовує Application Default Credentials (ADC) у FirebaseAdapter (рівень абстракції бази даних). Для шляху FCM/auth (firebase-admin.server.ts) явні облікові дані сервісного акаунту через AUTH_FIREBASE_CLIENT_EMAIL + AUTH_FIREBASE_PRIVATE_KEY все ще потрібні, коли ADC не налаштовано.
У продакшені (Cloud Run, Cloud Functions, GKE) ADC автоматично визначає облікові дані з середовища. Вам потрібен лише AUTH_FIREBASE_PROJECT_ID. У локальній розробці або CI надайте повний набір ключів сервісного акаунту.
Ця сторінка є канонічним довідником для кожної змінної середовища, яку використовує Ring Platform.
Джерелом правди є env.local.template у корені репозиторію — коли сумніваєтеся, звертайтеся до цього файлу.
Використовуйте вкладки Засновник / Розробник у бічній панелі для фільтрації за аудиторією.
DB_BACKEND_MODE (обов'язково)Ring Platform потребує DB_BACKEND_MODE під час виконання. Він визначає, який адаптер бази даних активний і як налаштовані FCM push сповіщення.
| Значення | База даних додатку | Firebase Admin для Firestore? | Push |
|---|---|---|---|
k8s-postgres-fcm | PostgreSQL (ваш кластер) | Ні — mock Firestore | FCM через Firebase Admin messaging |
firebase-full | Firestore | Так | FCM як частина повного стеку Firebase |
supabase-fcm | Supabase PostgreSQL | Ні — mock Firestore | FCM через Firebase Admin messaging |
Див. Режими бекенду та бази даних для глибокого порівняння.
Ваш Ring клон може потребувати облікових даних Firebase у двох контекстах:
DB_BACKEND_MODE, якщо ви хочете доставку push. Firebase використовується як транспорт FCM; ваші дані додатку залишаються в PostgreSQL.DB_BACKEND_MODE=firebase-full. У цьому режимі Firebase Admin SDK служить основною базою даних.Якщо вам не потрібні push сповіщення, ви можете пропустити всі змінні середовища Firebase. Платформа працює на PostgreSQL самостійно.
Firebase Admin SDK v14 використовує Application Default Credentials (ADC) у FirebaseAdapter (рівень абстракції бази даних). Для шляху FCM/auth (firebase-admin.server.ts) явні облікові дані сервісного акаунту через AUTH_FIREBASE_CLIENT_EMAIL + AUTH_FIREBASE_PRIVATE_KEY все ще потрібні, коли ADC не налаштовано.
У продакшені (Cloud Run, Cloud Functions, GKE) ADC автоматично визначає облікові дані з середовища. Вам потрібен лише AUTH_FIREBASE_PROJECT_ID. У локальній розробці або CI надайте повний набір ключів сервісного акаунту.
Застосуйте data/migrations/004_payment_transactions.sql перед продакшн платежами.
Див. lib/locale-config.ts. Підтримувані локалі: en, uk, ru.
Префікси за призначенням:
IMAGE_GEN_* / XAI_IMAGE_* — ImageConductorTEXT_GEN_* / XAI_TEXT_* — TextConductor (цитовані статті)TTS_* / XAI_TTS_* — AudioConductor (озвучення)NEWS_AUTOGEN_* — стандартні налаштування новинної редакціїПотребує FILE_BACKEND=ringbase з RINGBASE_API_URL та RINGBASE_API_TOKEN для CDN завантажень.
Див. env.local.template для повного коментованого довідника. Ключові опціональні блоки:
Ніколи не комітьте реальні секрети в Git. Файл env.local.template використовує значення-заповнювачі. Скопіюйте його в .env.local (gitignored) і заповніть своїми продакшн значеннями. Використовуйте K8s секрети або сховище секретів вашої системи розгортання для продакшну.
# Обов'язково — вибирає адаптер бази даних + FCM підключення
DB_BACKEND_MODE=k8s-postgres-fcm
# PostgreSQL підключення (обов'язково для k8s-postgres-fcm та supabase-fcm)
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ring_platform
DB_USER=ring_user
DB_PASSWORD=ring_password_2024
DB_POOL_SIZE=20
DB_TIMEOUT=30000
DB_RETRIES=3
DB_SSL=false
# Мінімум для FCM-тільки використання:
AUTH_FIREBASE_PROJECT_ID=your_firebase_project_id
# Потрібно коли ADC не налаштовано (локальна розробка / CI):
AUTH_FIREBASE_CLIENT_EMAIL=your_firebase_client_email
AUTH_FIREBASE_PRIVATE_KEY="your_firebase_private_key"
# Опціонально
FIREBASE_DATABASE_URL=https://your-project-default-rtdb.firebaseio.com
FIREBASE_PRIVATE_KEY_ID=your_firebase_private_key_id
FIREBASE_CLIENT_ID="your_firebase_client_id"
FIREBASE_FIRESTORE_DEBUG=true
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=G-YCZKPV315E
NEXT_PUBLIC_FIREBASE_VAPID_KEY=your_vapid_key
# Auth.js core
AUTH_SECRET=your_auth_secret
AUTH_TRUST_HOST=true
# Google OAuth (обов'язково для входу через Google)
AUTH_GOOGLE_ID=your_google_client_id
AUTH_GOOGLE_SECRET=your_google_client_secret
# Apple Sign-In (обов'язково для входу через Apple)
AUTH_APPLE_ID=your_apple_client_id
AUTH_APPLE_SECRET=your_apple_private_key
# Magic links (опціонально — використовує Resend)
# Ring Mailer: EMAIL_MODE=ethereal or SMTP_HOST / SMTP_USER / SMTP_PASSWORD
# OTP_HMAC_SECRET=Застосуйте data/migrations/004_payment_transactions.sql перед продакшн платежами.
Див. lib/locale-config.ts. Підтримувані локалі: en, uk, ru.
Префікси за призначенням:
IMAGE_GEN_* / XAI_IMAGE_* — ImageConductorTEXT_GEN_* / XAI_TEXT_* — TextConductor (цитовані статті)TTS_* / XAI_TTS_* — AudioConductor (озвучення)NEWS_AUTOGEN_* — стандартні налаштування новинної редакціїПотребує FILE_BACKEND=ringbase з RINGBASE_API_URL та RINGBASE_API_TOKEN для CDN завантажень.
Див. env.local.template для повного коментованого довідника. Ключові опціональні блоки:
Ніколи не комітьте реальні секрети в Git. Файл env.local.template використовує значення-заповнювачі. Скопіюйте його в .env.local (gitignored) і заповніть своїми продакшн значеннями. Використовуйте K8s секрети або сховище секретів вашої системи розгортання для продакшну.
# Обов'язково — вибирає адаптер бази даних + FCM підключення
DB_BACKEND_MODE=k8s-postgres-fcm
# PostgreSQL підключення (обов'язково для k8s-postgres-fcm та supabase-fcm)
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ring_platform
DB_USER=ring_user
DB_PASSWORD=ring_password_2024
DB_POOL_SIZE=20
DB_TIMEOUT=30000
DB_RETRIES=3
DB_SSL=false
# Мінімум для FCM-тільки використання:
AUTH_FIREBASE_PROJECT_ID=your_firebase_project_id
# Потрібно коли ADC не налаштовано (локальна розробка / CI):
AUTH_FIREBASE_CLIENT_EMAIL=your_firebase_client_email
AUTH_FIREBASE_PRIVATE_KEY="your_firebase_private_key"
# Опціонально
FIREBASE_DATABASE_URL=https://your-project-default-rtdb.firebaseio.com
FIREBASE_PRIVATE_KEY_ID=your_firebase_private_key_id
FIREBASE_CLIENT_ID="your_firebase_client_id"
FIREBASE_FIRESTORE_DEBUG=true
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=G-YCZKPV315E
NEXT_PUBLIC_FIREBASE_VAPID_KEY=your_vapid_key
# Auth.js core
AUTH_SECRET=your_auth_secret
AUTH_TRUST_HOST=true
# Google OAuth (обов'язково для входу через Google)
AUTH_GOOGLE_ID=your_google_client_id
AUTH_GOOGLE_SECRET=your_google_client_secret
# Apple Sign-In (обов'язково для входу через Apple)
AUTH_APPLE_ID=your_apple_client_id
AUTH_APPLE_SECRET=your_apple_private_key
# Magic links (опціонально — використовує Resend)
# Ring Mailer: EMAIL_MODE=ethereal or SMTP_HOST / SMTP_USER / SMTP_PASSWORD
# OTP_HMAC_SECRET=Застосуйте data/migrations/004_payment_transactions.sql перед продакшн платежами.
Див. lib/locale-config.ts. Підтримувані локалі: en, uk, ru.
Префікси за призначенням:
IMAGE_GEN_* / XAI_IMAGE_* — ImageConductorTEXT_GEN_* / XAI_TEXT_* — TextConductor (цитовані статті)TTS_* / XAI_TTS_* — AudioConductor (озвучення)NEWS_AUTOGEN_* — стандартні налаштування новинної редакціїПотребує FILE_BACKEND=ringbase з RINGBASE_API_URL та RINGBASE_API_TOKEN для CDN завантажень.
Див. env.local.template для повного коментованого довідника. Ключові опціональні блоки:
Ніколи не комітьте реальні секрети в Git. Файл env.local.template використовує значення-заповнювачі. Скопіюйте його в .env.local (gitignored) і заповніть своїми продакшн значеннями. Використовуйте K8s секрети або сховище секретів вашої системи розгортання для продакшну.
# Обов'язково — вибирає адаптер бази даних + FCM підключення
DB_BACKEND_MODE=k8s-postgres-fcm
# PostgreSQL підключення (обов'язково для k8s-postgres-fcm та supabase-fcm)
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ring_platform
DB_USER=ring_user
DB_PASSWORD=ring_password_2024
DB_POOL_SIZE=20
DB_TIMEOUT=30000
DB_RETRIES=3
DB_SSL=false
# Мінімум для FCM-тільки використання:
AUTH_FIREBASE_PROJECT_ID=your_firebase_project_id
# Потрібно коли ADC не налаштовано (локальна розробка / CI):
AUTH_FIREBASE_CLIENT_EMAIL=your_firebase_client_email
AUTH_FIREBASE_PRIVATE_KEY="your_firebase_private_key"
# Опціонально
FIREBASE_DATABASE_URL=https://your-project-default-rtdb.firebaseio.com
FIREBASE_PRIVATE_KEY_ID=your_firebase_private_key_id
FIREBASE_CLIENT_ID="your_firebase_client_id"
FIREBASE_FIRESTORE_DEBUG=true
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=G-YCZKPV315E
NEXT_PUBLIC_FIREBASE_VAPID_KEY=your_vapid_key
# Auth.js core
AUTH_SECRET=your_auth_secret
AUTH_TRUST_HOST=true
# Google OAuth (обов'язково для входу через Google)
AUTH_GOOGLE_ID=your_google_client_id
AUTH_GOOGLE_SECRET=your_google_client_secret
# Apple Sign-In (обов'язково для входу через Apple)
AUTH_APPLE_ID=your_apple_client_id
AUTH_APPLE_SECRET=your_apple_private_key
# Magic links (опціонально — використовує Resend)
# Ring Mailer: EMAIL_MODE=ethereal or SMTP_HOST / SMTP_USER / SMTP_PASSWORD
# OTP_HMAC_SECRET=
# Процесор за замовчуванням
PAYMENT_DEFAULT_PROCESSOR=wayforpay
# Перевизначення за призначенням (опціонально)
PAYMENT_STORE_PROCESSOR=wayforpay
PAYMENT_MEMBERSHIP_PROCESSOR=wayforpay
PAYMENT_NEWS_PROCESSOR=wayforpay
# WayForPay
WAYFORPAY_MERCHANT_ACCOUNT=your_merchant
WAYFORPAY_SECRET_KEY=your_secret
# Stripe (альтернатива)
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
PAYMENT_FIAT_CURRENCY=UAH
NEXT_PUBLIC_SUPPORTED_LOCALES=en,uk,ru
NEXT_PUBLIC_DEFAULT_LOCALE=en
XAI_API_KEY=your_xai_key
XAI_API_BASE_URL=https://api.x.ai/v1
# vercel | k8s | self-hosted
RING_DEPLOY_TARGET=self-hosted
NEXT_PUBLIC_RING_DEPLOY_TARGET=self-hosted
# Опціональна явна WS URL (за замовчуванням: той самий хост /api/tunnel/ws)
# NEXT_PUBLIC_TUNNEL_WS_URL=wss://ring-platform.org/api/tunnel/ws
FEATURE_DOCUMENTATION=true
FEATURE_NETWORKING=true
FEATURE_MESSAGING=true
FEATURE_WALLET=true
FEATURE_AI_MATCHER=true
FEATURE_WEB3_INTEGRATION=true
NEXT_PUBLIC_BASE_URL=https://ring-platform.org
NODE_ENV=development
# Email CRM (IMAP опитування + адмін інтерфейс)
# IMAP_HOST=mail.example.com
# IMAP_PORT=993
# ...
# CRON захист
# CRON_SECRET=generate-a-long-random-string
# Резервне копіювання та відповідність
# BACKUP_ENABLED=true
# BACKUP_SCHEDULE=0 2 * * *
# Процесор за замовчуванням
PAYMENT_DEFAULT_PROCESSOR=wayforpay
# Перевизначення за призначенням (опціонально)
PAYMENT_STORE_PROCESSOR=wayforpay
PAYMENT_MEMBERSHIP_PROCESSOR=wayforpay
PAYMENT_NEWS_PROCESSOR=wayforpay
# WayForPay
WAYFORPAY_MERCHANT_ACCOUNT=your_merchant
WAYFORPAY_SECRET_KEY=your_secret
# Stripe (альтернатива)
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
PAYMENT_FIAT_CURRENCY=UAH
NEXT_PUBLIC_SUPPORTED_LOCALES=en,uk,ru
NEXT_PUBLIC_DEFAULT_LOCALE=en
XAI_API_KEY=your_xai_key
XAI_API_BASE_URL=https://api.x.ai/v1
# vercel | k8s | self-hosted
RING_DEPLOY_TARGET=self-hosted
NEXT_PUBLIC_RING_DEPLOY_TARGET=self-hosted
# Опціональна явна WS URL (за замовчуванням: той самий хост /api/tunnel/ws)
# NEXT_PUBLIC_TUNNEL_WS_URL=wss://ring-platform.org/api/tunnel/ws
FEATURE_DOCUMENTATION=true
FEATURE_NETWORKING=true
FEATURE_MESSAGING=true
FEATURE_WALLET=true
FEATURE_AI_MATCHER=true
FEATURE_WEB3_INTEGRATION=true
NEXT_PUBLIC_BASE_URL=https://ring-platform.org
NODE_ENV=development
# Email CRM (IMAP опитування + адмін інтерфейс)
# IMAP_HOST=mail.example.com
# IMAP_PORT=993
# ...
# CRON захист
# CRON_SECRET=generate-a-long-random-string
# Резервне копіювання та відповідність
# BACKUP_ENABLED=true
# BACKUP_SCHEDULE=0 2 * * *
# Процесор за замовчуванням
PAYMENT_DEFAULT_PROCESSOR=wayforpay
# Перевизначення за призначенням (опціонально)
PAYMENT_STORE_PROCESSOR=wayforpay
PAYMENT_MEMBERSHIP_PROCESSOR=wayforpay
PAYMENT_NEWS_PROCESSOR=wayforpay
# WayForPay
WAYFORPAY_MERCHANT_ACCOUNT=your_merchant
WAYFORPAY_SECRET_KEY=your_secret
# Stripe (альтернатива)
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
PAYMENT_FIAT_CURRENCY=UAH
NEXT_PUBLIC_SUPPORTED_LOCALES=en,uk,ru
NEXT_PUBLIC_DEFAULT_LOCALE=en
XAI_API_KEY=your_xai_key
XAI_API_BASE_URL=https://api.x.ai/v1
# vercel | k8s | self-hosted
RING_DEPLOY_TARGET=self-hosted
NEXT_PUBLIC_RING_DEPLOY_TARGET=self-hosted
# Опціональна явна WS URL (за замовчуванням: той самий хост /api/tunnel/ws)
# NEXT_PUBLIC_TUNNEL_WS_URL=wss://ring-platform.org/api/tunnel/ws
FEATURE_DOCUMENTATION=true
FEATURE_NETWORKING=true
FEATURE_MESSAGING=true
FEATURE_WALLET=true
FEATURE_AI_MATCHER=true
FEATURE_WEB3_INTEGRATION=true
NEXT_PUBLIC_BASE_URL=https://ring-platform.org
NODE_ENV=development
# Email CRM (IMAP опитування + адмін інтерфейс)
# IMAP_HOST=mail.example.com
# IMAP_PORT=993
# ...
# CRON захист
# CRON_SECRET=generate-a-long-random-string
# Резервне копіювання та відповідність
# BACKUP_ENABLED=true
# BACKUP_SCHEDULE=0 2 * * *