Skip to main content
Omniflow — это платформа с открытым исходным кодом для коммерции, поддержки и маркетинга VPN-сервиса, который уже работает на Remnawave. Remnawave остаётся источником истины по VPN-пользователям, трафику, устройствам, ссылкам доступа, нодам, отрядам и состоянию Xray. Omniflow владеет всем, что нужно бизнесу вокруг этого: идентичностью клиента, версионируемым каталогом, заказами, платежами, кошельком с двойной записью, правами на услуги, надёжной выдачей доступа, поддержкой, рассылками, реферальной программой, лояльностью, контролем доступа операторов и журналом аудита, работающим только на добавление. Он никогда не подключается к базе данных Remnawave и никогда не управляет процессом Xray. Это один модуль Go с тремя точками входа — 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, которые выполняются один раз за интервал на всю установку. См. Развёртывание.
Omniflow находится в активной разработке. Закрепляйте выпуск по тегу, а не плавающий тег образа, читайте примечания к выпуску перед обновлением и сначала делайте резервную копию — обратных миграций нет, поэтому откат схемы — это восстановление из резервной копии.