Remove legacy eventhub.local hosts and switch to dev/ift/stage
CI / test (push) Failing after 11m15s
Deploy IFT (core) / deploy-ift-core (push) Failing after 26m15s

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-08 17:52:39 +03:00
parent 4a69ef8cd1
commit 6890dffdfe
2 changed files with 132 additions and 194 deletions
+132 -132
View File
@@ -1,14 +1,14 @@
.PHONY: help clean compile shell test eunit test-api test-all \ .PHONY: help clean compile shell test eunit test-api test-all \
dialyzer xref cover docs release run stop logs dialyzer xref cover docs release run stop logs
# Цвета для вывода (только для команд, где нужны) # ????? ??? ?????? (?????? ??? ??????, ??? ?????)
GREEN := \033[0;32m GREEN := \033[0;32m
YELLOW := \033[1;33m YELLOW := \033[1;33m
RED := \033[0;31m RED := \033[0;31m
BLUE := \033[0;34m BLUE := \033[0;34m
NC := \033[0m NC := \033[0m
# Переменные # ??????????
REBAR3 := rebar3 REBAR3 := rebar3
SNAME := eventhub SNAME := eventhub
SHELL := /bin/bash SHELL := /bin/bash
@@ -16,8 +16,8 @@ SHELL := /bin/bash
# ============================================================================ # ============================================================================
# HELP # HELP
# ============================================================================ # ============================================================================
help: ## Показать это сообщение help: ## ???????? ??? ?????????
@echo "EventHub - Makefile команды:" @echo "EventHub - Makefile ???????:"
@echo "" @echo ""
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?## "}; {printf " %-20s %s\n", $$1, $$2}' awk 'BEGIN {FS = ":.*?## "}; {printf " %-20s %s\n", $$1, $$2}'
@@ -25,40 +25,40 @@ help: ## Показать это сообщение
# ============================================================================ # ============================================================================
# BUILD # BUILD
# ============================================================================ # ============================================================================
compile: ## Скомпилировать проект compile: ## ?????????????? ??????
@echo "Компиляция проекта..." @echo "?????????? ???????..."
@$(REBAR3) compile @$(REBAR3) compile
@echo "✓ Компиляция завершена" @echo "? ?????????? ?????????"
clean: ## Очистить проект clean: ## ???????? ??????
@echo "Очистка проекта..." @echo "??????? ???????..."
@$(REBAR3) clean @$(REBAR3) clean
#@rm -rf _build build/ct_run.* deps logs *.log #@rm -rf _build build/ct_run.* deps logs *.log
@rm -rf _build logs/ct_run.* deps doc app *.log @rm -rf _build logs/ct_run.* deps doc app *.log
@echo "✓ Очистка завершена" @echo "? ??????? ?????????"
deps: ## Установить зависимости deps: ## ?????????? ???????????
@echo "Установка зависимостей..." @echo "????????? ????????????..."
@$(REBAR3) get-deps @$(REBAR3) get-deps
@echo "✓ Зависимости установлены" @echo "? ??????????? ???????????"
update-deps: ## Обновить зависимости update-deps: ## ???????? ???????????
@echo "Обновление зависимостей..." @echo "?????????? ????????????..."
@$(REBAR3) update-deps @$(REBAR3) update-deps
@echo "✓ Зависимости обновлены" @echo "? ??????????? ?????????"
# ============================================================================ # ============================================================================
# DEVELOPMENT # DEVELOPMENT
# ============================================================================ # ============================================================================
shell: ## Запустить интерактивную оболочку shell: ## ????????? ????????????? ????????
@echo "Запуск Erlang shell..." @echo "?????? Erlang shell..."
@$(REBAR3) shell --sname $(SNAME) @$(REBAR3) shell --sname $(SNAME)
run: ## Запустить приложение (foreground) run: ## ????????? ?????????? (foreground)
@echo "Запуск приложения..." @echo "?????? ??????????..."
@$(REBAR3) shell --sname $(SNAME) @$(REBAR3) shell --sname $(SNAME)
test-server: ## Запустить тестовый сервер в фоне test-server: ## ????????? ???????? ?????? ? ????
@echo "Cleaning old data..." @echo "Cleaning old data..."
@rm -rf Mnesia.* @rm -rf Mnesia.*
@echo "Starting server..." @echo "Starting server..."
@@ -66,39 +66,39 @@ test-server: ## Запустить тестовый сервер в фоне
@echo "PID: $$!" @echo "PID: $$!"
@for i in 1 2 3 4 5 6 7 8 9 10; do \ @for i in 1 2 3 4 5 6 7 8 9 10; do \
if curl -s http://localhost:8080/health | grep -q "ok"; then \ if curl -s http://localhost:8080/health | grep -q "ok"; then \
echo " Server ready at http://localhost:8080"; \ echo "? Server ready at http://localhost:8080"; \
break; \ break; \
fi; \ fi; \
sleep 1; \ sleep 1; \
done done
stop: ## Остановить приложение stop: ## ?????????? ??????????
@echo "Остановка приложения..." @echo "????????? ??????????..."
@pkill -f "rebar3 shell --sname $(SNAME)" || true @pkill -f "rebar3 shell --sname $(SNAME)" || true
@pkill -f "beam.*$(SNAME)" || true @pkill -f "beam.*$(SNAME)" || true
@pkill -f beam.smp || true @pkill -f beam.smp || true
@echo "✓ Приложение остановлено" @echo "? ?????????? ???????????"
restart: stop run ## Перезапустить приложение restart: stop run ## ????????????? ??????????
# ============================================================================ # ============================================================================
# TESTING # TESTING
# ============================================================================ # ============================================================================
test: eunit ## Запустить все тесты (алиас для eunit) test: eunit ## ????????? ??? ????? (????? ??? eunit)
eunit: ## Запустить EUnit тесты eunit: ## ????????? EUnit ?????
@echo "Запуск EUnit тестов..." @echo "?????? EUnit ??????..."
@$(REBAR3) eunit --sname $(SNAME)_test --verbose @$(REBAR3) eunit --sname $(SNAME)_test --verbose
eunit-module: ## Запустить тесты для модуля (make eunit-module MODULE=core_calendar_tests) eunit-module: ## ????????? ????? ??? ?????? (make eunit-module MODULE=core_calendar_tests)
@echo "Запуск тестов для модуля $(MODULE)..." @echo "?????? ?????? ??? ?????? $(MODULE)..."
@$(REBAR3) eunit --sname $(SNAME)_test --module=$(MODULE) --verbose @$(REBAR3) eunit --sname $(SNAME)_test --module=$(MODULE) --verbose
eunit-verbose: ## Запустить EUnit тесты с подробным выводом eunit-verbose: ## ????????? EUnit ????? ? ????????? ???????
@echo "Запуск EUnit тестов (verbose)..." @echo "?????? EUnit ?????? (verbose)..."
@$(REBAR3) eunit --sname $(SNAME)_test --verbose @$(REBAR3) eunit --sname $(SNAME)_test --verbose
test-api: ## Запустить Common Test для API test-api: ## ????????? Common Test ??? API
@echo "Cleaning old data..." @echo "Cleaning old data..."
@rm -rf logs/test/ct/ct_run.* @rm -rf logs/test/ct/ct_run.*
@bash scripts/fix-rebar-unit-symlink.sh @bash scripts/fix-rebar-unit-symlink.sh
@@ -116,10 +116,10 @@ test-api-remote:
test-api-remote-cluster: test-api-remote-cluster:
@rm -rf logs/test/ct/ct_run.* @rm -rf logs/test/ct/ct_run.*
@CT_MODE=remote \ @CT_MODE=remote \
API_HOST=https://api.eventhub.local/api \ API_HOST=https://api.stage.eventhub.local/api \
WS_HOST=wss://ws.eventhub.local \ WS_HOST=wss://ws.stage.eventhub.local \
ADMIN_API_HOST=https://admin-api.eventhub.local/api \ ADMIN_API_HOST=https://admin-api.stage.eventhub.local/api \
ADMIN_WS_HOST=wss://admin-ws.eventhub.local \ ADMIN_WS_HOST=wss://admin-ws.stage.eventhub.local \
rebar3 ct rebar3 ct
test-api-docker: test-api-docker:
@@ -132,38 +132,38 @@ test-api-docker:
-e "ADMIN_WS_HOST=ws://eventhub:8446" \ -e "ADMIN_WS_HOST=ws://eventhub:8446" \
eventhub-tests eventhub-tests
test-all: eunit test-api ## Запустить ВСЕ тесты (EUnit + API) test-all: eunit test-api ## ????????? ??? ????? (EUnit + API)
@echo "========================================" @echo "========================================"
@echo " ВСЕ ТЕСТЫ ПРОЙДЕНЫ!" @echo " ??? ????? ????????!"
@echo "========================================" @echo "========================================"
# ============================================================================ # ============================================================================
# LOAD TESTING # LOAD TESTING
# ============================================================================ # ============================================================================
tsung-test: ## Запустить нагрузочный тест Tsung tsung-test: ## ????????? ??????????? ???? Tsung
@echo "Запуск нагрузочного теста Tsung..." @echo "?????? ???????????? ????? Tsung..."
@mkdir -p logs/tsung @mkdir -p logs/tsung
@tsung -f test/tsung/eventhub_http.xml -l logs/tsung start @tsung -f test/tsung/eventhub_http.xml -l logs/tsung start
@echo "Отчёт: logs/tsung/*/report.html" @echo "?????: logs/tsung/*/report.html"
tsung-emulate: ## Запустить нагрузочный тест Tsung tsung-emulate: ## ????????? ??????????? ???? Tsung
@rm -rf logs/tsung @rm -rf logs/tsung
@echo "Запуск нагрузочного теста Tsung..." @echo "?????? ???????????? ????? Tsung..."
@mkdir -p logs/tsung @mkdir -p logs/tsung
@tsung -f test/tsung/eventhub_tsung.xml -l logs/tsung start @tsung -f test/tsung/eventhub_tsung.xml -l logs/tsung start
@echo "Отчёт: http://localhost:8091/ или logs/tsung/*/report.html" # <tsung loglevel="debug" dumptraffic="true" version="1.0"> @echo "?????: http://localhost:8091/ ??? logs/tsung/*/report.html" # <tsung loglevel="debug" dumptraffic="true" version="1.0">
wrk-register: ## Нагрузочный тест регистрации (wrk2) wrk-register: ## ??????????? ???? ??????????? (wrk2)
@wrk -t4 -c100 -d30s -t100 -s test/wrk/scripts/wrk_register.lua https://api.eventhub.local/api/v1/register @wrk -t4 -c100 -d30s -t100 -s test/wrk/scripts/wrk_register.lua https://api.stage.eventhub.local/api/v1/register
wrk-search: ## Нагрузочный тест поиска (wrk2) wrk-search: ## ??????????? ???? ?????? (wrk2)
@TOKEN=$$(curl -s -X POST https://api.eventhub.local/api/v1/register \ @TOKEN=$$(curl -s -X POST https://api.stage.eventhub.local/api/v1/register \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"email":"wrktest@test.com","password":"pass"}' | \ -d '{"email":"wrktest@test.com","password":"pass"}' | \
grep -o '"token":"[^"]*"' | cut -d'"' -f4); \ grep -o '"token":"[^"]*"' | cut -d'"' -f4); \
wrk -t4 -c100 -d30s -t200 \ wrk -t4 -c100 -d30s -t200 \
-H "Authorization: Bearer $$TOKEN" \ -H "Authorization: Bearer $$TOKEN" \
https://api.eventhub.local/api/v1/search?type=event\&q=test https://api.stage.eventhub.local/api/v1/search?type=event\&q=test
eventhub-emulator: eventhub-emulator:
@docker run --rm --network host \ @docker run --rm --network host \
@@ -179,61 +179,61 @@ eventhub-emulator:
eventhub-emulator eventhub-emulator
curl-health: curl-health:
for i in {1..2}; do curl -k -s -o /dev/null -w "%{http_code}\n" -H "Host: api.eventhub.local" https://localhost/api/health; done for i in {1..2}; do curl -k -s -o /dev/null -w "%{http_code}\n" -H "Host: api.stage.eventhub.local" https://localhost/api/health; done
wrk-health: ## Нагрузочный тест health (wrk2) wrk-health: ## ??????????? ???? health (wrk2)
wrk -t4 -c100 -d30s -t100 \ wrk -t4 -c100 -d30s -t100 \
-H "Host: api.eventhub.local" \ -H "Host: api.stage.eventhub.local" \
https://api.eventhub.local/api/health https://api.stage.eventhub.local/api/health
# ============================================================================ # ============================================================================
# CODE QUALITY # CODE QUALITY
# ============================================================================ # ============================================================================
dialyzer: ## Запустить Dialyzer (статический анализ) dialyzer: ## ????????? Dialyzer (??????????? ??????)
@echo "Запуск Dialyzer..." @echo "?????? Dialyzer..."
@$(REBAR3) dialyzer @$(REBAR3) dialyzer
@echo " Dialyzer завершён" @echo "? Dialyzer ????????"
xref: ## Запустить Xref (кросс-ссылки) xref: ## ????????? Xref (?????-??????)
@echo "Запуск Xref..." @echo "?????? Xref..."
@$(REBAR3) xref @$(REBAR3) xref
@echo " Xref завершён" @echo "? Xref ????????"
cover: ## Запустить тесты с покрытием кода cover: ## ????????? ????? ? ????????? ????
@echo "Запуск тестов с покрытием..." @echo "?????? ?????? ? ?????????..."
@$(REBAR3) eunit --sname $(SNAME)_test --cover @$(REBAR3) eunit --sname $(SNAME)_test --cover
@$(REBAR3) cover --verbose @$(REBAR3) cover --verbose
@echo "✓ Отчёт о покрытии в _build/test/cover/" @echo "? ????? ? ???????? ? _build/test/cover/"
docs: ## Сгенерировать документацию (EDoc) docs: ## ????????????? ???????????? (EDoc)
@echo "Генерация документации..." @echo "????????? ????????????..."
@$(REBAR3) edoc @$(REBAR3) edoc
@echo "✓ Документация в doc/" @echo "? ???????????? ? doc/"
# ============================================================================ # ============================================================================
# RELEASE & DOCKER # RELEASE & DOCKER
# ============================================================================ # ============================================================================
release: ## Собрать релиз release: ## ??????? ?????
@echo "Сборка релиза..." @echo "?????? ??????..."
@$(REBAR3) as prod release @$(REBAR3) as prod release
@echo "✓ Релиз собран в _build/prod/rel/eventhub/" @echo "? ????? ?????? ? _build/prod/rel/eventhub/"
# ============================================================================ # ============================================================================
# DOCKER # DOCKER
# ============================================================================ # ============================================================================
docker-build: ## Собрать Docker образ docker-build: ## ??????? Docker ?????
@echo "Сборка Docker образа..." @echo "?????? Docker ??????..."
@docker build -f docker/Dockerfile -t eventhub:latest . @docker build -f docker/Dockerfile -t eventhub:latest .
@echo " Docker образ собран" @echo "? Docker ????? ??????"
docker-build-debug: ## Собрать Docker образ docker-build-debug: ## ??????? Docker ?????
@echo "Сборка Docker образа..." @echo "?????? Docker ??????..."
@docker build -f docker/Debug.Dockerfile -t eventhub-debug:latest . @docker build -f docker/Debug.Dockerfile -t eventhub-debug:latest .
@echo " Docker образ собран" @echo "? Docker ????? ??????"
docker-run: ## Запустить Docker контейнер (одиночный) docker-run: ## ????????? Docker ????????? (?????????)
@echo "Запуск Docker контейнера..." @echo "?????? Docker ??????????..."
@docker run -d \ @docker run -d \
--hostname eventhub.local \ --hostname eventhub.local \
--env-file docker/.env \ --env-file docker/.env \
@@ -245,29 +245,29 @@ docker-run: ## Запустить Docker контейнер (одиночный)
-p 8446:8446 \ -p 8446:8446 \
-v eventhub-data:/app/data \ -v eventhub-data:/app/data \
eventhub:latest eventhub:latest
@echo "✅ Контейнер запущен на http://localhost:8080" @echo "? ????????? ??????? ?? http://localhost:8080"
docker-stop: ## Остановить Docker контейнер docker-stop: ## ?????????? Docker ?????????
@echo "Остановка Docker контейнера..." @echo "????????? Docker ??????????..."
@docker stop eventhub 2>/dev/null || true @docker stop eventhub 2>/dev/null || true
@docker rm eventhub 2>/dev/null || true @docker rm eventhub 2>/dev/null || true
@echo "✅ Контейнер остановлен" @echo "? ????????? ??????????"
docker-logs: ## Показать логи Docker контейнера docker-logs: ## ???????? ???? Docker ??????????
@docker logs -f eventhub @docker logs -f eventhub
docker-shell: ## Зайти в Docker контейнер docker-shell: ## ????? ? Docker ?????????
@docker exec -it eventhub sh @docker exec -it eventhub sh
docker-compose-build-app: ## Собрать Docker образ docker-compose-build-app: ## ??????? Docker ?????
@echo "Сборка Docker образа..." @echo "?????? Docker ??????..."
@docker-compose -f docker/docker-compose.yml build --no-cache eventhub-node1 eventhub-node2 eventhub-node3 @docker-compose -f docker/docker-compose.yml build --no-cache eventhub-node1 eventhub-node2 eventhub-node3
@echo " Docker образ собран" @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
@echo "✅ Кластер запущен" @echo "? ??????? ???????"
@echo "Node 1: http://localhost:8080" @echo "Node 1: http://localhost:8080"
@echo "Node 2: http://localhost:8082" @echo "Node 2: http://localhost:8082"
@echo "Node 3: http://localhost:8084" @echo "Node 3: http://localhost:8084"
@@ -278,42 +278,42 @@ docker-compose-up: ## Запустить кластер (3 ноды)
@echo "LogLynx: http://localhost:6123" @echo "LogLynx: http://localhost:6123"
@echo "Swagger UI: http://localhost:8447" @echo "Swagger UI: http://localhost:8447"
docker-compose-down: ## Остановить кластер docker-compose-down: ## ?????????? ???????
@echo "Остановка кластера..." @echo "????????? ????????..."
@docker-compose -f docker/docker-compose.yml --env-file docker/.env down @docker-compose -f docker/docker-compose.yml --env-file docker/.env down
@echo "✅ Кластер остановлен" @echo "? ??????? ??????????"
docker-compose-logs: ## Показать логи кластера docker-compose-logs: ## ???????? ???? ????????
@docker-compose -f docker/docker-compose.yml --env-file docker/.env logs -f @docker-compose -f docker/docker-compose.yml --env-file docker/.env logs -f
docker-clean: docker-stop ## Очистить Docker образы и volumes docker-clean: docker-stop ## ???????? Docker ?????? ? volumes
@docker rmi eventhub:latest 2>/dev/null || true @docker rmi eventhub:latest 2>/dev/null || true
@docker volume rm eventhub-data 2>/dev/null || true @docker volume rm eventhub-data 2>/dev/null || true
@echo " Docker очищен" @echo "? Docker ??????"
docker-swarm-deploy: ## Запустить кластер docker-swarm-deploy: ## ????????? ???????
@set RELEASE_COOKIE=$$(grep RELEASE_COOKIE docker/.env | cut -d '=' -f2) @set RELEASE_COOKIE=$$(grep RELEASE_COOKIE docker/.env | cut -d '=' -f2)
@set JWT_SECRET=$$(grep JWT_SECRET docker/.env | cut -d '=' -f2) @set JWT_SECRET=$$(grep JWT_SECRET docker/.env | cut -d '=' -f2)
@docker stack deploy -c docker/docker-compose.swarm.yml eventhub --detach=true @docker stack deploy -c docker/docker-compose.swarm.yml eventhub --detach=true
@echo "✅ Кластер запущен" @echo "? ??????? ???????"
@echo "Admin UI: https://admin-ui.eventhub.local" @echo "Admin UI: https://admin-ui.stage.eventhub.local"
docker-swarm-stop: ## Остановить кластер docker-swarm-stop: ## ?????????? ???????
@docker stack rm eventhub @docker stack rm eventhub
##@docker volume prune -f ##@docker volume prune -f
@echo "✅ Кластер удален" @echo "? ??????? ??????"
docker-swarm-scale: ## Изменить количество реплик (например, make scale REPLICAS=5) docker-swarm-scale: ## ???????? ?????????? ?????? (????????, make scale REPLICAS=5)
@echo "Масштабирование до ${REPLICAS} реплик..." @echo "??????????????? ?? ${REPLICAS} ??????..."
docker service scale eventhub_eventhub=${REPLICAS} docker service scale eventhub_eventhub=${REPLICAS}
@echo "✅ Сервис масштабирован" @echo "? ?????? ?????????????"
docker-swarm-status: ## Показать состояние кластера docker-swarm-status: ## ???????? ????????? ????????
@echo "Количество узлов в кластере:" @echo "?????????? ????? ? ????????:"
@docker exec $$(docker ps -qf "name=eventhub_eventhub" | head -n 1) /app/bin/eventhub eval 'length(nodes()).' @docker exec $$(docker ps -qf "name=eventhub_eventhub" | head -n 1) /app/bin/eventhub eval 'length(nodes()).'
@echo "Список узлов:" @echo "?????? ?????:"
@docker exec $$(docker ps -qf "name=eventhub_eventhub" | head -n 1) /app/bin/eventhub eval 'nodes().' @docker exec $$(docker ps -qf "name=eventhub_eventhub" | head -n 1) /app/bin/eventhub eval 'nodes().'
@echo "Список узлов Mnesia:" @echo "?????? ????? Mnesia:"
@docker exec $$(docker ps -qf "name=eventhub_eventhub" | head -n 1) /app/bin/eventhub eval 'mnesia:table_info(user, disc_copies).' @docker exec $$(docker ps -qf "name=eventhub_eventhub" | head -n 1) /app/bin/eventhub eval 'mnesia:table_info(user, disc_copies).'
docker-swarm-reg-admin: docker-swarm-reg-admin:
@@ -344,56 +344,56 @@ docker-swarm-shell:
# ============================================================================ # ============================================================================
# UTILITIES # UTILITIES
# ============================================================================ # ============================================================================
status: ## Проверить статус сервера status: ## ????????? ?????? ???????
@echo "Проверка статуса сервера..." @echo "???????? ??????? ???????..."
@if curl -s http://localhost:8080/health > /dev/null 2>&1; then \ @if curl -s http://localhost:8080/health > /dev/null 2>&1; then \
echo "✓ Сервер запущен на http://localhost:8080"; \ echo "? ?????? ??????? ?? http://localhost:8080"; \
curl -s http://localhost:8080/health; \ curl -s http://localhost:8080/health; \
else \ else \
echo "✗ Сервер не запущен"; \ echo "? ?????? ?? ???????"; \
fi fi
tree: ## Показать структуру проекта tree: ## ???????? ????????? ???????
@tree -I '_build|deps|logs|.git' --dirsfirst 2>/dev/null || ls -la @tree -I '_build|deps|logs|.git' --dirsfirst 2>/dev/null || ls -la
info: ## Показать информацию о проекте info: ## ???????? ?????????? ? ???????
@echo "EventHub - информация о проекте:" @echo "EventHub - ?????????? ? ???????:"
@echo "" @echo ""
@echo "API эндпоинты:" @echo "API ?????????:"
@echo " POST /v1/register - Регистрация" @echo " POST /v1/register - ???????????"
@echo " POST /v1/login - Логин" @echo " POST /v1/login - ?????"
@echo " POST /v1/refresh - Обновление токена" @echo " POST /v1/refresh - ?????????? ??????"
@echo " GET /v1/user/me - Профиль" @echo " GET /v1/user/me - ???????"
@echo " POST /v1/calendars - Создание календаря" @echo " POST /v1/calendars - ???????? ?????????"
@echo " GET /v1/calendars - Список календарей" @echo " GET /v1/calendars - ?????? ??????????"
@echo " POST /v1/calendars/:id/events - Создание события" @echo " POST /v1/calendars/:id/events - ???????? ???????"
@echo " POST /v1/events/:id/bookings - Запись на событие" @echo " POST /v1/events/:id/bookings - ?????? ?? ???????"
@echo "" @echo ""
@echo "Порты:" @echo "?????:"
@echo " HTTP API: 8080" @echo " HTTP API: 8080"
@echo " Admin HTTP: 8445" @echo " Admin HTTP: 8445"
# ============================================================================ # ============================================================================
# DEVELOPMENT WORKFLOW # DEVELOPMENT WORKFLOW
# ============================================================================ # ============================================================================
dev-setup: deps compile ## Настроить окружение для разработки dev-setup: deps compile ## ????????? ????????? ??? ??????????
@echo "✓ Окружение настроено" @echo "? ????????? ?????????"
dev-test: ## Быстрый цикл: compile + eunit dev-test: ## ??????? ????: compile + eunit
@make compile @make compile
@make eunit @make eunit
# ============================================================================ # ============================================================================
# GIT HELPERS # GIT HELPERS
# ============================================================================ # ============================================================================
git-status: ## Показать статус Git git-status: ## ???????? ?????? Git
@git status --short @git status --short
git-log: ## Показать лог Git (последние 10) git-log: ## ???????? ??? Git (????????? 10)
@git log --oneline -10 @git log --oneline -10
git-save: ## Сохранить изменения (commit + push) git-save: ## ????????? ????????? (commit + push)
@read -p "Сообщение коммита: " msg; \ @read -p "????????? ???????: " msg; \
git add .; \ git add .; \
git commit -m "$$msg"; \ git commit -m "$$msg"; \
git push git push
-62
View File
@@ -48,11 +48,6 @@ http:
routers: routers:
# Пользовательский REST API # Пользовательский REST API
api:
rule: "Host(`api.eventhub.local`)"
entryPoints: ["web"]
middlewares: ["redirect-to-https", "strip-api-prefix", "api-ratelimit", "waf"]
service: "api"
api-dev: api-dev:
rule: "Host(`api.dev.eventhub.local`)" rule: "Host(`api.dev.eventhub.local`)"
entryPoints: ["web"] entryPoints: ["web"]
@@ -86,19 +81,8 @@ http:
tls: true tls: true
middlewares: ["strip-api-prefix", "api-ratelimit", "waf"] middlewares: ["strip-api-prefix", "api-ratelimit", "waf"]
service: "api" service: "api"
api-secure:
rule: "Host(`api.eventhub.local`)"
entryPoints: ["websecure"]
tls: true
middlewares: ["strip-api-prefix", "api-ratelimit", "waf"]
service: "api"
# Пользовательский WebSocket # Пользовательский WebSocket
ws:
rule: "Host(`ws.eventhub.local`)"
entryPoints: ["web"]
middlewares: ["redirect-to-https"]
service: "ws"
ws-dev: ws-dev:
rule: "Host(`ws.dev.eventhub.local`)" rule: "Host(`ws.dev.eventhub.local`)"
entryPoints: ["web"] entryPoints: ["web"]
@@ -129,18 +113,8 @@ http:
entryPoints: ["websecure"] entryPoints: ["websecure"]
tls: true tls: true
service: "ws" service: "ws"
ws-secure:
rule: "Host(`ws.eventhub.local`)"
entryPoints: ["websecure"]
tls: true
service: "ws"
# Админский REST API # Админский REST API
admin-api:
rule: "Host(`admin-api.eventhub.local`)"
entryPoints: ["web"]
middlewares: ["redirect-to-https", "strip-api-prefix", "admin-ratelimit", "waf"]
service: "admin-api"
admin-api-dev: admin-api-dev:
rule: "Host(`admin-api.dev.eventhub.local`)" rule: "Host(`admin-api.dev.eventhub.local`)"
entryPoints: ["web"] entryPoints: ["web"]
@@ -174,19 +148,8 @@ http:
tls: true tls: true
middlewares: ["strip-api-prefix", "admin-ratelimit", "waf"] middlewares: ["strip-api-prefix", "admin-ratelimit", "waf"]
service: "admin-api" service: "admin-api"
admin-api-secure:
rule: "Host(`admin-api.eventhub.local`)"
entryPoints: ["websecure"]
tls: true
middlewares: ["strip-api-prefix", "admin-ratelimit", "waf"]
service: "admin-api"
# Админский WebSocket # Админский WebSocket
admin-ws:
rule: "Host(`admin-ws.eventhub.local`)"
entryPoints: ["web"]
middlewares: ["redirect-to-https"]
service: "admin-ws"
admin-ws-dev: admin-ws-dev:
rule: "Host(`admin-ws.dev.eventhub.local`)" rule: "Host(`admin-ws.dev.eventhub.local`)"
entryPoints: ["web"] entryPoints: ["web"]
@@ -217,18 +180,8 @@ http:
entryPoints: ["websecure"] entryPoints: ["websecure"]
tls: true tls: true
service: "admin-ws" service: "admin-ws"
admin-ws-secure:
rule: "Host(`admin-ws.eventhub.local`)"
entryPoints: ["websecure"]
tls: true
service: "admin-ws"
# Админский UI # Админский UI
admin-ui:
rule: "Host(`admin-ui.eventhub.local`)"
entryPoints: ["web"]
middlewares: ["redirect-to-https"]
service: "admin-ui-service"
admin-ui-dev: admin-ui-dev:
rule: "Host(`admin-ui.dev.eventhub.local`)" rule: "Host(`admin-ui.dev.eventhub.local`)"
entryPoints: ["web"] entryPoints: ["web"]
@@ -259,18 +212,8 @@ http:
entryPoints: ["websecure"] entryPoints: ["websecure"]
tls: true tls: true
service: "admin-ui-service" service: "admin-ui-service"
admin-ui-secure:
rule: "Host(`admin-ui.eventhub.local`)"
entryPoints: ["websecure"]
tls: true
service: "admin-ui-service"
# Клиентский UI # Клиентский UI
client-ui:
rule: "Host(`ui.eventhub.local`)"
entryPoints: ["web"]
middlewares: ["redirect-to-https"]
service: "client-ui-service"
client-ui-dev: client-ui-dev:
rule: "Host(`ui.dev.eventhub.local`)" rule: "Host(`ui.dev.eventhub.local`)"
entryPoints: ["web"] entryPoints: ["web"]
@@ -301,11 +244,6 @@ http:
entryPoints: ["websecure"] entryPoints: ["websecure"]
tls: true tls: true
service: "client-ui-service" service: "client-ui-service"
client-ui-secure:
rule: "Host(`ui.eventhub.local`)"
entryPoints: ["websecure"]
tls: true
service: "client-ui-service"
services: services:
api: api: