Clean up tunnel infrastructure and migrate to Gitea
Some checks failed
Deploy to Production Server / Deploy to 178.63.127.19 (push) Has been cancelled

This commit is contained in:
2026-01-10 23:54:31 +00:00
parent 63c578b0ae
commit 53d0c89d17
8 changed files with 2220 additions and 172 deletions

138
.github/workflows/deploy.yml vendored Normal file
View File

@@ -0,0 +1,138 @@
name: Deploy to Production Server
on:
push:
branches:
- main
workflow_dispatch: # Allow manual trigger
jobs:
deploy:
name: Deploy to 178.63.127.19
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install dependencies (Backend)
run: |
npm ci
- name: Install dependencies (Frontend)
run: |
cd frontend
npm ci
- name: Build Frontend
run: |
cd frontend
npm run build
env:
NODE_ENV: production
VITE_API_URL: http://178.63.127.19:3000
- name: Run Tests (if any)
run: |
npm test || echo "No tests configured"
continue-on-error: true
- name: Deploy to Production Server
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ secrets.SERVER_PORT || 22 }}
script: |
echo "🚀 Starting deployment..."
# Navigate to project directory
cd ${{ secrets.DEPLOY_PATH || '/var/www/turbotrades' }}
# Stop the application
echo "⏸️ Stopping application..."
pm2 stop turbotrades || echo "App not running"
# Backup current version
echo "💾 Creating backup..."
cp -r . ../turbotrades-backup-$(date +%Y%m%d-%H%M%S) || true
# Pull latest code
echo "📥 Pulling latest code..."
git fetch origin
git reset --hard origin/main
# Install backend dependencies
echo "📦 Installing backend dependencies..."
npm ci --production
# Build and install frontend
echo "🎨 Building frontend..."
cd frontend
npm ci
npm run build
cd ..
# Run database migrations (if any)
echo "🗄️ Running migrations..."
npm run migrate || echo "No migrations to run"
# Start the application
echo "▶️ Starting application..."
pm2 start ecosystem.config.js || pm2 start index.js --name turbotrades
pm2 save
# Verify deployment
echo "✅ Deployment complete!"
pm2 list
- name: Health Check
run: |
sleep 10
curl -f http://178.63.127.19:3000/api/health || echo "⚠️ Health check failed"
- name: Notify Success
if: success()
run: |
echo "✅ Deployment successful!"
echo "🌐 Server: 178.63.127.19"
echo "👤 Repository: git.turbotrades.dev/iDefineHD/TurboTrades"
echo "📅 Time: $(date)"
- name: Notify Failure
if: failure()
run: |
echo "❌ Deployment failed!"
echo "Check the logs above for details"
- name: Rollback on Failure
if: failure()
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ secrets.SERVER_PORT || 22 }}
script: |
echo "🔄 Rolling back to previous version..."
cd ${{ secrets.DEPLOY_PATH || '/var/www/turbotrades' }}
# Find latest backup
BACKUP=$(ls -t ../turbotrades-backup-* | head -1)
if [ -n "$BACKUP" ]; then
echo "Found backup: $BACKUP"
rm -rf ./*
cp -r $BACKUP/* .
pm2 restart turbotrades
echo "✅ Rollback complete"
else
echo "❌ No backup found!"
fi