mirror of
https://github.com/DeNNiiInc/Connect-5.git
synced 2026-04-17 20:36:00 +00:00
Add production deployment instructions for PostgreSQL migration
This commit is contained in:
183
PRODUCTION_DEPLOYMENT_STEPS.txt
Normal file
183
PRODUCTION_DEPLOYMENT_STEPS.txt
Normal file
@@ -0,0 +1,183 @@
|
||||
===============================================================================
|
||||
PRODUCTION DEPLOYMENT INSTRUCTIONS - PostgreSQL Migration
|
||||
===============================================================================
|
||||
|
||||
Git changes have been pushed. Since you have auto-pull set up, follow these
|
||||
steps on your PRODUCTION SERVER to complete the migration:
|
||||
|
||||
===============================================================================
|
||||
STEP 1: After Git Auto-Pull Completes
|
||||
===============================================================================
|
||||
|
||||
SSH into your production server and navigate to the Connect-5 directory.
|
||||
|
||||
===============================================================================
|
||||
STEP 2: Install New Dependencies
|
||||
===============================================================================
|
||||
|
||||
npm install
|
||||
|
||||
This will:
|
||||
- Remove @supabase/supabase-js
|
||||
- Install pg (PostgreSQL driver)
|
||||
|
||||
===============================================================================
|
||||
STEP 3: Create db.config.js with PostgreSQL Credentials
|
||||
===============================================================================
|
||||
|
||||
IMPORTANT: You need to create db.config.js on the production server.
|
||||
|
||||
Option A - Using the example file:
|
||||
-----------------------------------
|
||||
cp db.config.example.js db.config.js
|
||||
nano db.config.js
|
||||
|
||||
Then edit with your PostgreSQL credentials:
|
||||
{
|
||||
HOST: '202.171.184.108',
|
||||
USER: 'postgres',
|
||||
PASSWORD: 'X@gon2005!#$',
|
||||
DB: 'connect5',
|
||||
dialect: 'postgres',
|
||||
pool: { max: 5, min: 0, acquire: 30000, idle: 10000 }
|
||||
}
|
||||
|
||||
Option B - Quick create (copy/paste this entire block):
|
||||
--------------------------------------------------------
|
||||
cat > db.config.js << 'EOF'
|
||||
module.exports = {
|
||||
HOST: '202.171.184.108',
|
||||
USER: 'postgres',
|
||||
PASSWORD: 'X@gon2005!#$',
|
||||
DB: 'connect5',
|
||||
dialect: 'postgres',
|
||||
pool: {
|
||||
max: 5,
|
||||
min: 0,
|
||||
acquire: 30000,
|
||||
idle: 10000
|
||||
}
|
||||
};
|
||||
EOF
|
||||
|
||||
===============================================================================
|
||||
STEP 4: Apply Database Schema (if not already done)
|
||||
===============================================================================
|
||||
|
||||
Run the schema application script:
|
||||
|
||||
node apply-schema.js
|
||||
|
||||
Expected output:
|
||||
✅ Schema applied successfully!
|
||||
✅ Found 4 tables: active_sessions, game_moves, games, players
|
||||
|
||||
If you see errors about tables already existing, that's fine - skip this step.
|
||||
|
||||
===============================================================================
|
||||
STEP 5: Restart the Node.js Service
|
||||
===============================================================================
|
||||
|
||||
Depending on how you're running the server:
|
||||
|
||||
Option A - If using PM2:
|
||||
------------------------
|
||||
pm2 restart connect5
|
||||
# OR
|
||||
pm2 restart server.js
|
||||
# OR
|
||||
pm2 restart all
|
||||
|
||||
Option B - If using nohup:
|
||||
--------------------------
|
||||
pkill -f "node server.js"
|
||||
sleep 2
|
||||
nohup node server.js > server.log 2>&1 &
|
||||
|
||||
Option C - If using systemd service:
|
||||
------------------------------------
|
||||
sudo systemctl restart connect5
|
||||
# OR
|
||||
sudo systemctl restart connect5.service
|
||||
|
||||
Option D - Not sure what's running it?
|
||||
--------------------------------------
|
||||
# Check what's running
|
||||
ps aux | grep "node server.js"
|
||||
|
||||
# Kill the process (replace PID with actual process ID)
|
||||
kill -9 PID
|
||||
|
||||
# Start it again
|
||||
nohup node server.js > server.log 2>&1 &
|
||||
|
||||
===============================================================================
|
||||
STEP 6: Verify the Service is Running
|
||||
===============================================================================
|
||||
|
||||
Check if the server started successfully:
|
||||
|
||||
# View the logs
|
||||
tail -f server.log
|
||||
|
||||
Expected output:
|
||||
🔄 Initializing PostgreSQL database schema...
|
||||
✅ Database schema verified successfully
|
||||
🌐 Server running on port 3000
|
||||
📡 WebSocket server ready
|
||||
🗄️ Database connected
|
||||
|
||||
# Test the API endpoint
|
||||
curl http://localhost:3000/api/db-status
|
||||
|
||||
Expected response:
|
||||
{
|
||||
"connected": true,
|
||||
"latency": 10,
|
||||
"writeCapable": true,
|
||||
"connectionType": "PostgreSQL Direct Connection",
|
||||
"host": "202.171.184.108",
|
||||
"database": "connect5"
|
||||
}
|
||||
|
||||
===============================================================================
|
||||
STEP 7: Test the Production URL
|
||||
===============================================================================
|
||||
|
||||
Visit your production URL (e.g., https://connect5.beyondcloud.technology/)
|
||||
|
||||
Verify:
|
||||
✅ Page loads correctly
|
||||
✅ Status bar shows "Connected" in green
|
||||
✅ Latency is displayed
|
||||
✅ "Write: Enabled" shows in green
|
||||
✅ Multiplayer functionality works
|
||||
|
||||
===============================================================================
|
||||
SUMMARY OF SERVICES TO RESTART
|
||||
===============================================================================
|
||||
|
||||
You need to restart:
|
||||
✅ Node.js service (server.js) - This is the ONLY service that needs restarting
|
||||
|
||||
You DO NOT need to restart:
|
||||
❌ Nginx/Apache (web server) - No changes to proxy config
|
||||
❌ PostgreSQL - Database server continues running
|
||||
❌ The production server itself
|
||||
|
||||
===============================================================================
|
||||
TROUBLESHOOTING
|
||||
===============================================================================
|
||||
|
||||
If the service won't start:
|
||||
1. Check db.config.js exists and has correct credentials
|
||||
2. Check logs: tail -f server.log
|
||||
3. Test database connection: node apply-schema.js
|
||||
4. Ensure PostgreSQL is accessible from production server
|
||||
|
||||
Common issues:
|
||||
- "Cannot find module './db.config.js'" → Create db.config.js (Step 3)
|
||||
- "Table 'players' does not exist" → Run apply-schema.js (Step 4)
|
||||
- "ECONNREFUSED" → Check PostgreSQL firewall/network access
|
||||
|
||||
===============================================================================
|
||||
Reference in New Issue
Block a user