164 lines
4.1 KiB
Markdown
164 lines
4.1 KiB
Markdown
# Startup Checklist - House of Prayer Music Database
|
|
|
|
## Quick Health Check
|
|
|
|
Run this command to verify all services:
|
|
|
|
```bash
|
|
./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
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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
|