Initial commit - Church Music Database
This commit is contained in:
287
legacy-site/documentation/md-files/SSH_QUICK_REFERENCE.md
Normal file
287
legacy-site/documentation/md-files/SSH_QUICK_REFERENCE.md
Normal file
@@ -0,0 +1,287 @@
|
||||
# Quick SSH Commands for Ubuntu Server Deployment
|
||||
|
||||
## Connect to Server
|
||||
|
||||
```powershell
|
||||
ssh username@192.168.10.130
|
||||
```
|
||||
|
||||
Replace `username` with your actual Ubuntu username.
|
||||
|
||||
---
|
||||
|
||||
## Transfer Files to Server
|
||||
|
||||
### Method 1: SCP (Recommended)
|
||||
|
||||
```powershell
|
||||
# From Windows PowerShell
|
||||
scp -r "E:\Documents\Website Projects\Church_SongLyric" username@192.168.10.130:/tmp/
|
||||
```
|
||||
|
||||
### Method 2: rsync (if available)
|
||||
|
||||
```powershell
|
||||
rsync -avz --progress "E:\Documents\Website Projects\Church_SongLyric/" username@192.168.10.130:/tmp/Church_SongLyric/
|
||||
```
|
||||
|
||||
### Method 3: WinSCP (GUI)
|
||||
|
||||
1. Download WinSCP from <https://winscp.net>
|
||||
2. Connect to 192.168.10.130
|
||||
3. Drag and drop the Church_SongLyric folder
|
||||
|
||||
---
|
||||
|
||||
## One-Line Deployment
|
||||
|
||||
After SSH'ing to the server:
|
||||
|
||||
```bash
|
||||
sudo mv /tmp/Church_SongLyric /var/www/church-songlyric && cd /var/www/church-songlyric && chmod +x *.sh && ./ubuntu-setup-postgresql.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting SSH
|
||||
|
||||
### Can't Connect
|
||||
|
||||
```powershell
|
||||
# Test if server is reachable
|
||||
ping 192.168.10.130
|
||||
|
||||
# Test if SSH port is open
|
||||
Test-NetConnection -ComputerName 192.168.10.130 -Port 22
|
||||
```
|
||||
|
||||
### Permission Denied
|
||||
|
||||
```bash
|
||||
# On Ubuntu server, ensure SSH is running
|
||||
sudo systemctl status ssh
|
||||
sudo systemctl start ssh
|
||||
```
|
||||
|
||||
### SSH Keys (Optional Setup)
|
||||
|
||||
```powershell
|
||||
# Generate SSH key on Windows (if not exists)
|
||||
ssh-keygen -t ed25519
|
||||
|
||||
# Copy key to server
|
||||
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh username@192.168.10.130 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
|
||||
|
||||
# Now you can connect without password
|
||||
ssh username@192.168.10.130
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Commands After Connection
|
||||
|
||||
```bash
|
||||
# Check system info
|
||||
uname -a
|
||||
lsb_release -a
|
||||
|
||||
# Check disk space
|
||||
df -h
|
||||
|
||||
# Check memory
|
||||
free -h
|
||||
|
||||
# Check if PostgreSQL is installed
|
||||
psql --version
|
||||
|
||||
# Check if Python3 is installed
|
||||
python3 --version
|
||||
|
||||
# Check if Node.js is installed
|
||||
node --version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Post-Deployment Verification
|
||||
|
||||
```bash
|
||||
# Check service status
|
||||
sudo systemctl status church-songlyric-backend
|
||||
|
||||
# View logs
|
||||
sudo journalctl -u church-songlyric-backend -n 50
|
||||
|
||||
# Test API
|
||||
curl http://192.168.10.130:5100/api/health
|
||||
|
||||
# Test via Nginx
|
||||
curl http://192.168.10.130/api/health
|
||||
|
||||
# Check PostgreSQL
|
||||
sudo -u postgres psql -c "\l" | grep church_songlyric
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Common Management Tasks
|
||||
|
||||
### Restart Services
|
||||
|
||||
```bash
|
||||
sudo systemctl restart church-songlyric-backend
|
||||
sudo systemctl restart nginx
|
||||
sudo systemctl restart postgresql
|
||||
```
|
||||
|
||||
### View Live Logs
|
||||
|
||||
```bash
|
||||
# Backend logs
|
||||
sudo journalctl -u church-songlyric-backend -f
|
||||
|
||||
# Nginx access logs
|
||||
sudo tail -f /var/log/nginx/access.log
|
||||
|
||||
# Nginx error logs
|
||||
sudo tail -f /var/log/nginx/error.log
|
||||
```
|
||||
|
||||
### Database Access
|
||||
|
||||
```bash
|
||||
# Connect to PostgreSQL
|
||||
sudo -u postgres psql
|
||||
|
||||
# Or directly to your database
|
||||
sudo -u postgres psql -d church_songlyric
|
||||
|
||||
# List all tables
|
||||
\dt
|
||||
|
||||
# Exit
|
||||
\q
|
||||
```
|
||||
|
||||
### Update Application
|
||||
|
||||
```bash
|
||||
# After transferring new files to /tmp/
|
||||
cd /var/www/church-songlyric
|
||||
sudo rm -rf backend frontend # Backup first!
|
||||
sudo cp -r /tmp/Church_SongLyric/* .
|
||||
sudo chown -R www-data:www-data .
|
||||
|
||||
# Rebuild
|
||||
cd frontend
|
||||
npm install
|
||||
npm run build
|
||||
|
||||
cd ../backend
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Restart
|
||||
sudo systemctl restart church-songlyric-backend
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Emergency Commands
|
||||
|
||||
### Stop Everything
|
||||
|
||||
```bash
|
||||
sudo systemctl stop church-songlyric-backend
|
||||
sudo systemctl stop nginx
|
||||
```
|
||||
|
||||
### Check Port Usage
|
||||
|
||||
```bash
|
||||
# Check if port 5100 is in use
|
||||
sudo netstat -tulpn | grep 5100
|
||||
|
||||
# Check who's using port 5100
|
||||
sudo lsof -i :5100
|
||||
```
|
||||
|
||||
### Kill Process on Port
|
||||
|
||||
```bash
|
||||
# Find process
|
||||
sudo lsof -i :5100
|
||||
|
||||
# Kill it (replace PID with actual process ID)
|
||||
sudo kill -9 PID
|
||||
```
|
||||
|
||||
### Database Backup
|
||||
|
||||
```bash
|
||||
# Quick backup
|
||||
pg_dump -h 192.168.10.130 -U songlyric_user -d church_songlyric > ~/backup_$(date +%Y%m%d_%H%M%S).sql
|
||||
|
||||
# Restore from backup
|
||||
psql -h 192.168.10.130 -U songlyric_user -d church_songlyric < ~/backup_file.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Server Maintenance
|
||||
|
||||
### Update System
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt upgrade -y
|
||||
sudo apt autoremove -y
|
||||
```
|
||||
|
||||
### Check Disk Space
|
||||
|
||||
```bash
|
||||
df -h
|
||||
du -sh /var/www/church-songlyric
|
||||
```
|
||||
|
||||
### Monitor Resources
|
||||
|
||||
```bash
|
||||
# CPU and memory usage
|
||||
htop
|
||||
|
||||
# Or simpler
|
||||
top
|
||||
|
||||
# Disk I/O
|
||||
iotop
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Security
|
||||
|
||||
### Firewall Status
|
||||
|
||||
```bash
|
||||
sudo ufw status verbose
|
||||
```
|
||||
|
||||
### Add Firewall Rules
|
||||
|
||||
```bash
|
||||
sudo ufw allow 5100/tcp
|
||||
sudo ufw allow 80/tcp
|
||||
sudo ufw allow 443/tcp
|
||||
```
|
||||
|
||||
### Check Failed Login Attempts
|
||||
|
||||
```bash
|
||||
sudo grep "Failed password" /var/log/auth.log | tail -20
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Quick Reference Card** - Print or save this for easy access!
|
||||
Reference in New Issue
Block a user