api, bot и worker, — разделяющими одну базу данных PostgreSQL
и один экземпляр Valkey, плюс одно приложение Next.js, обслуживающее и клиентский аккаунт, и рабочее место
оператора. Разделение сделано ради изоляции сбоев, а не ради масштаба: пакет из четырёхсот изменений подписок
не должен быть привязан к времени жизни HTTP-запроса, который его начал, а автоматические продления —
единственное место, где деньги двигаются без наблюдателя, — выполняются там, где ни один запрос не может их
отменить.
Кому предназначена каждая поверхность
Три префикса
/v1 намеренно держатся порознь. /v1/panel — браузерная поверхность и поэтому несёт проверки
cookie, CSRF и прав доступа; /v1/admin — машинная поверхность с одним долгоживущим токеном и без cookie;
/v1/account принадлежит клиенту и никогда не может дотянуться до операторского маршрута. Ещё два маршрута
публичны по необходимости: GET /v1/catalog/plans и POST /v1/payments/webhooks/{provider}, чья подлинность
обеспечивается подписью провайдера, а не учётными данными на самом маршруте.
Клиент не выбирает между чатом и браузером. Это один продукт с двумя поверхностями: корзина, начатая в чате, —
это та же корзина, которую показывает браузер, а ответ поддержки, прочитанный в вебе, перестаёт быть
непрочитанным в Telegram.
Начните отсюда
Быстрый старт
Поднимите стек Compose, погасите одноразовый токен настройки, создайте первого владельца и убедитесь, что
установка здорова.
Ваша первая продажа
От пустой установки до оплаченной подписки: тариф, версия с ценой, платёжный провайдер, бот и тестовая
покупка.
Справочник конфигурации
Каждая переменная окружения, её значение по умолчанию, какой процесс её читает и что она меняет.
Сравнение
Чем Omniflow отличается от Bedolaga и RemnaCore.
Что может клиент
Telegram-бот
Каждая команда, экран и сценарий: тарифы, оформление заказа, заказы, кошелёк, магазин, подарки, поддержка и
настройки, на русском и английском.
Веб-панель
Вход, дашборд, оформление заказа, магазин, поддержка, реферальная программа и собственные данные клиента на
/account.Подключение устройства
Инструкции по платформам, диплинки клиентов, QR-код, список устройств и ротация ссылки.
Уведомления и согласия
Классы уведомлений, маркетинговое согласие, тихие часы, ограничения частоты и лента новостей.
Приватность
Что клиент может экспортировать, как запрашивается удаление и чего Omniflow никогда не показывает и не
хранит.
Продажи и деньги
Каталог и промоакции
Тарифы, неизменяемые версии с ценами, локализация, публикация, пробные периоды, промокоды и персональные
предложения.
Дополнения и конфигуратор
Дополнительный трафик, слоты устройств и отряды — при оформлении заказа и в середине периода.
Подписки
Права на услуги, одновременность, арифметика повышения и понижения тарифа, льготный период, окончание и
восстановление.
Заказы и платежи
Машина состояний заказа, передача провайдеру, идемпотентность вебхуков, классификации и возвраты.
Кошелёк и книга проводок
Модель двойной записи, типы счетов, сгорающие бонусы и корректировки оператора.
Пополнение и сохранённые корзины
Пополнение по инициативе клиента, его лимиты и скользящее окно, а также корзина, которая переоценивается
перед покупкой.
Автоматическое продление
Сохранённые способы оплаты, запись согласия, расписание напоминаний о долге и неудачные списания.
Выдача доступа
Выдача доступа в Remnawave: операции, ключи идемпотентности, повторы, расхождения и сверка.
Подарки и цифровые товары
Покупка для другого человека и продажа Telegram Premium и Telegram Stars рядом с доступом к VPN.
Рассылки
Сегменты аудитории, определение которых показано рядом с их живым размером, и отправки, честно сообщающие о
блокировках.
Реферальная программа и лояльность
Атрибуция, квалификация, вознаграждения, выдаваемые ровно один раз, и вычисление уровней.
Коммуникация в реферальной программе
Что сообщают пригласившему, что сообщают приглашённому и чего ни одному из них не показывают о другом.
Клиенты и импорт
Конвейер импорта из Remnawave — предпросмотр, применение, возобновление — и экспорт в CSV.
Финансовые инварианты
Ограничения, которые обеспечивает схема, чтобы деньги нельзя было создать, потерять или посчитать дважды.
Интеграции
Remnawave
Адаптер, зафиксированная версия API, каждый вызов, который делает Omniflow, здоровье и расхождения.
Платёжные провайдеры
Telegram Stars, CryptoBot, YooKassa и ручное подтверждение — что каждый из них проводит и чего каждый не
умеет.
Telegram
BotFather, long polling против вебхука, домен Mini App и операторская группа.
OIDC
Единый вход для операторов и провайдеры входа для клиентов.
Административный API
Интеграция с
/v1/admin: токен, ключи идемпотентности, курсоры, problem-документы, идентификаторы запросов
и ограничения частоты запросов.Политика расширения
Какие поверхности публичны и стабильны, что расширяется одной лишь конфигурацией и что расширять
намеренно нельзя.
Эксплуатация
Развёртывание
Топология Compose, тома, теги образов, миграции, обновления и откат.
Совместимость и обновления
Поддерживаемая матрица версий, подписанные образы, окно обновления и политика устаревания.
Обратный прокси
Примеры для Caddy и Traefik, TLS, ограничения размера тела и то, как держать служебные эндпоинты вне
публичного хоста.
Панель администратора
Рабочее место оператора экран за экраном, каталог прав доступа и шесть встроенных ролей.
Операции администратора
Ежедневные регламенты, которые оператор выполняет из панели.
Настройки установки
Что хранят экраны настроек и что из этого действительно применяется во время работы.
Служба поддержки
Очереди, назначение, приоритет, теги, внутренние заметки, шаблоны ответов, объединение и отчёт по нагрузке.
Обязательные каналы
Требование подписки на канал Telegram до завершения покупки.
Контроль рисков
Источники блок-листов, хранимые как солёные хеши, правила аномалий и решения, которые всегда принимает
человек.
Наблюдаемость
Пробы, метрики, которые действительно пишутся, структурированные логи и сокрытие секретов.
Режим обслуживания
Блокировка новых покупок и удержание выдачи доступа без вмешательства в уже принятые деньги.
Задания и очереди
Надёжная очередь, виды заданий, мёртвые письма, повторы, периодические проходы и очистки по срокам хранения.
Операторские уведомления
Группа Telegram, одна тема форума на вид события и почему каждое уведомление не содержит содержимого.
Резервное копирование и восстановление
Зашифрованный вывод
pg_dump, проверка при каждой резервной копии, восстановление и отдельный фильтр
расшифровки.Безопасность
Учётные данные, сессии, секреты, транспорт, ограничения частоты запросов и границы приватности.
Диагностика неполадок
Симптомы, куда смотреть в первую очередь и что означает каждая классификация.
Анонимная телеметрия
Точная отправляемая полезная нагрузка, как её осмотреть и как её отключить.
Приватность
Что хранит Omniflow, зачем, как долго, и где документированное хранение пока не обеспечивается.
Надёжность и эксплуатация
Индикаторы уровня обслуживания, импортируемые дашборды и оповещения, что ограничено и сверяется, плавная деградация и рекомендации по ёмкости.
Приватность и ИИ
Что удаляет шлюз редактирования и какой предпросмотр использования данных показывается до включения чего
бы то ни было.
Провайдеры ИИ
Три адаптера, подключение модели на вашем железе, маршрутизация по функциям и что означает каждое
состояние на экране.
Управление ИИ
Провайдеры, включение по каждой функции, бюджеты на четырёх уровнях и экспорт решений.
MCP
Реестр серверов, разрешённые инструменты и правила, которым подчиняются обе стороны.
Архитектура и участие в разработке
Обзор архитектуры
Три процесса, пути запросов и почему модульный монолит.
Владение данными
Граница с Remnawave: что где живёт и что происходит, когда две стороны расходятся.
Технологии
Стек и причина, по которой каждая его часть в нём есть.
Модель угроз
Что находится под угрозой на каждой поверхности, какая мера защиты действительно существует, и где остаётся остаточный риск.
Разработка
Настройка рабочего пространства, генераторы, запуск стека и проверки, которые CI всё равно выполнит.
База данных
Схема, миграции Atlas, sqlc и правила, которым должна следовать миграция.
Тестирование
Модульное, интеграционное и браузерное покрытие и что каждый слой обязан доказывать.
Документация
Написание, проверка и поддержание русского дерева в соответствии с английским.
Архитектурные решения
Записи, ограничивающие развитие Omniflow, цена каждой из них и когда её пересматривать.
Процесс выпуска
Как влитый коммит становится версией и что проверяет и публикует рабочий процесс выпуска.
Чего Omniflow намеренно не делает
- Он не управляет Xray и не читает базу данных Remnawave. Каждое изменение на стороне VPN — это аутентифицированный вызов API Remnawave, сделанный конвейером выдачи доступа, чтобы он нёс ключ идемпотентности, политику повторов и историю. См. Владение данными.
- Он не показывает оператору ссылку на подписку, аппаратный идентификатор или сырую полезную нагрузку провайдера. Устройство называется непрозрачным дескриптором, который сервер разрешает обратно; история выдачи доступа возвращает статус, классификацию и идентификатор корреляции — и ничего больше.
- Он не удаляет финансовую, аудиторскую, согласительную, идентификационную историю и историю прав на услуги. Очистки по срокам хранения убирают только одноразовые операционные данные, а исправление кошелька — это компенсирующая проводка, а не правка. См. Финансовые инварианты.
- Он не перенастраивает себя из панели. Конфигурация времени выполнения — это переменные окружения, читаемые каждым процессом один раз при старте; разделы настроек установки в панели хранят то, что печатает оператор, и ни один процесс не перечитывает эти документы во время работы. См. Настройки установки и Конфигурацию.
- Он выполняет вызов модели только тогда, когда оператор нажимает «Проверить подключение». Эта кнопка — и есть весь рантайм ИИ в данной сборке: она распечатывает сохранённый ключ, просит у провайдера одно слово и записывает, ответил ли он. Всё остальное, что делают поверхности ИИ и MCP — регистрация провайдеров, включение функций по одной, бюджеты, белые списки инструментов, — сохраняется и пока не потребляется: ни одна функция не делает вызова, и ни один процесс не создаёт клиент MCP. См. Провайдеров ИИ и Управление ИИ.
- Он не запускает больше одного бота. Telegram доставляет обновления одному потребителю, поэтому
botработает ровно в одном экземпляре.apiиworkerдопускают сколько угодно реплик: периодические проходы — обслуживание заказов и платежей, очистки, продления, рассылки, сроки хранения, резервные копии — это задачи River, которые выполняются один раз за интервал на всю установку. См. Развёртывание.