feat: prisma schema, groups API, deploy workflow

This commit is contained in:
2026-04-23 21:41:11 +05:00
parent 4c50036172
commit 65cf8ca01f
285 changed files with 24602 additions and 25890 deletions
+80
View File
@@ -0,0 +1,80 @@
name: Deploy XFlow (AVTEX/Projects)
on:
push:
branches:
- main
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build Nuxt
run: npm run build
env:
NUXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }}
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }}
NUXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }}
NUXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}
- name: Setup SSH with jump host
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
cat >> ~/.ssh/config << EOF
Host jumphost
HostName ${{ secrets.JUMP_HOST }}
User ${{ secrets.JUMP_USER }}
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
Host target
HostName ${{ secrets.DEPLOY_HOST }}
User ${{ secrets.DEPLOY_USER }}
ProxyJump jumphost
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
EOF
- name: Copy .output to server
run: |
rsync -az --delete .output/ target:/opt/xflow/.output/
rsync -az prisma/ target:/opt/xflow/prisma/
rsync -az package.json target:/opt/xflow/package.json
- name: Run migrations & restart container
run: |
ssh target << 'ENDSSH'
cd /opt/xflow
# Запустить миграции Prisma
docker run --rm \
--network infra \
-e DATABASE_URL="$DATABASE_URL" \
-v /opt/xflow/prisma:/app/prisma \
-v /opt/xflow/node_modules:/app/node_modules \
-w /app \
node:20-alpine \
sh -c "npx prisma migrate deploy"
# Перезапустить xflow контейнер
cd /opt/xflow
docker compose up -d --force-recreate xflow
echo "✅ XFlow deployed at $(date)"
ENDSSH