diff --git a/Dockerfile.dokploy.debug b/Dockerfile.dokploy.debug index 678586f..11e24d0 100644 --- a/Dockerfile.dokploy.debug +++ b/Dockerfile.dokploy.debug @@ -23,7 +23,7 @@ ENV PYTHONUNBUFFERED=1 \ ALLOWED_HOSTS="*" # Collect static files -RUN python manage.py collectstatic --noinput --settings=netcop_hub.settings || true +RUN python manage.py collectstatic --noinput --settings=debug_settings || true # Make startup script executable RUN chmod +x start-dokploy.sh @@ -33,7 +33,7 @@ EXPOSE 3000 # Debug: Print Django info RUN python manage.py --version -RUN python manage.py check --settings=netcop_hub.settings || true +RUN python manage.py check --settings=debug_settings || true # Start with debug info CMD echo "๐Ÿ› Debug Mode - Django $(python manage.py --version)" && \ @@ -42,13 +42,16 @@ CMD echo "๐Ÿ› Debug Mode - Django $(python manage.py --version)" && \ echo " - ALLOWED_HOSTS: $ALLOWED_HOSTS" && \ echo " - SECRET_KEY: $(echo $SECRET_KEY | cut -c1-10)..." && \ echo "๐ŸŒ Testing Django config..." && \ - python manage.py check --settings=netcop_hub.settings && \ + python manage.py check --settings=debug_settings && \ echo "โœ… Django config OK" && \ - echo "๐Ÿš€ Starting server..." && \ - gunicorn netcop_hub.wsgi:application \ + echo "๐Ÿงช Testing URL patterns..." && \ + python manage.py show_urls --settings=debug_settings || echo "show_urls not available" && \ + echo "๐Ÿš€ Starting server with detailed logging..." && \ + DJANGO_SETTINGS_MODULE=debug_settings gunicorn netcop_hub.wsgi:application --bind 0.0.0.0:3000 \ --workers 1 \ --timeout 120 \ --log-level debug \ --access-logfile - \ - --error-logfile - + --error-logfile - \ + --capture-output diff --git a/debug_middleware.py b/debug_middleware.py new file mode 100644 index 0000000..6dda50b --- /dev/null +++ b/debug_middleware.py @@ -0,0 +1,33 @@ +""" +Debug middleware for troubleshooting Dokploy 404 issues +""" +import logging + +logger = logging.getLogger(__name__) + +class DebugRequestMiddleware: + """Middleware to log all incoming requests for debugging""" + + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + # Log incoming request details + logger.info(f"๐ŸŒ INCOMING REQUEST:") + logger.info(f" - Method: {request.method}") + logger.info(f" - Path: {request.path}") + logger.info(f" - Full Path: {request.get_full_path()}") + logger.info(f" - Host: {request.get_host()}") + logger.info(f" - User Agent: {request.META.get('HTTP_USER_AGENT', 'Unknown')[:100]}") + logger.info(f" - Remote IP: {request.META.get('REMOTE_ADDR', 'Unknown')}") + logger.info(f" - Headers: {dict(request.headers)}") + + # Process request + response = self.get_response(request) + + # Log response + logger.info(f"๐Ÿ“ค RESPONSE:") + logger.info(f" - Status Code: {response.status_code}") + logger.info(f" - Content Type: {response.get('Content-Type', 'Unknown')}") + + return response diff --git a/debug_settings.py b/debug_settings.py new file mode 100644 index 0000000..1db9ca1 --- /dev/null +++ b/debug_settings.py @@ -0,0 +1,32 @@ +# Debug settings for Dokploy troubleshooting +from netcop_hub.settings import * + +# Enable debug mode +DEBUG = True + +# Add debug middleware at the top +MIDDLEWARE = ['debug_middleware.DebugRequestMiddleware'] + MIDDLEWARE + +# Enhanced logging +LOGGING['loggers']['root']['level'] = 'DEBUG' +LOGGING['handlers']['console']['level'] = 'DEBUG' + +# Print all URLs at startup +print("๐Ÿ”— Available URL patterns:") +try: + from django.urls import get_resolver + resolver = get_resolver() + url_patterns = [] + + def extract_patterns(patterns, prefix=''): + for pattern in patterns: + if hasattr(pattern, 'url_patterns'): + extract_patterns(pattern.url_patterns, prefix + str(pattern.pattern)) + else: + url_patterns.append(prefix + str(pattern.pattern)) + + extract_patterns(resolver.url_patterns) + for pattern in url_patterns[:20]: # Show first 20 + print(f" - {pattern}") +except Exception as e: + print(f" - Error loading URL patterns: {e}") diff --git a/dokploy.json b/dokploy.json index d870948..1003dc2 100644 --- a/dokploy.json +++ b/dokploy.json @@ -10,6 +10,7 @@ "PYTHONUNBUFFERED": "1", "DEBUG": "true", "SECRET_KEY": "debug-key-change-in-production-123456789", - "ALLOWED_HOSTS": "*" + "ALLOWED_HOSTS": "website-quantumtaskai-wrczik-cc50ac-31-97-62-205.traefik.me,localhost,127.0.0.1,*", + "DOKPLOY_PROJECT_NAME": "quantum-tasks-ai" } }