Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring Platform
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    Messaging
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    White Label
    Интеграция Web3
    Реальные Проекты
    Кастомизация
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Web3
    Token launch jurisdictions
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Monitoring
    Оптимизация производительности
    Backup
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring Platform
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    Messaging
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    White Label
    Интеграция Web3
    Реальные Проекты
    Кастомизация
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Web3
    Token launch jurisdictions
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Monitoring
    Оптимизация производительности
    Backup
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring Platform
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    Messaging
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    White Label
    Интеграция Web3
    Реальные Проекты
    Кастомизация
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Web3
    Token launch jurisdictions
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Monitoring
    Оптимизация производительности
    Backup
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)
    1. Документация
    2. /Архитектура
    3. /Режимы бэкенда и базы данных

    Обновлено 15 мая 2026 г.4 мин прослушивания

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. Документация
    2. /Архитектура
    3. /Режимы бэкенда и базы данных

    Обновлено 15 мая 2026 г.4 мин прослушивания

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. Документация
    2. /Архитектура
    3. /Режимы бэкенда и базы данных

    Обновлено 15 мая 2026 г.4 мин прослушивания

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Режимы бэкенда и базы данных

    Ring Platform — это единая кодовая база приложения с обязательным переключателем в рантайме: DB_BACKEND_MODE. Значение определяет, какие адаптеры БД регистрируются, используется ли Firestore для данных приложения и как подключены push-уведомления.

    Эта страница — канонический справочник для операторов и сопровождения клонов. Реализация: lib/database/backend-mode-config.ts, lib/database/DatabaseService.ts, lib/database/BackendSelector.ts.

    DB_BACKEND_MODE (обязательно)

    РежимОсновная БД приложенияFirebase Admin для БД / Firestore?Push (FCM / Apple)
    k8s-postgres-fcmPostgreSQL (ваш кластер — например k3s + CloudNativePG / PostGIS)Нет — shouldUseFirebaseForDatabase() = false; вне firebase-full getAdminDb() возвращает mock FirestoreFCM (и Apple по настройке) через Firebase Admin messaging и web-конфиг; Firestore не является источником истины
    firebase-fullFirestore / пути на FirebaseДаFCM как часть полного стека Firebase
    supabase-fcmPostgreSQL на Supabase (подключение через env)Нет (тот же подход к Firestore, что и в k8s-режиме)FCM + Apple по настройке

    Имена в документации: продакшен на собственном Postgres часто описывают как «self-hosted PostgreSQL + FCM» или «режим с приоритетом Postgres». Строка enum остаётся k8s-postgres-fcm — переименование сломает все деплои, хранилища секретов и клоны без согласованной миграции.

    Firebase в k8s-postgres-fcm и supabase-fcm

    • Данные приложения (коллекции через DatabaseService / BackendSelector) идут в PostgreSQL через PostgreSQLAdapter.
    • lib/firebase-admin.server.ts явно не поднимает настоящий Firestore, когда shouldUseFirebaseForDatabase() = false (см. комментарии у getAdminDb() / getAdminAuth()).
    • FCM по-прежнему использует учётные данные проекта Firebase, если включено (shouldInitializeFirebaseFCM(), NEXT_PUBLIC_FIREBASE_*, переменные service account). Это доставка push, а не основное транзакционное хранилище.

    Формулировка «мы ушли с Firebase как с БД» корректна для режимов с приоритетом Postgres; Firebase не исчез из репозитория — остаётся стандартным путём FCM, пока push не отключён.

    Supabase: две разные роли

    1. DB_BACKEND_MODE=supabase-fcm — Postgres на Supabase; тот же паттерн «Postgres primary + FCM», что и в k8s-режиме по отношению к Firestore.
    2. Tunnel realtime (NEXT_PUBLIC_TUNNEL_TRANSPORT=supabase) — опциональный канал Realtime в lib/tunnel/transports/supabase-transport.ts через @supabase/supabase-js и NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY. Это ортогонально тому, какой SQL-бэкенд владеет таблицами; наличие Supabase в env не всегда означает режим supabase-fcm.

    Vercel и «serverless Postgres»

    В этом дереве кода Ring Platform не используется @vercel/postgres как основной драйвер БД. Vercel Blob (BLOB_READ_WRITE_TOKEN) — для файлового / blob-хранилища по настройке; это не реляционная база.

    DB_HYBRID_MODE — это не то же самое, что DB_BACKEND_MODE

    DB_HYBRID_MODE — устаревший / на уровне фич переключатель, на который ещё ссылаются несколько мест (например features/store/config.ts, features/notifications/services/notification-service-loader.ts, scripts/inject-firebase-config.js). Он не заменяет и не тождественен DB_BACKEND_MODE.

    • DB_BACKEND_MODE — глобальный режим деплоя (приоритет Postgres против полный Firebase против Postgres на Supabase).
    • DB_HYBRID_MODE — более старая «гибридная» терминология для частичного Firebase против Postgres в отдельных фичах.

    Рекомендация: для новых деплоев документируйте и задавайте DB_BACKEND_MODE. Если в документации «hybrid» заменяете на «self-hosted», делайте это в прозе и именах в новом коде, а не в строке enum DB_BACKEND_MODE без плана миграции.

    Auth.js и PostgreSQL

    Таблицы auth (users, accounts, sessions, verification_tokens, …) входят в схему Postgres при адаптере PostgreSQL. См. lib/auth/postgres-adapter.ts и data/schema.sql. Поддержка нескольких режимов кратко в Authentication.

    Связанная документация

    • Конфигурация окружения — сгруппированные секреты и URL (указатель на режимы бэкенда).
    • Push-уведомления (FCM) — токены хранятся через BackendSelector и режим.
    • Протокол Tunnel — транспорты против DB_BACKEND_MODE.
    • Выбор бэкенда БД (white-label) — продуктовое сравнение; env согласуйте с этой страницей.
    • Продакшен-подключение: k8s/ENV-PROD-WIRING.md (секреты кластера, build args, DB_BACKEND_MODE в образе против runtime).

    Открытое решение (именование)

    Если нужно, чтобы строка k8s-postgres-fcm в env читалась как self-hosted или postgres, потребуются: новое допустимое значение в backend-mode-config.ts, манифесты деплоя, секреты всех колец, CI и документация — или длительная депрекация с поддержкой алиасов. Только документационное переименование в «self-hosted» безопасно и уже отражено выше.

    Режимы бэкенда и базы данных

    Ring Platform — это единая кодовая база приложения с обязательным переключателем в рантайме: DB_BACKEND_MODE. Значение определяет, какие адаптеры БД регистрируются, используется ли Firestore для данных приложения и как подключены push-уведомления.

    Эта страница — канонический справочник для операторов и сопровождения клонов. Реализация: lib/database/backend-mode-config.ts, lib/database/DatabaseService.ts, lib/database/BackendSelector.ts.

    DB_BACKEND_MODE (обязательно)

    РежимОсновная БД приложенияFirebase Admin для БД / Firestore?Push (FCM / Apple)
    k8s-postgres-fcmPostgreSQL (ваш кластер — например k3s + CloudNativePG / PostGIS)Нет — shouldUseFirebaseForDatabase() = false; вне firebase-full getAdminDb() возвращает mock FirestoreFCM (и Apple по настройке) через Firebase Admin messaging и web-конфиг; Firestore не является источником истины
    firebase-fullFirestore / пути на FirebaseДаFCM как часть полного стека Firebase
    supabase-fcmPostgreSQL на Supabase (подключение через env)Нет (тот же подход к Firestore, что и в k8s-режиме)FCM + Apple по настройке

    Имена в документации: продакшен на собственном Postgres часто описывают как «self-hosted PostgreSQL + FCM» или «режим с приоритетом Postgres». Строка enum остаётся k8s-postgres-fcm — переименование сломает все деплои, хранилища секретов и клоны без согласованной миграции.

    Firebase в k8s-postgres-fcm и supabase-fcm

    • Данные приложения (коллекции через DatabaseService / BackendSelector) идут в PostgreSQL через PostgreSQLAdapter.
    • lib/firebase-admin.server.ts явно не поднимает настоящий Firestore, когда shouldUseFirebaseForDatabase() = false (см. комментарии у getAdminDb() / getAdminAuth()).
    • FCM по-прежнему использует учётные данные проекта Firebase, если включено (shouldInitializeFirebaseFCM(), NEXT_PUBLIC_FIREBASE_*, переменные service account). Это доставка push, а не основное транзакционное хранилище.

    Формулировка «мы ушли с Firebase как с БД» корректна для режимов с приоритетом Postgres; Firebase не исчез из репозитория — остаётся стандартным путём FCM, пока push не отключён.

    Supabase: две разные роли

    1. DB_BACKEND_MODE=supabase-fcm — Postgres на Supabase; тот же паттерн «Postgres primary + FCM», что и в k8s-режиме по отношению к Firestore.
    2. Tunnel realtime (NEXT_PUBLIC_TUNNEL_TRANSPORT=supabase) — опциональный канал Realtime в lib/tunnel/transports/supabase-transport.ts через @supabase/supabase-js и NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY. Это ортогонально тому, какой SQL-бэкенд владеет таблицами; наличие Supabase в env не всегда означает режим supabase-fcm.

    Vercel и «serverless Postgres»

    В этом дереве кода Ring Platform не используется @vercel/postgres как основной драйвер БД. Vercel Blob (BLOB_READ_WRITE_TOKEN) — для файлового / blob-хранилища по настройке; это не реляционная база.

    DB_HYBRID_MODE — это не то же самое, что DB_BACKEND_MODE

    DB_HYBRID_MODE — устаревший / на уровне фич переключатель, на который ещё ссылаются несколько мест (например features/store/config.ts, features/notifications/services/notification-service-loader.ts, scripts/inject-firebase-config.js). Он не заменяет и не тождественен DB_BACKEND_MODE.

    • DB_BACKEND_MODE — глобальный режим деплоя (приоритет Postgres против полный Firebase против Postgres на Supabase).
    • DB_HYBRID_MODE — более старая «гибридная» терминология для частичного Firebase против Postgres в отдельных фичах.

    Рекомендация: для новых деплоев документируйте и задавайте DB_BACKEND_MODE. Если в документации «hybrid» заменяете на «self-hosted», делайте это в прозе и именах в новом коде, а не в строке enum DB_BACKEND_MODE без плана миграции.

    Auth.js и PostgreSQL

    Таблицы auth (users, accounts, sessions, verification_tokens, …) входят в схему Postgres при адаптере PostgreSQL. См. lib/auth/postgres-adapter.ts и data/schema.sql. Поддержка нескольких режимов кратко в Authentication.

    Связанная документация

    • Конфигурация окружения — сгруппированные секреты и URL (указатель на режимы бэкенда).
    • Push-уведомления (FCM) — токены хранятся через BackendSelector и режим.
    • Протокол Tunnel — транспорты против DB_BACKEND_MODE.
    • Выбор бэкенда БД (white-label) — продуктовое сравнение; env согласуйте с этой страницей.
    • Продакшен-подключение: k8s/ENV-PROD-WIRING.md (секреты кластера, build args, DB_BACKEND_MODE в образе против runtime).

    Открытое решение (именование)

    Если нужно, чтобы строка k8s-postgres-fcm в env читалась как self-hosted или postgres, потребуются: новое допустимое значение в backend-mode-config.ts, манифесты деплоя, секреты всех колец, CI и документация — или длительная депрекация с поддержкой алиасов. Только документационное переименование в «self-hosted» безопасно и уже отражено выше.

    Режимы бэкенда и базы данных

    Ring Platform — это единая кодовая база приложения с обязательным переключателем в рантайме: DB_BACKEND_MODE. Значение определяет, какие адаптеры БД регистрируются, используется ли Firestore для данных приложения и как подключены push-уведомления.

    Эта страница — канонический справочник для операторов и сопровождения клонов. Реализация: lib/database/backend-mode-config.ts, lib/database/DatabaseService.ts, lib/database/BackendSelector.ts.

    DB_BACKEND_MODE (обязательно)

    РежимОсновная БД приложенияFirebase Admin для БД / Firestore?Push (FCM / Apple)
    k8s-postgres-fcmPostgreSQL (ваш кластер — например k3s + CloudNativePG / PostGIS)Нет — shouldUseFirebaseForDatabase() = false; вне firebase-full getAdminDb() возвращает mock FirestoreFCM (и Apple по настройке) через Firebase Admin messaging и web-конфиг; Firestore не является источником истины
    firebase-fullFirestore / пути на FirebaseДаFCM как часть полного стека Firebase
    supabase-fcmPostgreSQL на Supabase (подключение через env)Нет (тот же подход к Firestore, что и в k8s-режиме)FCM + Apple по настройке

    Имена в документации: продакшен на собственном Postgres часто описывают как «self-hosted PostgreSQL + FCM» или «режим с приоритетом Postgres». Строка enum остаётся k8s-postgres-fcm — переименование сломает все деплои, хранилища секретов и клоны без согласованной миграции.

    Firebase в k8s-postgres-fcm и supabase-fcm

    • Данные приложения (коллекции через DatabaseService / BackendSelector) идут в PostgreSQL через PostgreSQLAdapter.
    • lib/firebase-admin.server.ts явно не поднимает настоящий Firestore, когда shouldUseFirebaseForDatabase() = false (см. комментарии у getAdminDb() / getAdminAuth()).
    • FCM по-прежнему использует учётные данные проекта Firebase, если включено (shouldInitializeFirebaseFCM(), NEXT_PUBLIC_FIREBASE_*, переменные service account). Это доставка push, а не основное транзакционное хранилище.

    Формулировка «мы ушли с Firebase как с БД» корректна для режимов с приоритетом Postgres; Firebase не исчез из репозитория — остаётся стандартным путём FCM, пока push не отключён.

    Supabase: две разные роли

    1. DB_BACKEND_MODE=supabase-fcm — Postgres на Supabase; тот же паттерн «Postgres primary + FCM», что и в k8s-режиме по отношению к Firestore.
    2. Tunnel realtime (NEXT_PUBLIC_TUNNEL_TRANSPORT=supabase) — опциональный канал Realtime в lib/tunnel/transports/supabase-transport.ts через @supabase/supabase-js и NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY. Это ортогонально тому, какой SQL-бэкенд владеет таблицами; наличие Supabase в env не всегда означает режим supabase-fcm.

    Vercel и «serverless Postgres»

    В этом дереве кода Ring Platform не используется @vercel/postgres как основной драйвер БД. Vercel Blob (BLOB_READ_WRITE_TOKEN) — для файлового / blob-хранилища по настройке; это не реляционная база.

    DB_HYBRID_MODE — это не то же самое, что DB_BACKEND_MODE

    DB_HYBRID_MODE — устаревший / на уровне фич переключатель, на который ещё ссылаются несколько мест (например features/store/config.ts, features/notifications/services/notification-service-loader.ts, scripts/inject-firebase-config.js). Он не заменяет и не тождественен DB_BACKEND_MODE.

    • DB_BACKEND_MODE — глобальный режим деплоя (приоритет Postgres против полный Firebase против Postgres на Supabase).
    • DB_HYBRID_MODE — более старая «гибридная» терминология для частичного Firebase против Postgres в отдельных фичах.

    Рекомендация: для новых деплоев документируйте и задавайте DB_BACKEND_MODE. Если в документации «hybrid» заменяете на «self-hosted», делайте это в прозе и именах в новом коде, а не в строке enum DB_BACKEND_MODE без плана миграции.

    Auth.js и PostgreSQL

    Таблицы auth (users, accounts, sessions, verification_tokens, …) входят в схему Postgres при адаптере PostgreSQL. См. lib/auth/postgres-adapter.ts и data/schema.sql. Поддержка нескольких режимов кратко в Authentication.

    Связанная документация

    • Конфигурация окружения — сгруппированные секреты и URL (указатель на режимы бэкенда).
    • Push-уведомления (FCM) — токены хранятся через BackendSelector и режим.
    • Протокол Tunnel — транспорты против DB_BACKEND_MODE.
    • Выбор бэкенда БД (white-label) — продуктовое сравнение; env согласуйте с этой страницей.
    • Продакшен-подключение: k8s/ENV-PROD-WIRING.md (секреты кластера, build args, DB_BACKEND_MODE в образе против runtime).

    Открытое решение (именование)

    Если нужно, чтобы строка k8s-postgres-fcm в env читалась как self-hosted или postgres, потребуются: новое допустимое значение в backend-mode-config.ts, манифесты деплоя, секреты всех колец, CI и документация — или длительная депрекация с поддержкой алиасов. Только документационное переименование в «self-hosted» безопасно и уже отражено выше.