From 73c323685f282dc7758508098a5480fc59d2d7db Mon Sep 17 00:00:00 2001 From: AlexIves16 Date: Sat, 2 May 2026 17:20:14 +0500 Subject: [PATCH] chore: align infrastructure with server --- .gitea/workflows/deploy.yml | 32 +-- .github/workflows/deploy-server.yml | 85 ------- app/pages/canvases.vue | 10 +- app/server/api/canvas/index.get.ts | 15 +- app/server/api/nodes/[id]/execute.post.ts | 19 +- app/server/utils/ai.ts | 86 +++++-- docker-compose.dev.yml | 2 +- merge_plan.cjs | 95 -------- nuxt.config.ts | 2 + publish_plan.cjs | 61 ----- revert_plan.cjs | 47 ---- check_nodes.cjs => scripts/check_nodes.cjs | 0 check_token.cjs => scripts/check_token.cjs | 0 create_db.cjs => scripts/create_db.cjs | 0 scripts/create_npb_brief.cjs | 227 ++++++++++++++++++ .../create_test_canvas.cjs | 0 create_user.cjs => scripts/create_user.cjs | 0 scripts/create_xflow_brief.cjs | 121 ++++++++++ fix_user_id.cjs => scripts/fix_user_id.cjs | 0 list_users.cjs => scripts/list_users.cjs | 2 +- .../rebuild_project_canvas.cjs | 0 set_admin.cjs => scripts/set_admin.cjs | 0 test_gitea.cjs => scripts/test_gitea.cjs | 0 scripts/test_openrouter.cjs | 71 ++++++ scripts/test_qwen.cjs | 55 +++++ .../transfer_ownership.cjs | 0 scripts/update_infra_canvas.cjs | 123 ++++++++++ server/.env.example | 48 ++-- server/docker-compose.yml | 97 ++------ server/docker/db/init-db.sh | 9 + test.cjs | 20 -- test2.cjs | 8 - test3.cjs | 8 - test4.cjs | 8 - test5.cjs | 8 - update_project_canvas.cjs | 66 ----- 36 files changed, 785 insertions(+), 540 deletions(-) delete mode 100644 .github/workflows/deploy-server.yml delete mode 100644 merge_plan.cjs delete mode 100644 publish_plan.cjs delete mode 100644 revert_plan.cjs rename check_nodes.cjs => scripts/check_nodes.cjs (100%) rename check_token.cjs => scripts/check_token.cjs (100%) rename create_db.cjs => scripts/create_db.cjs (100%) create mode 100644 scripts/create_npb_brief.cjs rename create_test_canvas.cjs => scripts/create_test_canvas.cjs (100%) rename create_user.cjs => scripts/create_user.cjs (100%) create mode 100644 scripts/create_xflow_brief.cjs rename fix_user_id.cjs => scripts/fix_user_id.cjs (100%) rename list_users.cjs => scripts/list_users.cjs (76%) rename rebuild_project_canvas.cjs => scripts/rebuild_project_canvas.cjs (100%) rename set_admin.cjs => scripts/set_admin.cjs (100%) rename test_gitea.cjs => scripts/test_gitea.cjs (100%) create mode 100644 scripts/test_openrouter.cjs create mode 100644 scripts/test_qwen.cjs rename transfer_ownership.cjs => scripts/transfer_ownership.cjs (100%) create mode 100644 scripts/update_infra_canvas.cjs create mode 100644 server/docker/db/init-db.sh delete mode 100644 test.cjs delete mode 100644 test2.cjs delete mode 100644 test3.cjs delete mode 100644 test4.cjs delete mode 100644 test5.cjs delete mode 100644 update_project_canvas.cjs diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index bd68eca..5742d22 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -26,7 +26,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: '20' + node-version: '22' - name: Install dependencies run: npm install @@ -49,21 +49,25 @@ jobs: - name: Deploy to server run: | apk add --no-cache docker-cli docker-compose - mkdir -p /opt/xflow/.output /opt/xflow/prisma /opt/xflow/node_modules - cp -r .output/. /opt/xflow/.output/ - cp -r prisma/. /opt/xflow/prisma/ - cp -r node_modules/. /opt/xflow/node_modules/ - cp package.json /opt/xflow/package.json - cp prisma.config.ts /opt/xflow/prisma.config.ts - cp server/docker-compose.yml /opt/xflow/docker-compose.yml - sed -i 's/infra-network/infra/' /opt/xflow/docker-compose.yml - docker stop xflow 2>/dev/null || true - docker rm xflow 2>/dev/null || true - docker compose -f /opt/xflow/docker-compose.yml up -d --no-deps xflow + # Подготовка папок в новой структуре + mkdir -p /root/projects/xflow/.output /root/projects/xflow/prisma /root/projects/xflow/node_modules + cp -r .output/. /root/projects/xflow/.output/ + cp -r prisma/. /root/projects/xflow/prisma/ + cp -r node_modules/. /root/projects/xflow/node_modules/ + cp package.json /root/projects/xflow/package.json + cp prisma.config.ts /root/projects/xflow/prisma.config.ts + + # Перезапуск конкретного сервиса в рамках общей инфраструктуры + # Мы используем мастер-файл из корня проектов + docker stop xflow_crm 2>/dev/null || true + docker rm xflow_crm 2>/dev/null || true + docker compose -f /root/projects/docker-compose.yml up -d --no-deps xflow_crm + echo "⏳ Waiting for container to start..." sleep 5 - docker exec xflow sh -c "cd /app && export DATABASE_URL=postgresql://xflow:xflow_pass@postgres:5432/xflow && npx prisma migrate deploy --config prisma.config.ts && npx prisma db seed" - echo "✅ XFlow deployed at $(date)" + # Миграции с использованием новой БД xflow_crm_db + docker exec xflow_crm sh -c "cd /app && export DATABASE_URL=postgresql://admin:${POSTGRES_PASSWORD}@xflow_db:5432/xflow_crm_db && npx prisma migrate deploy --config prisma.config.ts && npx prisma db seed" + echo "✅ XFlow CRM deployed at $(date)" env: FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }} FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }} diff --git a/.github/workflows/deploy-server.yml b/.github/workflows/deploy-server.yml deleted file mode 100644 index 97fa2e3..0000000 --- a/.github/workflows/deploy-server.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: 🚀 Деплой XFlow Server - -on: - push: - branches: [main, master] - paths: - - 'server/**' - - '.github/workflows/deploy-server.yml' - workflow_dispatch: - -jobs: - deploy: - runs-on: self-hosted - name: Деплой сервера майндкарт - steps: - - name: 📥 Скачать код - uses: actions/checkout@v4 - - - name: 🔄 Синхронизация файлов - run: | - SERVER_PATH="/opt/xflow-server" - - mkdir -p $SERVER_PATH/api - mkdir -p $SERVER_PATH/nginx/html - mkdir -p $SERVER_PATH/nginx/conf.d - mkdir -p $SERVER_PATH/scripts - - # Синхронизация docker-compose - cp -f server/docker-compose.yml $SERVER_PATH/docker-compose.yml - - # Синхронизация API - rsync -av --delete server/api/ $SERVER_PATH/api/ - - # Синхронизация nginx - cp -f server/nginx/nginx.conf $SERVER_PATH/nginx/nginx.conf - cp -f server/nginx/html/* $SERVER_PATH/nginx/html/ - - # Синхронизация скриптов - cp -f server/scripts/* $SERVER_PATH/scripts/ 2>/dev/null || true - - # Копировать .env если не существует - if [ ! -f $SERVER_PATH/.env ]; then - cp -f server/.env.example $SERVER_PATH/.env - echo "⚠️ Создан .env из примера - ОБНОВИТЕ ДЛЯ PRODUCTION!" - fi - - echo "✅ Файлы синхронизированы" - - - name: 🐳 Пересборка и перезапуск - run: | - cd /opt/xflow-server - - # Пересобрать API - docker compose build xflow-api - - # Перезапустить все сервисы - docker compose down - docker compose up -d - - echo "✅ Сервисы перезапущены" - - - name: ✅ Проверка здоровья - run: | - sleep 10 - - # Проверка API - API_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8082/health 2>/dev/null || echo "000") - if [ "$API_STATUS" = "200" ]; then - echo "✅ API работает" - else - echo "⚠️ API статус: $API_STATUS" - fi - - # Проверка Gitea - GITEA_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3001 2>/dev/null || echo "000") - if [ "$GITEA_STATUS" = "200" ]; then - echo "✅ Gitea работает" - else - echo "⚠️ Gitea статус: $GITEA_STATUS" - fi - - # Список контейнеров - docker compose -f /opt/xflow-server/docker-compose.yml ps - - echo "✅ ДЕПЛОЙ ЗАВЕРШЁН УСПЕШНО!" diff --git a/app/pages/canvases.vue b/app/pages/canvases.vue index 659743a..6c919a6 100644 --- a/app/pages/canvases.vue +++ b/app/pages/canvases.vue @@ -1,7 +1,13 @@