This commit is contained in:
Jason
2026-04-11 00:04:09 -05:00
commit 7a2fffd62e
110 changed files with 51809 additions and 0 deletions
+171
View File
@@ -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)