Skip to content

Repository files navigation

OLCWave

Панель управления для OLCRTC.

OLCWave хранит шаблоны конфигураций OLCRTC (profiles). Когда пользователь добавляет подписку, панель проверяет его (через Remnawave или локально), создаёт отдельную конфигурацию OLCRTC для каждого профиля, запускает Docker-контейнеры и возвращает готовую к импорту подписку.

Также панель отслеживает использование трафика пользователей и автоматически останавливает контейнеры при достижении установленного лимита.

Работает в двух режимах:

  • С Remnawave (RW_ENABLED=true) — пользователи и подписки синхронизируются с Remnawave
  • Без Remnawave (RW_ENABLED=false) — полностью автономная работа, пользователи создаются локально

Содержание

Возможности

  • Интеграция с Remnawave (опционально) - статус пользователя и срок действия подписки берутся напрямую из Remnawave. Опциональная фильтрация по squad - выдавайте подписки только участникам нужной группы
  • Автономный режим - полноценная работа без Remnawave: создание пользователей через панель, ручное управление трафиком и подписками
  • Профили - переиспользуемые YAML-шаблоны конфигурации OLCRTC Примеры профилей
  • Автоматическая генерация конфигурации - панель сама заполняет уникальные параметры для каждого пользователя (crypto.key, room.id итд)
  • Автоматическое создание комнат - для некоторых провайдеров панель сама создаёт комнаты через их API. Больше не нужно вручную создавать комнаты и копировать ID. Просто укажите токен - комнаты будут создаваться автоматически для каждого пользователя. Подробнее в docs/profiles.md
  • Управление контейнерами - запуск, остановка, перезапуск и удаление OLCRTC-контейнеров, просмотр логов в реальном времени и текущего config.yaml
  • Учёт трафика - SOCKS-прокси внутри каждого контейнера считает переданные данные, backend собирает статистику по пользователям, контролирует лимиты и позволяет сбрасывать счётчики.
  • Routing - маршрутизация трафика контейнеров через внешние прокси (SOCKS5, VLESS и др.) с помощью Xray-core. Направляйте трафик заблокированных сайтов через прокси, российские сайты - напрямую, остальные - за границу.
  • Подписки - одна ссылка для каждого пользователя, которая возвращает пакет всех доступных локаций в формате, совместимом с OLCBox
  • Subscription Page - страница для пользователей по подписочному URL: скачивание OLCBox, пошаговая инструкция, ссылка для копирования и советы. Браузер видит HTML, клиентское приложение - raw-конфигурации. Подробнее

Быстрый старт

Для запуска нужны Docker, Docker Compose. Remnawave не обязателен — можно работать в автономном режиме.

Рекомендую устанавливать OLCWave на сервер в России

НЕ рядом с remnawave (если используете интеграцию)

ВАЖНО: некоторые шаги скрипта могут занимать от 1 до 10 минут. НЕ прирывайте скрипт

apt update && apt install git
cd /opt
git clone https://github.com/invdevv/olcwave.git && cd olcwave

chmod +x install.sh
./install.sh

После установки откройте веб-панель и войдите.

Или установите всё вручную:

docs/installation.md

Обзор архитектуры

Панель администратора             Клиент пользователя

        │                                 │
        ▼                                 ▼
Frontend (React SPA)                /sub/{uuid}
        │                                 │
        └──────────────┬──────────────────┘
                       ▼
                Backend (FastAPI)
                       │
        ┌──────────────┼──────────────────────┐
        ▼              ▼                      ▼
   PostgreSQL     Remnawave API       Docker daemon
 (пользователи,  (ОПЦИОНАЛЬНО:       (запускает
  профили,        проверка            контейнеры
  трафик,         пользователя,       OLCRTC + XrayCore)
  routing)        срок действия)
                                               │
                                               ▼
                                      Контейнеры OLCRTC
                                    olcwave-<tag>-<uuid>
                                               │
                                     (при enabled routing)
                                               ▼
                                       olcwave-xraycore
                                        (Xray-core)
  • Frontend - приложение на React + Vite. В production собирается в статические файлы и обслуживается Caddy. Включает валидацию YAML/JSON конфигураций на клиенте.
  • Backend - FastAPI-приложение, которое отвечает за всю логику: аутентификацию, профили, опциональную работу с Remnawave, управление контейнерами через Docker Socket, генерацию подписок, routing через Xray-core и фоновый учёт трафика.
  • PostgreSQL - хранит локальные данные пользователей, шаблоны профилей и конфигурацию routing.
  • Remnawave API (опционально) - если включено, backend синхронизирует пользователей и проверяет подписки через Remnawave.
  • Docker - backend собирает образ olcrtc и запускает отдельный контейнер для каждой пары "профиль - пользователь" на Docker-хосте. При включённом routing также управляет контейнером olcwave-xraycore.
  • OLCRTC - основной транспорт. Каждый контейнер также запускает SOCKS-прокси, который сохраняет статистику трафика в stats.json. Backend периодически считывает эти данные.
  • XrayCore (опционально) - контейнер с Xray-core, маршрутизирующий трафик OLCRTC через внешние прокси.

Подробное описание работы системы в docs/architecture.md.

Документация

Документ Описание
installation.md Полная инструкция по установке на чистый Linux-сервер
configuration.md Описание всех переменных окружения и runtime-настроек
profiles.md Работа профилей, генерация конфигураций и примеры YAML
routing.md Маршрутизация трафика через Xray-core, настройка и примеры
architecture.md Архитектура системы, потоки запросов, учёт трафика и Caddy
development.md Локальная разработка и рекомендации для участников проекта
troubleshooting.md Частые проблемы и способы их решения
subscription_page.md Страница подписки для пользователей

Лицензия

Проект распространяется под лицензией GNU AGPL v3.

Подробнее см. файл LICENSE.

Поддержать проект

OLcWave - это open-source проект, который развивается самостоятельно.

Если вы используете проект и хотите помочь с дальнейшей разработкой, вы можете:

  • поставить ⭐ на GitHub;
  • сообщать о найденных проблемах;
  • предлагать новые идеи;
  • поддержать разработку финансово.

TON кошелек: UQBJ7yNz6eKZ3FPwGORmVld8p986TEc-bzX-uoRmV4_rbPsR

Любая поддержка помогает уделять больше времени развитию проекта.

Спасибо всем, кто поддерживает OLcWave ❤️

About

Panel for OLCRTC integrated with RemnaWave

Topics

Resources

Stars

109 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages