141 lines
2.9 KiB
Markdown
141 lines
2.9 KiB
Markdown
|
|
# 🔒 PORT CONFIGURATION - PERMANENTLY LOCKED
|
||
|
|
|
||
|
|
## Church Music Database Ports
|
||
|
|
|
||
|
|
**DO NOT CHANGE THESE PORTS**
|
||
|
|
|
||
|
|
### Production Ports (LOCKED)
|
||
|
|
|
||
|
|
- **Backend API:** `8080` (Gunicorn + Flask)
|
||
|
|
- **Frontend:** `5100` (Node serve)
|
||
|
|
- **HTTPS Proxy:** `443` (Nginx → 8080/5100)
|
||
|
|
|
||
|
|
### Port Status
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check ports
|
||
|
|
sudo lsof -i :8080 -i :5100 | grep LISTEN
|
||
|
|
|
||
|
|
# Expected output:
|
||
|
|
# gunicorn ... *:8080 (LISTEN) - Backend
|
||
|
|
# node ... *:5100 (LISTEN) - Frontend
|
||
|
|
```
|
||
|
|
|
||
|
|
## Service Management
|
||
|
|
|
||
|
|
### Start Services (Correct Way)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo systemctl start church-music-backend church-music-frontend
|
||
|
|
```
|
||
|
|
|
||
|
|
### Stop Services
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo systemctl stop church-music-backend church-music-frontend
|
||
|
|
```
|
||
|
|
|
||
|
|
### Restart Services
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo systemctl restart church-music-backend church-music-frontend
|
||
|
|
```
|
||
|
|
|
||
|
|
### Check Status
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo systemctl status church-music-backend church-music-frontend
|
||
|
|
```
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### Port 8080 In Use
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Kill any rogue process
|
||
|
|
sudo lsof -ti:8080 | xargs -r sudo kill -9
|
||
|
|
sudo systemctl restart church-music-backend
|
||
|
|
```
|
||
|
|
|
||
|
|
### Port 5100 In Use
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Kill any rogue process
|
||
|
|
sudo lsof -ti:5100 | xargs -r sudo kill -9
|
||
|
|
sudo systemctl restart church-music-frontend
|
||
|
|
```
|
||
|
|
|
||
|
|
### Both Ports Blocked
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Nuclear option - kill all and restart
|
||
|
|
sudo pkill -9 gunicorn
|
||
|
|
sudo pkill -9 serve
|
||
|
|
sleep 2
|
||
|
|
sudo systemctl restart church-music-backend church-music-frontend
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configuration Files
|
||
|
|
|
||
|
|
### Backend Service
|
||
|
|
|
||
|
|
`/etc/systemd/system/church-music-backend.service`
|
||
|
|
|
||
|
|
- Binds to: `127.0.0.1:8080`
|
||
|
|
- Workers: 2
|
||
|
|
- Auto-restart: Yes
|
||
|
|
|
||
|
|
### Frontend Service
|
||
|
|
|
||
|
|
`/etc/systemd/system/church-music-frontend.service`
|
||
|
|
|
||
|
|
- Binds to: `0.0.0.0:5100`
|
||
|
|
- Serves: `/media/pts/Website/Church_HOP_MusicData/frontend/build`
|
||
|
|
- Auto-restart: Yes
|
||
|
|
|
||
|
|
### Nginx Proxy
|
||
|
|
|
||
|
|
`/etc/nginx/sites-enabled/church-music*`
|
||
|
|
|
||
|
|
- Proxies `https://houseofprayer.ddns.net/api/*` → `http://127.0.0.1:8080/api/*`
|
||
|
|
- Proxies `https://houseofprayer.ddns.net/*` → `http://127.0.0.1:5100/*`
|
||
|
|
|
||
|
|
## Architecture
|
||
|
|
|
||
|
|
```
|
||
|
|
Internet (HTTPS :443)
|
||
|
|
↓
|
||
|
|
Nginx Reverse Proxy
|
||
|
|
↓
|
||
|
|
┌───────────────┬────────────────┐
|
||
|
|
↓ ↓ ↓
|
||
|
|
Frontend Backend API Database
|
||
|
|
(Port 5100) (Port 8080) (PostgreSQL :5432)
|
||
|
|
React Build Flask/Gunicorn
|
||
|
|
```
|
||
|
|
|
||
|
|
## DO NOT
|
||
|
|
|
||
|
|
- ❌ Change ports 8080 or 5100
|
||
|
|
- ❌ Run manual gunicorn/serve on different ports
|
||
|
|
- ❌ Use ports 3000, 5000, 5965, or any other port
|
||
|
|
- ❌ Run services outside of systemd
|
||
|
|
- ❌ Modify port configuration without updating ALL of:
|
||
|
|
- Systemd service files
|
||
|
|
- Nginx configuration
|
||
|
|
- Backend configuration
|
||
|
|
- Frontend API base URL
|
||
|
|
|
||
|
|
## Auto-Start on Boot
|
||
|
|
|
||
|
|
Services are enabled to start automatically:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo systemctl is-enabled church-music-backend church-music-frontend
|
||
|
|
# Both should show: enabled
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
**Last Verified:** December 17, 2025 22:29 CST
|
||
|
|
**Status:** ✅ LOCKED AND OPERATIONAL
|