Files
Church-Music/new-site/STARTUP_CHECKLIST.md

4.1 KiB

Startup Checklist - House of Prayer Music Database

Quick Health Check

Run this command to verify all services:

./scripts/health-check.sh

Manual Service Verification

1. Frontend (Vite Dev Server)

  • Port: 5100
  • Check: lsof -i:5100 -sTCP:LISTEN
  • Start: cd frontend && npm run dev &
  • Log: Check output or /tmp/frontend.log

2. Backend (Node/Express API)

  • Port: 8080
  • Check: lsof -i:8080 -sTCP:LISTEN
  • Test: curl http://localhost:8080/api/songs
  • Start: cd backend && node server.js &

3. Nginx (Reverse Proxy + HTTPS)

  • Port: 443 (HTTPS), 80 (HTTP redirect)
  • Check: sudo lsof -i:443 -sTCP:LISTEN
  • Status: systemctl status nginx
  • Restart: sudo systemctl restart nginx

4. PostgreSQL Database

  • Port: 5432
  • Check: sudo systemctl status postgresql
  • Test: psql -U church_admin -d church_songlyric -c "SELECT COUNT(*) FROM songs;"

Common Issues & Solutions

Issue: "Blocked request. This host is not allowed"

Root Cause: Vite's allowedHosts configuration not loaded or outdated frontend process

Solution:

  1. Check frontend/vite.config.js has correct allowedHosts array
  2. Kill old Vite process: kill $(lsof -ti:5100)
  3. Restart frontend: cd frontend && npm run dev &
  4. Test: curl -H "Host: houseofprayer.ddns.net" http://localhost:5100/

Prevention: Always restart frontend after config changes

Issue: Frontend not accessible externally

Checklist:

  • DNS resolves: nslookup houseofprayer.ddns.net → 170.254.17.146
  • Firewall allows 443: sudo ufw status | grep 443
  • Nginx running: systemctl is-active nginx
  • SSL cert valid: sudo certbot certificates
  • Frontend responds locally: curl http://localhost:5100

Issue: Backend API 404 errors

Checklist:

  • Backend process running: ps aux | grep 'node server.js'
  • Port 8080 listening: lsof -i:8080
  • Database connected: Check backend logs
  • CORS configured for domain: See server.js allowedOrigins

Configuration Files to Monitor

  1. frontend/vite.config.js - Frontend dev server settings

    • allowedHosts must include domain and wildcards
    • host: true enables network access
    • Restart required after changes
  2. backend/server.js - Backend API configuration

    • allowedOrigins in CORS middleware
    • Database connection settings
    • Port 8080
  3. nginx-ssl.conf - Reverse proxy and SSL

    • Proxies / to frontend (5100)
    • Proxies /api to backend (8080)
    • SSL certificates location
  4. backend/.env - Environment variables (if exists)

    • Database credentials
    • JWT secrets
    • Port settings

Testing External Access

# From server (localhost)
curl -H "Host: houseofprayer.ddns.net" http://localhost:5100/

# From any device on network
curl http://192.168.10.130:5100/

# From internet (public)
curl https://houseofprayer.ddns.net

Logs Location

  • Frontend: Terminal output or /tmp/frontend.log
  • Backend: Terminal output or backend/logs/
  • Nginx Access: /var/log/nginx/church-music-access.log
  • Nginx Error: /var/log/nginx/church-music-error.log
  • PostgreSQL: /var/log/postgresql/

Emergency Recovery

If site is completely down:

# Kill all processes
killall node
kill $(lsof -ti:5100)
kill $(lsof -ti:8080)

# Restart PostgreSQL
sudo systemctl restart postgresql

# Restart Nginx
sudo systemctl restart nginx

# Start backend
cd /media/pts/Website/Church_HOP_MusicData/new-site/backend
node server.js > /tmp/backend.log 2>&1 &

# Start frontend
cd /media/pts/Website/Church_HOP_MusicData/new-site/frontend
npm run dev > /tmp/frontend.log 2>&1 &

# Verify
sleep 3
lsof -i:5100 -i:8080 | grep LISTEN

Production Deployment Notes

For production, replace Vite dev server with built static files:

# Build frontend
cd frontend
npm run build

# Serve with Nginx (update nginx-ssl.conf location / block)
# Point to: /media/pts/Website/Church_HOP_MusicData/new-site/frontend/dist

Last Updated: 2026-01-26
Site URL: https://houseofprayer.ddns.net
Server IP: 170.254.17.146