HEAD
Современный веб-интерфейс для управления системой "Неваляшка", построенный на Nuxt 3, Vue 3, TypeScript и Element Plus.
- Подключение к нодам по URL
- Сохранение списка нод для быстрого доступа
- Отображение статуса подключения
- Дашборд с основными метриками
- Просмотр списка модулей на ноде
- Просмотр модулей из подключенных реестров
- Добавление модулей из реестров на ноду
- Копирование модулей с новым ID
- Удаление модулей
- Просмотр исходного кода модулей (Elixir)
- Создание и редактирование сервисов
- Настройка входных и выходных каналов
- Запуск и остановка отдельных сервисов
- Запуск и остановка всех сервисов
- Просмотр запущенных сервисов
- Привязка конфигураций к сервисам
- Создание конфигураций с JSON параметрами
- Редактирование конфигураций с валидацией JSON
- Удаление конфигураций
- Просмотр параметров конфигураций
- Подключение внешних реестров
- Просмотр модулей в реестрах
- Добавление модулей из реестров на ноду
- Удаление реестров
- Nuxt 3 - Vue.js фреймворк
- Vue 3 - Composition API
- TypeScript - строгая типизация
- Element Plus - UI библиотека
- Pinia - управление состоянием
- Axios - HTTP клиент
- Tailwind CSS - утилитарный CSS
- VueUse - композиционные утилиты
npm i -g pnpmpnpm installpnpm devПриложение будет доступно по адресу: http://localhost:3000
pnpm build
pnpm previewСоздайте файл .env:
NUXT_PUBLIC_API_BASE_URL=http://localhost:4000- Подключение к ноде: введите URL ноды и нажмите "Подключиться"
- Управление модулями: просмотр, добавление, копирование и удаление модулей
- Управление сервисами: создание, настройка и запуск сервисов
- Управление конфигурациями: создание и редактирование JSON конфигураций
- Управление реестрами: подключение реестров и добавление модулей
nevalyashka-ui/
├── api/ # OpenAPI спецификация
├── assets/styles/ # Стили
├── components/ # Vue компоненты
├── composables/ # Композиционные функции
├── layouts/ # Layouts
├── pages/ # Страницы
├── plugins/ # Nuxt плагины
├── stores/ # Pinia stores
├── types/ # TypeScript типы
├── utils/ # Утилиты
└── nuxt.config.ts # Конфигурация
Типы автоматически генерируются из OpenAPI спецификации:
npx openapi-typescript api/openapi.yaml -o types/api-schema.tsMIT
Weeblix is a platform automation project designed for real-time streaming data processing. It enables the rapid organization and reorganization of competence centers and decision-making hubs, forming a situational center network with arbitrary complex connectivity for seamless data exchange and high resilience against system node failures.
Weeblix implements a concept of deploying data processing nodes and registries that centrally provide processing modules and their configurations to the nodes. Data processing is orchestrated both within individual nodes and between them. This approach significantly enhances system flexibility, simplifies deployment, and streamlines management on container orchestration platforms like Kubernetes (K8s).
The agent component of Weeblix has a minimal footprint, allowing it to be deployed on IoT devices. This capability enables the creation of highly efficient data collection and processing networks with pre-processing and aggregation nodes positioned directly near edge devices, thereby reducing bandwidth requirements for external connections.
A Weeblix node consists of a set of services. Each service is composed of a processing module (retrieved from pre-connected registries) and its configuration (also from the registry). Services exchange information via named channels.
The entire system is optimized for in-memory data processing. Extraneous information that is not directed to any specific channel is not stored, unless a dedicated logging or archiving module is explicitly connected.
All node and registry configurations can be easily distributed, including via files, which allows for the mass deployment of nodes in fully automated modes. This makes Weeblix highly suitable for production environments.
Technically, all Weeblix nodes and registries are managed via a REST HTTP API. An OpenAPI specification is provided, ensuring seamless integration of any operations with Weeblix into existing data processing workflows.
Weeblix is highly optimized for data transmission and processing in Smart Home networks and Industrial IoT. In these scenarios, network segments containing various sensors (temperature, pressure, leak detection, etc.) can be isolated. Information is collected by an aggregating Weeblix node, which then transmits strictly targeted data (filtering out statistical noise and data from faulty sensors) rather than raw streams to an upstream controller or user interface.
IT teams can leverage Weeblix when setting up testing and research environments that require switching between mock systems and their real counterparts during integration testing or when analyzing complex interactions between systems.
Weeblix nodes provide a standard interface and logging system, alongside an open mechanism for connecting modules. This allows for processing any type of data using any method, while maintaining standardized resource and log management, which significantly reduces maintenance overhead for DevOps teams.
Situational centers represent another key application scenario for Weeblix. The standardized interaction interface allows for the connection of external information sources, including those managed by external teams. Simplified interface alignment automatically reduces connection overhead and, most importantly, minimizes the time required for such integrations. Easy channel management allows for connecting new information supply channels and disconnecting outdated or unreliable ones without disrupting the overall system operations.
DevOps teams should consider Weeblix for building large, distributed ETL (Extract, Transform, Load) data processing systems utilizing multiple distinct nodes, all of which are standardly managed and monitored in Kubernetes. Traditional ETL systems often restrict monitoring and debugging to their internal methods and interfaces. A system based on Weeblix nodes enables independent monitoring for each node, utilizing the standard monitoring tools of the container management platform hosting the nodes.
To build and run the project locally in development mode:
iex -S mixTo compile the project for production:
MIX_ENV=prod mix releaseTo build Docker images for the registry and nodes:
cd docker
./build.sh register
./build.sh nodeTo run the built Docker images:
docker run -ti --rm -p 4000:4000 knodlang/weeblix:register
docker run -ti --rm -p 4001:4000 knodlang/weeblix:registerBy default:
- The registry is available at
http://localhost:4000 - The node is available at
http://localhost:4001
This project is licensed under the terms specified in the LICENSE file. 00446561adb6a2f47fc1fe917c2e32ec1e6243dc