Панель управления для 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 на сервер в России
ВАЖНО: некоторые шаги скрипта могут занимать от 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После установки откройте веб-панель и войдите.
Или установите всё вручную:
Панель администратора Клиент пользователя
│ │
▼ ▼
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 ❤️