Files
RIT-nexus/VPS_MASTER_GUIDE.md
2026-08-04 09:15:36 +05:30

5.6 KiB

🚀 RIT Freshers Hub - Complete VPS Operations & Maintenance Guide

A complete, beginner-friendly guide to managing, updating, monitoring, and troubleshooting the RIT Freshers Hub production server on Linux (Ubuntu / Debian).


📍 Server & Architecture Summary

  • Server IP: 129.121.126.66
  • SSH User: root
  • Primary Domain: rit-services.in
  • Backend API Domain: api.rit-services.in
  • Application Root Path: /var/www/freshers-hub

🏗️ Microservice Ports & Services

Service Technology Port Systemd Service Name Config Path
Frontend PWA React + Vite + Nginx 80 / 443 nginx /etc/nginx/sites-available/default
Backend API Spring Boot (Java 17) 8085 springboot.service /etc/systemd/system/springboot.service
Go Chatbot Go BM25 Engine 8081 chatbot.service /etc/systemd/system/chatbot.service
Bots (Telegram/Discord) Python FastAPI 8082 telegram-bot.service /var/www/freshers-hub/telegram-bot/.env
Database PostgreSQL 5432 postgresql DB User: postgres, Password: RITHosting123

🔑 1. How to Connect to the VPS

Open PowerShell, Command Prompt, or Terminal on your computer and run:

ssh root@129.121.126.66

(Enter your SSH password when prompted)


2. Daily Commands (Deploying Updates from GitHub)

Whenever you push new code to GitHub and want to update the live website:

A) Update Everything in 1 Command Block

Copy and paste this into your VPS terminal:

cd /var/www/freshers-hub && \
git pull && \
npm run build && \
(cd chatbot-service && go build -o chatbot-service main.go) && \
systemctl restart springboot chatbot telegram-bot nginx

B) Updating Specific Parts (Step-by-Step)

1. Update Frontend UI & Static Files Only:

cd /var/www/freshers-hub
git pull
npm run build

2. Restart Spring Boot Backend:

systemctl restart springboot

3. Restart Go Chatbot Microservice:

cd /var/www/freshers-hub/chatbot-service
git pull
go build -o chatbot-service main.go
systemctl restart chatbot

4. Restart Telegram & Discord Bot:

cd /var/www/freshers-hub/telegram-bot
git pull
systemctl restart telegram-bot

📊 3. Health & Status Check Commands

Want to check if all services are running healthy? Run these commands:

Check Status of All Services:

systemctl status springboot chatbot telegram-bot nginx postgresql

Check Active Listening Ports:

ss -tulpn | grep -E '8085|8081|8082|80|443|5432'

(You should see Java on 8085, Go on 8081, Python on 8082, Nginx on 80/443, PostgreSQL on 5432).


📜 4. Viewing Live System Logs (Debugging Errors)

If a feature is failing or you want to see live incoming requests:

1. View Spring Boot Backend Logs:

journalctl -u springboot -n 50 --no-pager

To follow logs live in real-time: journalctl -u springboot -f

2. View Go Chatbot Logs:

journalctl -u chatbot -n 50 --no-pager

3. View Telegram & Discord Bot Logs:

journalctl -u telegram-bot -n 50 --no-pager

4. View Nginx Web Server Access & Error Logs:

# Recent web traffic requests:
tail -n 30 /var/log/nginx/access.log

# Recent web server errors:
tail -n 30 /var/log/nginx/error.log

🛠️ 5. Common Troubleshooting & Emergency Fixes

🚨 Problem 1: "502 Bad Gateway" on Website

  • Cause: The Spring Boot backend or Go chatbot is stopped.
  • Fix: Restart all services:
    systemctl restart springboot chatbot nginx
    

🚨 Problem 2: Nginx Configuration Test Fails

  • Check for Nginx syntax errors:
    sudo nginx -t
    
  • If it says syntax is OK, reload Nginx:
    sudo systemctl reload nginx
    

🚨 Problem 3: Check & Renew SSL Certificates (HTTPS)

  • Check all SSL certificates & expiry dates:
    sudo certbot certificates
    
  • Force renew SSL certificates (if needed):
    sudo certbot renew --force-renewal
    sudo systemctl reload nginx
    

🚨 Problem 4: PostgreSQL Database Connection Error

  • Check PostgreSQL status:
    systemctl status postgresql
    
  • Test Database Password manually:
    PGPASSWORD='RITHosting123' psql -U postgres -h localhost -d freshers_hub_db -c '\dt'
    

🚨 Problem 5: Full Server Reboot (Emergency Reset)

If the server becomes completely unresponsive or memory is full:

sudo reboot

Wait 60 seconds, reconnect via SSH, and check services:

systemctl status springboot chatbot telegram-bot nginx postgresql

💾 6. Database Backup & Restore

Backup PostgreSQL Database to a .sql File:

PGPASSWORD='RITHosting123' pg_dump -U postgres -h localhost freshers_hub_db > /root/backup_freshers_hub_$(date +%F).sql

Restore Database from a .sql Backup File:

PGPASSWORD='RITHosting123' psql -U postgres -h localhost freshers_hub_db < /root/backup_freshers_hub_2026-08-04.sql

🛡️ 7. Systemd Service File Reference Paths

For reference, all auto-start systemd service configuration files are stored at:

  1. Spring Boot Backend: /etc/systemd/system/springboot.service
  2. Go Chatbot Engine: /etc/systemd/system/chatbot.service
  3. Telegram & Discord Bot: /etc/systemd/system/telegram-bot.service
  4. Nginx Web Server Config: /etc/nginx/sites-available/default

🏆 You're all set!

Save this document for your team to easily maintain, update, and manage the server with zero prior Linux experience.