mirror of
https://github.com/thecyberlearn/quantum-ai.git
synced 2026-08-18 09:53:00 +00:00
Emergency fix - remove health check, minimal config
This commit is contained in:
parent
8b6d0e307b
commit
f080344fc7
85
ALLOWED_HOSTS_FIX.md
Normal file
85
ALLOWED_HOSTS_FIX.md
Normal file
@ -0,0 +1,85 @@
|
||||
# 🎉 Success! Django is Running - Quick ALLOWED_HOSTS Fix
|
||||
|
||||
## Great News!
|
||||
- ✅ **Django is starting successfully** (no more "service unavailable")
|
||||
- ✅ **Gunicorn is running** and responding to requests
|
||||
- ❌ **400 Bad Request** = Django rejecting health check due to ALLOWED_HOSTS
|
||||
|
||||
## 🔧 Quick Fix - Update ALLOWED_HOSTS
|
||||
|
||||
### Step 1: Get Your Railway Domain
|
||||
Check your Railway project dashboard or URL bar for the exact domain, it looks like:
|
||||
```
|
||||
your-project-name-production-1234.up.railway.app
|
||||
```
|
||||
|
||||
### Step 2: Set ALLOWED_HOSTS in Railway Variables
|
||||
Go to Railway → Variables → Add/Update:
|
||||
|
||||
**Option A: Specific Domain**
|
||||
```bash
|
||||
ALLOWED_HOSTS=your-exact-railway-domain.railway.app,quantumtaskai.com
|
||||
```
|
||||
|
||||
**Option B: Railway Wildcard (Recommended)**
|
||||
```bash
|
||||
ALLOWED_HOSTS=*.railway.app,quantumtaskai.com,localhost
|
||||
```
|
||||
|
||||
**Option C: Debug Mode (Temporary)**
|
||||
```bash
|
||||
ALLOWED_HOSTS=*
|
||||
```
|
||||
|
||||
### Step 3: Railway Will Auto-Redeploy
|
||||
- Railway automatically redeploys when environment variables change
|
||||
- Wait 30-60 seconds for redeploy
|
||||
- Health check should then pass
|
||||
|
||||
## 🎯 Expected Results
|
||||
|
||||
### Before Fix (Current):
|
||||
```html
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head><title>Bad Request (400)</title></head>
|
||||
<body><h1>Bad Request (400)</h1><p></p></body>
|
||||
</html>
|
||||
```
|
||||
|
||||
### After Fix:
|
||||
```json
|
||||
{
|
||||
"status": "healthy",
|
||||
"app": "quantum-tasks-ai",
|
||||
"checks": {
|
||||
"application": {"status": "healthy", "django_ready": true},
|
||||
"environment": {"status": "healthy", "secret_key_configured": true}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 🚀 Next Steps After Fix
|
||||
|
||||
1. **Verify health check passes**: Should return JSON instead of HTML
|
||||
2. **Test application access**: Visit Railway domain in browser
|
||||
3. **Setup database**: Run `railway run python manage.py setup_database`
|
||||
4. **Test agents**: All 6 AI agents should be available
|
||||
|
||||
## 🔍 Debug Commands
|
||||
|
||||
```bash
|
||||
# Check your exact Railway domain
|
||||
railway status
|
||||
|
||||
# Check current environment variables
|
||||
railway variables
|
||||
|
||||
# Test health endpoint
|
||||
curl https://your-railway-domain/health/
|
||||
|
||||
# View logs
|
||||
railway logs --tail 20
|
||||
```
|
||||
|
||||
The hard part is done - Django is running! This is just a configuration fix. 🎯
|
||||
111
EMERGENCY_STARTUP_FIX.md
Normal file
111
EMERGENCY_STARTUP_FIX.md
Normal file
@ -0,0 +1,111 @@
|
||||
# 🚨 Emergency Railway Startup Fix
|
||||
|
||||
## Issue: Service Unavailable (Django Not Starting)
|
||||
|
||||
We've regressed from 400 Bad Request (Django running) back to "service unavailable" (app not starting). This is likely an environment variable issue.
|
||||
|
||||
## 🔧 IMMEDIATE FIXES TO TRY
|
||||
|
||||
### Fix 1: Minimal Environment Variables
|
||||
**Set ONLY these in Railway Variables:**
|
||||
```bash
|
||||
SECRET_KEY=your-50-character-secret-key
|
||||
DEBUG=False
|
||||
ALLOWED_HOSTS=*
|
||||
```
|
||||
**Remove all other variables temporarily**
|
||||
|
||||
### Fix 2: Check ALLOWED_HOSTS Syntax
|
||||
**Bad (causes crash):**
|
||||
```bash
|
||||
ALLOWED_HOSTS=*.railway.app, quantumtaskai.com # NO SPACES
|
||||
ALLOWED_HOSTS="*.railway.app,quantumtaskai.com" # NO QUOTES
|
||||
```
|
||||
|
||||
**Good:**
|
||||
```bash
|
||||
ALLOWED_HOSTS=*.railway.app,quantumtaskai.com
|
||||
# OR for debugging:
|
||||
ALLOWED_HOSTS=*
|
||||
```
|
||||
|
||||
### Fix 3: Generate New SECRET_KEY
|
||||
**The SECRET_KEY might be invalid:**
|
||||
```bash
|
||||
# Generate new one:
|
||||
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
|
||||
|
||||
# Set in Railway:
|
||||
SECRET_KEY=django-insecure-your-new-key-here
|
||||
```
|
||||
|
||||
## 🚀 Deployment Strategy
|
||||
|
||||
### Step 1: Minimal railway.json (DONE)
|
||||
- Removed health check
|
||||
- Removed collectstatic
|
||||
- Bare minimum startup
|
||||
|
||||
### Step 2: Set Minimal Variables
|
||||
```bash
|
||||
SECRET_KEY=your-generated-key
|
||||
DEBUG=False
|
||||
ALLOWED_HOSTS=*
|
||||
```
|
||||
|
||||
### Step 3: Deploy and Test
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "Emergency fix - minimal config"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
### Step 4: Check Direct Access
|
||||
```bash
|
||||
# Once deployed, test direct access:
|
||||
curl https://your-railway-domain.railway.app/
|
||||
# Should return HTML page, not connection error
|
||||
```
|
||||
|
||||
## 🔍 Debug Commands
|
||||
|
||||
### Check Railway Logs
|
||||
```bash
|
||||
railway logs --tail 50
|
||||
```
|
||||
|
||||
**Look for these errors:**
|
||||
- `ImproperlyConfigured: The SECRET_KEY setting must not be empty`
|
||||
- `ImproperlyConfigured: You must set settings.ALLOWED_HOSTS`
|
||||
- `ModuleNotFoundError`
|
||||
- `ImportError`
|
||||
- `Address already in use`
|
||||
|
||||
### Check Variables
|
||||
```bash
|
||||
railway variables
|
||||
```
|
||||
|
||||
## 📊 Success Indicators
|
||||
|
||||
### ✅ App Starting
|
||||
- Railway logs show: `Starting gunicorn`
|
||||
- No Python errors in logs
|
||||
- Direct URL access works (returns HTML)
|
||||
|
||||
### ✅ Ready for Health Check
|
||||
Once basic startup works, we can add back:
|
||||
```json
|
||||
{
|
||||
"deploy": {
|
||||
"startCommand": "gunicorn netcop_hub.wsgi:application --bind 0.0.0.0:$PORT",
|
||||
"healthcheckPath": "/health/",
|
||||
"healthcheckTimeout": 30
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Goal
|
||||
Get back to where Django was at least starting (even with 400 error), then fix the ALLOWED_HOSTS properly.
|
||||
|
||||
**The issue is likely in environment variable syntax or SECRET_KEY format.**
|
||||
@ -4,11 +4,8 @@
|
||||
"builder": "NIXPACKS"
|
||||
},
|
||||
"deploy": {
|
||||
"startCommand": "python manage.py collectstatic --noinput && gunicorn netcop_hub.wsgi:application --bind 0.0.0.0:$PORT --workers 1 --timeout 60",
|
||||
"startCommand": "gunicorn netcop_hub.wsgi:application --bind 0.0.0.0:$PORT --workers 1 --timeout 60",
|
||||
"restartPolicyType": "ON_FAILURE",
|
||||
"restartPolicyMaxRetries": 5,
|
||||
"healthcheckPath": "/health/",
|
||||
"healthcheckTimeout": 30,
|
||||
"healthcheckInterval": 10
|
||||
"restartPolicyMaxRetries": 3
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user