diff --git a/Dockerfile b/Dockerfile index 4bf00bf..67176f0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,4 +22,5 @@ COPY . /app RUN --mount=type=cache,target=/root/.cache/uv \ uv sync --locked --no-dev -CMD ["uv", "run", "fastapi", "run", "src/two_chainz", "--port", "80", "--proxy-headers"] +CMD ["uv", "run", "fastapi", "run", "src/two_chainz", "--port", "80", "--proxy-headers", "--forwarded-allow-ips", "*"] + diff --git a/src/two_chainz/__init__.py b/src/two_chainz/__init__.py index 29911f5..dd81c4a 100644 --- a/src/two_chainz/__init__.py +++ b/src/two_chainz/__init__.py @@ -3,17 +3,18 @@ import time import tomllib from datetime import datetime from pathlib import Path - -from fastapi import FastAPI +import logging +from fastapi import FastAPI, Request from fastapi.middleware.trustedhost import TrustedHostMiddleware from fastapi.staticfiles import StaticFiles app = FastAPI() app.add_middleware( TrustedHostMiddleware, - allowed_hosts=["ansonbiggs.com", "*.ansonbiggs.com", "localhost"], + allowed_hosts=["*"], ) - +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) start_time = time.time() @@ -30,6 +31,22 @@ def read_data() -> dict[str, str]: data = read_data() +# Log all requests to debug issues +@app.middleware("http") +async def log_requests(request: Request, call_next): + # Log what's coming in + logger.info(f"Request: {request.method} {request.url.path}") + logger.info(f"Host header: {request.headers.get('host')}") + logger.info(f"CF-Ray: {request.headers.get('cf-ray', 'Not from Cloudflare')}") + + try: + response = await call_next(request) + return response + except Exception as e: + logger.error(f"Request processing failed: {e}") + raise + + @app.get("/api/") async def ping(): return {