Skip to content

invdevv/olcwave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OLCWave

Панель управления для OLCRTC, интегрированная с Remnawave.

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

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

Возможности

  • Интеграция с Remnawave - статус пользователя и срок действия подписки берутся напрямую из Remnawave
  • Профили - переиспользуемые YAML-шаблоны конфигурации OLCRTC
  • Автоматическая генерация конфигурации - панель сама заполняет уникальные параметры для каждого пользователя (crypto.key, room.id итд)
  • Управление контейнерами - запуск, остановка, перезапуск и удаление OLCRTC-контейнеров, просмотр логов в реальном времени и текущего config.yaml
  • Учёт трафика - SOCKS-прокси внутри каждого контейнера считает переданные данные, backend собирает статистику по пользователям, контролирует лимиты и позволяет сбрасывать счётчики.
  • Подписки - одна ссылка для каждого пользователя, которая возвращает пакет всех доступных локаций в формате, совместимом с OLCBox

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

Для запуска нужны Docker, Docker Compose и работающий инстанс Remnawave.

git clone https://github.com/invdevv/olcwave.git
cd olcwave

chmod +x install.sh
./install.sh

После установки откройте веб-панель и войдите, используя ADMIN_USERNAME и ADMIN_PASSWORD из файла backend/.env.

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

docs/installation.md

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

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

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

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

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

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

Лицензия

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

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

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

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

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

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

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

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

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

About

Panel for OLCRTC integrated with RemnaWave

Resources

License

Stars

22 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors