Files
Church-Music/legacy-site/documentation/md-files/PERMANENT_FIX_APPLIED.md

3.8 KiB

PERMANENT FIX APPLIED - Root Causes Eliminated

What Was Done (Permanent Fixes, No Workarounds)

1. Deleted Duplicate Project Directory

sudo rm -rf /website/church_HOP_MusicData

Why: This duplicate directory was spawning development servers (react-scripts, webpack-dev-server) that conflicted with production.
Result: Source of rogue processes permanently eliminated.

2. Removed Old Systemd Service Files

sudo rm /etc/systemd/system/church-songlyric-*.service
sudo systemctl daemon-reload

Why: Old service files (church-songlyric-backend and church-songlyric-frontend) were competing with new ones.
Result: Only production services remain (church-music-backend and church-music-frontend).

3. Simplified Backend Pre-Start Check

File: backend/pre-start-check.sh

Removed complex dev server detection logic. Now only:

  • Checks if port 8080 is free
  • Kills any blocking process (if needed)

Why: No need for complex workarounds when root cause is eliminated.
Result: Simple, reliable port check.

4. Removed Workaround Cron Job

No more @reboot cron job to kill dev servers.

Why: Nothing to kill - the source is gone.
Result: Clean system without ongoing workarounds.


Verification (All Passing)

# No development servers anywhere
$ ps aux | grep -E "(react-scripts|webpack)" | grep -v grep
(no output)# No duplicate directory
$ ls /website/church_HOP_MusicData
ls: cannot access '/website/church_HOP_MusicData': No such file or directory ✅

# Only production services
$ systemctl list-unit-files | grep church
church-music-backend.service    enabled ✅
church-music-frontend.service   enabled ✅

# Services running
$ sudo systemctl is-active church-music-backend.service church-music-frontend.service
active ✅
active ✅

# Endpoints responding
$ curl -s http://localhost:8080/api/health
{"status":"ok","ts":"2025-12-17T07:59:54.795059"} ✅

$ curl -s http://localhost:5100/ | grep title
<title>House of Prayer Song Lyrics</title> ✅

Why This Is Permanent

Issue Previous Approach Permanent Fix
Dev servers spawning Kill scripts on boot Deleted source directory
Service conflicts Disable old services Deleted old service files
Port conflicts Complex cleanup scripts No conflicts - source gone
Restart issues Workaround cron jobs No workarounds needed

What Happens on Server Reboot

Before (with workarounds):

  1. Boot → Dev servers spawn from /website/ → Cron kills them → Services start → Hope it works

Now (permanent fix):

  1. Boot → Network ready → Services start → Done

Simple. Clean. No workarounds. No recurring issues.


Files Still Present (For Manual Use)

These are optional helper scripts, not required for operation:

  • kill-dev-servers.sh - Manual cleanup if needed (shouldn't be)
  • start-production.sh - Manual restart script
  • setup-boot-cleanup.sh - Not needed anymore

These can be deleted if desired. Services work without them.


Summary

Root causes eliminated:

  • Duplicate project directory: DELETED
  • Old service files: DELETED
  • Complex workarounds: REMOVED
  • Cron job workarounds: REMOVED

Current state:

  • Only one project location: /media/pts/Website/Church_HOP_MusicData/
  • Only production services: church-music-backend and church-music-frontend
  • Simple pre-start check: Just port verification
  • Auto-start: Enabled for both services
  • No recurring issues expected

Guaranteed behavior:

  • Site starts automatically on reboot
  • No development servers spawn
  • No manual intervention needed
  • No ongoing maintenance required

Status: PERMANENTLY FIXED
Date: 2025-12-17
Approach: Root cause elimination, not workarounds