docs: add frontend database connection troubleshooting guide
This commit is contained in:
200
FRONTEND_DB_CONNECTION_FIX.md
Normal file
200
FRONTEND_DB_CONNECTION_FIX.md
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
# Frontend Database Connection Fix
|
||||||
|
|
||||||
|
## 🐛 Issue Identified
|
||||||
|
|
||||||
|
**Problem:** All frontend admin pages showing "Internal server error"
|
||||||
|
|
||||||
|
**Root Cause:** Domain mismatch between frontend and Directus API
|
||||||
|
|
||||||
|
### Configuration Before Fix:
|
||||||
|
- **Frontend Domain:** `launch.jumpstartscaling.com`
|
||||||
|
- **Directus Domain:** `spark.jumpstartscaling.com`
|
||||||
|
- **Frontend Environment Variable:** `PUBLIC_DIRECTUS_URL='https://spark.jumpstartscaling.com'`
|
||||||
|
- **Directus PUBLIC_URL:** `'https://spark.jumpstartscaling.com'`
|
||||||
|
|
||||||
|
**Result:** Frontend trying to connect to `spark.jumpstartscaling.com` but CORS not allowing cross-domain requests properly.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Fix Applied
|
||||||
|
|
||||||
|
### Changes Made to `docker-compose.yaml`:
|
||||||
|
|
||||||
|
**1. Updated Directus Configuration (Lines 50-54):**
|
||||||
|
```yaml
|
||||||
|
# Before:
|
||||||
|
CORS_ORIGIN: 'https://launch.jumpstartscaling.com,http://localhost:4321'
|
||||||
|
PUBLIC_URL: 'https://spark.jumpstartscaling.com'
|
||||||
|
|
||||||
|
# After:
|
||||||
|
CORS_ORIGIN: 'https://launch.jumpstartscaling.com,https://spark.jumpstartscaling.com,http://localhost:4321'
|
||||||
|
PUBLIC_URL: 'https://launch.jumpstartscaling.com'
|
||||||
|
```
|
||||||
|
|
||||||
|
**2. Updated Frontend Configuration (Line 79):**
|
||||||
|
```yaml
|
||||||
|
# Before:
|
||||||
|
PUBLIC_DIRECTUS_URL: 'https://spark.jumpstartscaling.com'
|
||||||
|
|
||||||
|
# After:
|
||||||
|
PUBLIC_DIRECTUS_URL: 'https://launch.jumpstartscaling.com'
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 Deployment Steps
|
||||||
|
|
||||||
|
1. ✅ **Committed Changes:** `git push gitea-https main`
|
||||||
|
2. ✅ **Directus Restarted:** Applied new CORS and PUBLIC_URL settings
|
||||||
|
3. 🔄 **Frontend Rebuild Required:** Coolify will automatically rebuild frontend with new environment variable
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧪 Testing After Deployment
|
||||||
|
|
||||||
|
Once Coolify completes the frontend rebuild (check Coolify dashboard), test these pages:
|
||||||
|
|
||||||
|
### Core Pages to Verify:
|
||||||
|
1. **Avatar Intelligence:** https://launch.jumpstartscaling.com/admin/content/avatars
|
||||||
|
2. **Sites Manager:** https://launch.jumpstartscaling.com/admin/sites
|
||||||
|
3. **Generated Articles:** https://launch.jumpstartscaling.com/admin/seo/articles
|
||||||
|
4. **Mission Control:** https://launch.jumpstartscaling.com/admin
|
||||||
|
|
||||||
|
### Expected Results:
|
||||||
|
- ✅ No "Internal server error"
|
||||||
|
- ✅ Empty data tables (no data yet) OR
|
||||||
|
- ✅ Data grids with test data
|
||||||
|
- ✅ Console shows successful API calls to `/items/{collection}`
|
||||||
|
|
||||||
|
### How to Verify:
|
||||||
|
```bash
|
||||||
|
# Open browser dev tools (F12)
|
||||||
|
# Navigate to Network tab
|
||||||
|
# Reload page
|
||||||
|
# Look for requests to: https://launch.jumpstartscaling.com/items/{collection}
|
||||||
|
# Should see: 200 OK responses
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 All Pages to Test
|
||||||
|
|
||||||
|
After deployment completes, verify these pages are working:
|
||||||
|
|
||||||
|
1. ✅ https://launch.jumpstartscaling.com/admin/content/avatars
|
||||||
|
2. ✅ https://launch.jumpstartscaling.com/admin/collections/avatar-variants
|
||||||
|
3. ✅ https://launch.jumpstartscaling.com/admin/collections/geo-intelligence
|
||||||
|
4. ✅ https://launch.jumpstartscaling.com/admin/collections/spintax-dictionaries
|
||||||
|
5. ✅ https://launch.jumpstartscaling.com/admin/collections/cartesian-patterns
|
||||||
|
6. ✅ https://launch.jumpstartscaling.com/admin/collections/campaign-masters
|
||||||
|
7. ✅ https://launch.jumpstartscaling.com/admin/collections/content-fragments
|
||||||
|
8. ✅ https://launch.jumpstartscaling.com/admin/collections/headline-inventory
|
||||||
|
9. ✅ https://launch.jumpstartscaling.com/admin/collections/offer-blocks
|
||||||
|
10. ✅ https://launch.jumpstartscaling.com/admin/collections/generation-jobs
|
||||||
|
11. ✅ https://launch.jumpstartscaling.com/admin/sites
|
||||||
|
12. ✅ https://launch.jumpstartscaling.com/admin/seo/articles
|
||||||
|
13. ✅ https://launch.jumpstartscaling.com/admin/leads
|
||||||
|
14. ✅ https://launch.jumpstartscaling.com/admin/settings
|
||||||
|
15. ✅ https://launch.jumpstartscaling.com/admin/content/work_log
|
||||||
|
16. ✅ https://launch.jumpstartscaling.com/admin/media/templates
|
||||||
|
17. ✅ https://launch.jumpstartscaling.com/admin/content-factory
|
||||||
|
18. ✅ https://launch.jumpstartscaling.com/admin
|
||||||
|
19. ✅ https://launch.jumpstartscaling.com/admin/sites/jumpstart
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔍 Possible Remaining Issues
|
||||||
|
|
||||||
|
If pages still show errors after deployment, check:
|
||||||
|
|
||||||
|
### 1. **Missing Collections in Database**
|
||||||
|
Some collections might not have database tables yet.
|
||||||
|
|
||||||
|
**Solution:**
|
||||||
|
```sql
|
||||||
|
-- Check which tables exist
|
||||||
|
SELECT tablename FROM pg_tables
|
||||||
|
WHERE schemaname = 'public'
|
||||||
|
AND tablename NOT LIKE 'directus_%';
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. **Hardcoded Data in Components**
|
||||||
|
Some components might have hardcoded mock data instead of API calls.
|
||||||
|
|
||||||
|
**Files to Check:**
|
||||||
|
- `frontend/src/components/admin/**/*.tsx`
|
||||||
|
- `frontend/src/pages/admin/**/*.astro`
|
||||||
|
|
||||||
|
**Look for:**
|
||||||
|
- `const mockData = [...]`
|
||||||
|
- Hardcoded arrays instead of `readItems()` calls
|
||||||
|
|
||||||
|
### 3. **TypeScript Type Mismatches**
|
||||||
|
Frontend types might not match database schema.
|
||||||
|
|
||||||
|
**Solution:**
|
||||||
|
- Compare `frontend/src/types/schema.ts` with `unified_schema.json`
|
||||||
|
- Ensure field names match exactly
|
||||||
|
|
||||||
|
### 4. **Missing API Token**
|
||||||
|
Some pages might need authentication.
|
||||||
|
|
||||||
|
**Solution:**
|
||||||
|
- Check if `DIRECTUS_ADMIN_TOKEN` is set in environment
|
||||||
|
- Verify API calls include authentication headers
|
||||||
|
|
||||||
|
### 5. **CORS Issues**
|
||||||
|
If specific API calls fail with CORS errors.
|
||||||
|
|
||||||
|
**Solution:**
|
||||||
|
- Add more origins to `CORS_ORIGIN` in docker-compose.yaml
|
||||||
|
- Check browser console for CORS-specific errors
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 Deployment Status
|
||||||
|
|
||||||
|
**Commits Pushed:**
|
||||||
|
- `c7e6dcb` - Updated Directus PUBLIC_URL and CORS
|
||||||
|
- `ab8511f` - Updated frontend PUBLIC_DIRECTUS_URL
|
||||||
|
|
||||||
|
**Services Restarted:**
|
||||||
|
- ✅ Directus (manual restart completed)
|
||||||
|
- 🔄 Frontend (waiting for Coolify auto-deploy)
|
||||||
|
|
||||||
|
**Next Action:**
|
||||||
|
Wait for Coolify to complete frontend rebuild (~2-5 minutes), then test all pages.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤖 For AI Agents
|
||||||
|
|
||||||
|
If pages still show errors after this fix:
|
||||||
|
|
||||||
|
1. **Check Coolify Deployment Logs**
|
||||||
|
- Verify frontend rebuild completed successfully
|
||||||
|
- Check for build errors
|
||||||
|
|
||||||
|
2. **Verify Environment Variables**
|
||||||
|
- Confirm `PUBLIC_DIRECTUS_URL` is set during build
|
||||||
|
- Check Astro build output for environment variable values
|
||||||
|
|
||||||
|
3. **Test API Directly**
|
||||||
|
```bash
|
||||||
|
curl https://launch.jumpstartscaling.com/items/sites
|
||||||
|
# Should return JSON, not HTML
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **Check Individual Page Code**
|
||||||
|
- Review each failing page's source code
|
||||||
|
- Verify it's using `readItems()` from Directus SDK
|
||||||
|
- Ensure no hardcoded data
|
||||||
|
|
||||||
|
5. **Database Schema Verification**
|
||||||
|
- Confirm all collections have corresponding database tables
|
||||||
|
- Verify foreign key relationships are correct
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Fix Applied:** December 14, 2025 10:25 AM EST
|
||||||
|
**Status:** 🔄 **Waiting for Coolify Deployment**
|
||||||
Reference in New Issue
Block a user