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 @@