Some checks failed
Deploy to Production Server / Deploy to 178.63.127.19 (push) Has been cancelled
7.0 KiB
7.0 KiB
🚀 Quick Deployment Guide for TurboTrades
Server: 178.63.127.19
Repository: git.turbotrades.dev/iDefineHD/TurboTrades
User: root (or your SSH user)
⚡ Super Quick Deploy (5 Minutes)
1️⃣ Push Your Code
cd C:\Users\dg-ho\Documents\projects\TurboTrades
git add .
git commit -m "feat: Complete admin panel with deployment setup"
git push origin main
2️⃣ Setup Server (One-Time)
SSH into your server:
ssh root@178.63.127.19
Run the automated setup script:
# Download and run setup script
curl -o setup.sh https://git.turbotrades.dev/iDefineHD/TurboTrades/raw/branch/main/scripts/setup-server.sh
chmod +x setup.sh
sudo ./setup.sh
OR manually setup:
# Update system
apt update && apt upgrade -y
# Install Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
# Install MongoDB
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list
apt update && apt install -y mongodb-org
systemctl start mongod && systemctl enable mongod
# Install PM2
npm install -g pm2
# Install Nginx
apt install -y nginx
systemctl start nginx && systemctl enable nginx
# Create directory
mkdir -p /var/www/turbotrades
cd /var/www/turbotrades
# Clone repository
git clone https://git.turbotrades.dev/iDefineHD/TurboTrades.git .
3️⃣ Configure Environment
Create .env file on server:
nano /var/www/turbotrades/.env
Add this configuration:
# Server
NODE_ENV=production
PORT=3000
HOST=0.0.0.0
# Database
MONGODB_URI=mongodb://localhost:27017/turbotrades
# Secrets (CHANGE THESE!)
SESSION_SECRET=your-random-secret-here-change-this-123456789
JWT_SECRET=your-jwt-secret-here-change-this-987654321
JWT_ACCESS_EXPIRY=15m
JWT_REFRESH_EXPIRY=7d
# Steam API
STEAM_API_KEY=your-steam-api-key
STEAM_RETURN_URL=http://178.63.127.19:3000/auth/steam/return
# CORS
CORS_ORIGIN=http://178.63.127.19
# Admin Steam IDs (Your Steam ID)
ADMIN_STEAM_IDS=76561198000000000
# Optional: Steam Bot
STEAM_BOT_USERNAME=
STEAM_BOT_PASSWORD=
STEAM_BOT_SHARED_SECRET=
STEAM_BOT_IDENTITY_SECRET=
Save with Ctrl+X, then Y, then Enter
4️⃣ Deploy Application
cd /var/www/turbotrades
# Install dependencies
npm ci --production
# Build frontend
cd frontend
npm ci
npm run build
cd ..
# Start with PM2
pm2 start ecosystem.config.js --env production
pm2 save
pm2 startup
5️⃣ Configure Nginx (Optional but Recommended)
nano /etc/nginx/sites-available/turbotrades
Paste this:
server {
listen 80;
server_name 178.63.127.19;
location / {
root /var/www/turbotrades/frontend/dist;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /ws {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /auth {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Enable and restart:
ln -s /etc/nginx/sites-available/turbotrades /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
6️⃣ Configure GitHub Actions (Automatic Deployments)
- Go to your repository settings/secrets (Gitea CI/CD settings)
- Click "New repository secret" or equivalent
- Add these secrets:
| Name | Value |
|---|---|
SERVER_HOST |
178.63.127.19 |
SERVER_USER |
root (or your SSH username) |
SERVER_PORT |
22 |
SSH_PRIVATE_KEY |
Your SSH private key (see below) |
DEPLOY_PATH |
/var/www/turbotrades |
Generate SSH Key for Deployment:
On your server:
ssh-keygen -t ed25519 -C "deploy@turbotrades" -f ~/.ssh/turbotrades_deploy
cat ~/.ssh/turbotrades_deploy.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/turbotrades_deploy # Copy this for GitHub Secret
🎯 After Setup - How to Deploy
Automatic Deployment (Recommended):
# Just push to main branch
git add .
git commit -m "Your changes"
git push origin main
GitHub Actions will automatically:
✅ Build frontend
✅ Deploy to server
✅ Restart PM2
✅ Health check
Watch progress in your Gitea repository's Actions tab
Manual Deployment:
ssh root@178.63.127.19
cd /var/www/turbotrades
git pull origin main
npm ci --production
cd frontend && npm ci && npm run build && cd ..
pm2 restart turbotrades
pm2 logs turbotrades
🔍 Check Status
From Your Computer:
# Check if site is running
curl http://178.63.127.19:3000/api/health
# Check PM2 status via SSH
ssh root@178.63.127.19 "pm2 status"
# Check logs via SSH
ssh root@178.63.127.19 "pm2 logs turbotrades --lines 50"
On Server:
ssh root@178.63.127.19
# Check PM2
pm2 status
pm2 logs turbotrades
# Check MongoDB
systemctl status mongod
# Check Nginx
systemctl status nginx
# Check application logs
tail -f /var/www/turbotrades/logs/pm2-combined.log
🚨 Quick Fixes
App Not Starting:
ssh root@178.63.127.19
cd /var/www/turbotrades
pm2 logs turbotrades --err
pm2 restart turbotrades
MongoDB Not Running:
ssh root@178.63.127.19
systemctl start mongod
systemctl status mongod
Need to Restart Everything:
ssh root@178.63.127.19
pm2 restart all
systemctl restart mongod
systemctl restart nginx
Port 3000 Already in Use:
ssh root@178.63.127.19
lsof -i :3000
pm2 delete turbotrades
pm2 start ecosystem.config.js --env production
📝 Important URLs
- Gitea Repo: https://git.turbotrades.dev/iDefineHD/TurboTrades
- CI/CD Actions: Check your Gitea repository's Actions tab
- Repository Secrets: https://git.turbotrades.dev/iDefineHD/TurboTrades/settings
- Your Server: http://178.63.127.19
- API Health: http://178.63.127.19:3000/api/health
- Admin Panel: http://178.63.127.19/admin
🎉 You're Done!
Visit: http://178.63.127.19
Your admin panel is fully functional with:
- ✅ User Management
- ✅ Promotion Analytics
- ✅ Trading & Market Settings
- ✅ Announcements
- ✅ Maintenance Mode
📞 Need Help?
- Check server logs:
ssh root@178.63.127.19 "pm2 logs" - Check Gitea Actions in your repository
- Review full guide:
DEPLOYMENT_GUIDE.md
Happy deploying! 🚀