Initial
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
"""
|
||||
Deployment diagnostic script for /product-finder
|
||||
Run this on the server to verify configuration
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
|
||||
print("=" * 70)
|
||||
print("CGW PRODUCT FINDER - DEPLOYMENT DIAGNOSTIC")
|
||||
print("=" * 70)
|
||||
print()
|
||||
|
||||
# Check Python version
|
||||
print("📌 Python Environment:")
|
||||
print(f" Version: {sys.version}")
|
||||
print(f" Executable: {sys.executable}")
|
||||
print(f" Current Directory: {os.getcwd()}")
|
||||
print()
|
||||
|
||||
# Check environment variable
|
||||
print("📌 Environment Variables:")
|
||||
app_root_env = os.environ.get('APPLICATION_ROOT')
|
||||
if app_root_env:
|
||||
print(f" APPLICATION_ROOT: {app_root_env} ✓")
|
||||
else:
|
||||
print(f" APPLICATION_ROOT: NOT SET ⚠️")
|
||||
print(f" Setting temporarily for test: /product-finder")
|
||||
os.environ['APPLICATION_ROOT'] = '/product-finder'
|
||||
print()
|
||||
|
||||
# Try importing Flask
|
||||
print("📌 Flask Installation:")
|
||||
try:
|
||||
import flask
|
||||
print(f" Flask version: {flask.__version__} ✓")
|
||||
except ImportError as e:
|
||||
print(f" ✗ Flask not installed: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
# Try importing app
|
||||
print()
|
||||
print("📌 Application Import:")
|
||||
try:
|
||||
from app import app
|
||||
print(f" ✓ App imported successfully")
|
||||
except Exception as e:
|
||||
print(f" ✗ Error importing app:")
|
||||
print(f" {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
|
||||
# Check app configuration
|
||||
print()
|
||||
print("📌 Application Configuration:")
|
||||
print(f" APPLICATION_ROOT: {app.config.get('APPLICATION_ROOT')}")
|
||||
print(f" SECRET_KEY set: {'Yes' if app.config.get('SECRET_KEY') else 'No'}")
|
||||
print(f" DEBUG mode: {app.config.get('DEBUG')}")
|
||||
print(f" ENV: {app.config.get('ENV', 'not set')}")
|
||||
print()
|
||||
|
||||
# Check middleware
|
||||
print("📌 WSGI Middleware:")
|
||||
wsgi_app_type = type(app.wsgi_app).__name__
|
||||
if 'PrefixMiddleware' in str(type(app.wsgi_app)):
|
||||
print(f" ✓ PrefixMiddleware applied")
|
||||
print(f" Type: {wsgi_app_type}")
|
||||
elif wsgi_app_type == 'Flask':
|
||||
print(f" ⚠️ No middleware applied (running at root)")
|
||||
print(f" Type: {wsgi_app_type}")
|
||||
else:
|
||||
print(f" Middleware type: {wsgi_app_type}")
|
||||
print()
|
||||
|
||||
# Check routes
|
||||
print("📌 Registered Routes:")
|
||||
routes_count = len(list(app.url_map.iter_rules()))
|
||||
print(f" Total routes: {routes_count}")
|
||||
|
||||
# Check critical routes
|
||||
critical_routes = ['/login', '/api/login', '/users', '/api/session']
|
||||
print(f" Critical routes:")
|
||||
for route in critical_routes:
|
||||
found = any(str(rule) == route for rule in app.url_map.iter_rules())
|
||||
status = "✓" if found else "✗"
|
||||
print(f" {status} {route}")
|
||||
print()
|
||||
|
||||
# Check file structure
|
||||
print("📌 File Structure:")
|
||||
critical_files = [
|
||||
'app.py',
|
||||
'passenger_wsgi.py',
|
||||
'config.py',
|
||||
'templates/login.html',
|
||||
'templates/index2.html',
|
||||
'data/users.json'
|
||||
]
|
||||
|
||||
for file_path in critical_files:
|
||||
exists = os.path.exists(file_path)
|
||||
status = "✓" if exists else "✗"
|
||||
print(f" {status} {file_path}")
|
||||
print()
|
||||
|
||||
# Check dependencies
|
||||
print("📌 Python Dependencies:")
|
||||
deps = [
|
||||
('werkzeug', 'Werkzeug'),
|
||||
('flask', 'Flask'),
|
||||
]
|
||||
|
||||
try:
|
||||
from PIL import Image
|
||||
deps.append(('PIL', 'Pillow'))
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
for module_name, display_name in deps:
|
||||
try:
|
||||
module = __import__(module_name)
|
||||
version = getattr(module, '__version__', 'unknown')
|
||||
print(f" ✓ {display_name}: {version}")
|
||||
except ImportError:
|
||||
print(f" ✗ {display_name}: NOT INSTALLED")
|
||||
print()
|
||||
|
||||
# Summary
|
||||
print("=" * 70)
|
||||
print("DEPLOYMENT STATUS")
|
||||
print("=" * 70)
|
||||
|
||||
issues = []
|
||||
|
||||
if not os.environ.get('APPLICATION_ROOT'):
|
||||
issues.append("APPLICATION_ROOT not set in environment")
|
||||
|
||||
if app.config.get('APPLICATION_ROOT') == '/':
|
||||
issues.append("APPLICATION_ROOT is '/' but should be '/product-finder' for production")
|
||||
|
||||
if not os.path.exists('templates/login.html'):
|
||||
issues.append("Template files missing")
|
||||
|
||||
if not os.path.exists('data/users.json'):
|
||||
issues.append("User data file missing")
|
||||
|
||||
if issues:
|
||||
print()
|
||||
print("⚠️ ISSUES FOUND:")
|
||||
for issue in issues:
|
||||
print(f" - {issue}")
|
||||
print()
|
||||
print("📝 NEXT STEPS:")
|
||||
print(" 1. Upload missing files to server")
|
||||
print(" 2. Set APPLICATION_ROOT environment variable")
|
||||
print(" 3. Restart Passenger: touch tmp/restart.txt")
|
||||
print(" 4. Check error logs for details")
|
||||
else:
|
||||
print()
|
||||
print("✓ All checks passed!")
|
||||
print()
|
||||
print("🚀 DEPLOYMENT READY")
|
||||
print()
|
||||
print("To restart Passenger:")
|
||||
print(" mkdir -p tmp && touch tmp/restart.txt")
|
||||
print()
|
||||
print("To test:")
|
||||
print(" https://columbiawindows.com/product-finder/")
|
||||
|
||||
print()
|
||||
print("=" * 70)
|
||||
Reference in New Issue
Block a user