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

4.1 KiB

PostgreSQL Setup Complete

Date: December 14, 2025
Status: All services running with PostgreSQL

What Was Done

1. Switched from SQLite to PostgreSQL

  • Updated postgresql_models.py to use PostgreSQL connection
  • Connection string: postgresql://songlyric_user:MySecurePass123@192.168.10.130:5432/church_songlyric
  • Removed SQLite database references
  • Granted proper permissions to songlyric_user

2. Removed All MongoDB References

  • Deleted app_mongodb_backup.py
  • Deleted check_mongo_data.py
  • Deleted migrate_to_mongodb.py
  • Deleted mongodb_models.py
  • Restored SQLite-based app.py (which works with PostgreSQL via SQLAlchemy)

3. Configured Port 5100

4. Configured DNS Support

  • Added CORS support for houseofprayer.ddns.net domain
  • Supports both HTTP and HTTPS
  • Supports multiple ports (3000, 5100)
  • Full wildcard support for all origins

5. Installed Bootstrap

  • Bootstrap 5.3.8 installed
  • Bootstrap Icons 1.13.1 installed
  • Mobile-responsive configuration
  • Imported in frontend/src/index.js

Current Running Services

Backend (Port 5100)

Frontend (Port 3000)

Database Information

  • Database: church_songlyric
  • User: songlyric_user
  • Password: MySecurePass123
  • Host: 192.168.10.130
  • Port: 5432
  • Tables: songs, profiles, plans, plan_songs, profile_songs

API Endpoints

All endpoints available at http://192.168.10.130:5100/api/

  • GET /api/songs - List all songs
  • POST /api/songs - Create new song
  • GET /api/songs/{id} - Get song by ID
  • PUT /api/songs/{id} - Update song
  • DELETE /api/songs/{id} - Delete song
  • GET /api/profiles - List all profiles
  • GET /api/plans - List all plans

Testing

# Test backend
curl http://localhost:5100/api/songs

# Test frontend
curl http://localhost:3000

# Test with network IP
curl http://192.168.10.130:5100/api/songs

# Test with DNS (if configured)
curl http://houseofprayer.ddns.net:5100/api/songs

Files Modified

  1. backend/postgresql_models.py - Updated to use PostgreSQL
  2. backend/app.py - Updated CORS and port configuration
  3. backend/.env - Updated PostgreSQL password
  4. frontend/src/setupProxy.js - Updated to proxy to port 5100
  5. frontend/src/index.js - Bootstrap imports added

Files Deleted

  1. backend/app_mongodb_backup.py
  2. backend/check_mongo_data.py
  3. backend/migrate_to_mongodb.py
  4. backend/mongodb_models.py

Next Steps

  1. Configure DNS forwarding on your router for ports 3000 and 5100
  2. Test external access via http://houseofprayer.ddns.net:3000
  3. Consider setting up HTTPS with Let's Encrypt
  4. Set up PM2 for production deployment
  5. Configure Nginx reverse proxy (optional)

Troubleshooting

If backend won't start

cd /media/pts/Website/Church_HOP_MusicData/backend
source venv/bin/activate
python app.py

If database connection fails

# Test PostgreSQL connection
sudo -u postgres psql -d church_songlyric -c "SELECT 1"

# Reset user password
sudo -u postgres psql -d church_songlyric -c "ALTER USER songlyric_user WITH PASSWORD 'MySecurePass123';"

# Grant permissions
sudo -u postgres psql -d church_songlyric -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO songlyric_user;"

If frontend won't start

cd /media/pts/Website/Church_HOP_MusicData/frontend
npm start

Everything is ready for production use with PostgreSQL, mobile-optimized Bootstrap UI, and DNS support! 🎉