Добавлена связь с фронтом админки

This commit is contained in:
2026-04-26 22:48:57 +03:00
parent 762fb1a4f2
commit 62bc62f990
4 changed files with 65 additions and 26 deletions

View File

@@ -238,13 +238,16 @@ docker-build-debug: ## Собрать Docker образ
docker-run: ## Запустить Docker контейнер (одиночный) docker-run: ## Запустить Docker контейнер (одиночный)
@echo "Запуск Docker контейнера..." @echo "Запуск Docker контейнера..."
@docker run -d \ @docker run -d \
--name eventhub \ --hostname eventhub.local \
-p 8080:8080 \ --env-file docker/.env \
-p 8081:8081 \ --name eventhub \
-p 8445:8445 \ -e NODE_NAME=eventhub@eventhub.local \
-p 8446:8446 \ -p 8080:8080 \
-v eventhub-data:/app/data \ -p 8081:8081 \
eventhub:latest -p 8445:8445 \
-p 8446:8446 \
-v eventhub-data:/app/data \
eventhub:latest
@echo "✅ Контейнер запущен на http://localhost:8080" @echo "✅ Контейнер запущен на http://localhost:8080"
docker-stop: ## Остановить Docker контейнер docker-stop: ## Остановить Docker контейнер
@@ -259,6 +262,11 @@ docker-logs: ## Показать логи Docker контейнера
docker-shell: ## Зайти в Docker контейнер docker-shell: ## Зайти в Docker контейнер
@docker exec -it eventhub sh @docker exec -it eventhub sh
docker-compose-build-app: ## Собрать Docker образ
@echo "Сборка Docker образа..."
@docker-compose -f docker/docker-compose.yml build --no-cache eventhub-node1 eventhub-node2 eventhub-node3
@echo "✅ Docker образ собран"
docker-compose-up: ## Запустить кластер (3 ноды) docker-compose-up: ## Запустить кластер (3 ноды)
@echo "Запуск кластера EventHub (3 ноды)..." @echo "Запуск кластера EventHub (3 ноды)..."
@docker-compose -f docker/docker-compose.yml --env-file docker/.env up -d @docker-compose -f docker/docker-compose.yml --env-file docker/.env up -d

View File

@@ -101,6 +101,16 @@ services:
- "traefik.enable=true" - "traefik.enable=true"
restart: unless-stopped restart: unless-stopped
# ================== Admin ui ==================
admin-ui:
build:
context: ../../EventHubFrontAdmin # путь к проекту админки
dockerfile: Dockerfile
networks:
- eventhub-net
restart: unless-stopped
labels:
- "traefik.enable=true"
# ================== Мониторинг ================== # ================== Мониторинг ==================
prometheus: prometheus:
image: prom/prometheus:latest image: prom/prometheus:latest

View File

@@ -19,11 +19,11 @@ http:
plugin: plugin:
coraza: coraza:
directives: directives:
# - "SecRuleEngine DetectionOnly" # - "SecRuleEngine DetectionOnly" # можно раскомментировать для тестирования
- "SecRuleEngine On" - "SecRuleEngine On"
- "SecDebugLog /dev/stdout" - "SecDebugLog /dev/stdout"
- "SecDebugLogLevel 2" - "SecDebugLogLevel 2"
# - "SecRule REQUEST_URI \"@rx /admin\" \"id:101,phase:1,log,deny,status:403\"" # - "SecRule REQUEST_URI \"@rx /admin\" \"id:101,phase:1,log,deny,status:403\""
- "SecRule ARGS \"@rx (union|select|insert|drop|alter)\" \"id:102,phase:2,log,deny,status:403\"" - "SecRule ARGS \"@rx (union|select|insert|drop|alter)\" \"id:102,phase:2,log,deny,status:403\""
api-ratelimit: api-ratelimit:
@@ -39,7 +39,7 @@ http:
burst: 5 burst: 5
routers: routers:
# REST API пользователей # --- REST API пользователей ---
api: api:
rule: "Host(`api.eventhub.local`)" rule: "Host(`api.eventhub.local`)"
entryPoints: ["web"] entryPoints: ["web"]
@@ -52,7 +52,7 @@ http:
middlewares: ["api-ratelimit", "waf"] middlewares: ["api-ratelimit", "waf"]
service: "api" service: "api"
# WebSocket пользователей (без WAF) # --- WebSocket пользователей (без WAF) ---
ws: ws:
rule: "Host(`ws.eventhub.local`)" rule: "Host(`ws.eventhub.local`)"
entryPoints: ["web"] entryPoints: ["web"]
@@ -64,33 +64,45 @@ http:
tls: true tls: true
service: "ws" service: "ws"
# Админский REST # --- Админ-панель (SPA) ---
admin-api: admin-ui:
rule: "Host(`admin.eventhub.local`)" rule: "Host(`admin.eventhub.local`) && !PathPrefix(`/api/`) && !PathPrefix(`/ws/`)"
entryPoints: ["web"]
middlewares: ["redirect-to-https"]
service: "admin-ui-service"
admin-ui-secure:
rule: "Host(`admin.eventhub.local`) && !PathPrefix(`/api/`) && !PathPrefix(`/ws/`)"
entryPoints: ["websecure"]
tls: true
service: "admin-ui-service"
# --- Проксирование /api/ на админский REST ---
admin-api-proxy:
rule: "Host(`admin.eventhub.local`) && PathPrefix(`/api/`)"
entryPoints: ["web"] entryPoints: ["web"]
middlewares: ["redirect-to-https", "admin-ratelimit", "waf"] middlewares: ["redirect-to-https", "admin-ratelimit", "waf"]
service: "admin-api" service: "admin-api"
admin-api-secure: admin-api-proxy-secure:
rule: "Host(`admin.eventhub.local`)" rule: "Host(`admin.eventhub.local`) && PathPrefix(`/api/`)"
entryPoints: ["websecure"] entryPoints: ["websecure"]
tls: true tls: true
middlewares: ["admin-ratelimit", "waf"] middlewares: ["admin-ratelimit", "waf"]
service: "admin-api" service: "admin-api"
# Админский WebSocket (без WAF) # --- Проксирование /ws/ на админский WebSocket ---
admin-ws: admin-ws-proxy:
rule: "Host(`admin-ws.eventhub.local`)" rule: "Host(`admin.eventhub.local`) && PathPrefix(`/ws/`)"
entryPoints: ["web"] entryPoints: ["web"]
middlewares: ["redirect-to-https"] middlewares: ["redirect-to-https"]
service: "admin-ws" service: "admin-ws"
admin-ws-secure: admin-ws-proxy-secure:
rule: "Host(`admin-ws.eventhub.local`)" rule: "Host(`admin.eventhub.local`) && PathPrefix(`/ws/`)"
entryPoints: ["websecure"] entryPoints: ["websecure"]
tls: true tls: true
service: "admin-ws" service: "admin-ws"
services: services:
# Пользовательский REST API (failover) # --- Пользовательский REST API (failover) ---
api: api:
failover: failover:
service: api-live service: api-live
@@ -110,7 +122,7 @@ http:
servers: servers:
- url: "http://fallback:80" - url: "http://fallback:80"
# Пользовательский WebSocket # --- Пользовательский WebSocket ---
ws: ws:
loadbalancer: loadbalancer:
servers: servers:
@@ -118,7 +130,7 @@ http:
- url: "http://eventhub-node2:8081" - url: "http://eventhub-node2:8081"
- url: "http://eventhub-node3:8081" - url: "http://eventhub-node3:8081"
# Админский REST (failover) # --- Админский REST (failover) ---
admin-api: admin-api:
failover: failover:
service: admin-api-live service: admin-api-live
@@ -138,10 +150,16 @@ http:
servers: servers:
- url: "http://fallback:80" - url: "http://fallback:80"
# Админский WebSocket # --- Админский WebSocket ---
admin-ws: admin-ws:
loadbalancer: loadbalancer:
servers: servers:
- url: "http://eventhub-node1:8446" - url: "http://eventhub-node1:8446"
- url: "http://eventhub-node2:8446" - url: "http://eventhub-node2:8446"
- url: "http://eventhub-node3:8446" - url: "http://eventhub-node3:8446"
# --- SPA (админ‑панель) ---
admin-ui-service:
loadbalancer:
servers:
- url: "http://admin-ui:80"

3
src/config/local.vm.args Normal file
View File

@@ -0,0 +1,3 @@
-sname ${NODE_NAME}
-setcookie ${RELEASE_COOKIE}
-kernel inet_dist_use_interface {0,0,0,0}