diff --git a/backend/main.py b/backend/main.py index 7573bd9..7dce956 100644 --- a/backend/main.py +++ b/backend/main.py @@ -44,17 +44,10 @@ remote_cache = "" job_type_cache = "" -env = os.getenv("ENVIRONMENT", "development").lower() - -is_prod = env == "production" - app = FastAPI( title="JobPT", description="JobPT Backend Service", version="1.0.0", - docs_url=None if is_prod else "/api/docs", - redoc_url=None if is_prod else "/api/redoc", - openapi_url=None if is_prod else "/api/openapi.json", ) # # Middleware to strip /api prefix for local development diff --git a/docker-compose.yml b/docker-compose.yml index 932b4ab..a8989af 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -67,25 +67,14 @@ services: - traefik.enable=true - traefik.docker.network=traefik - # --- Traefik Router (Backend /api) --- - - traefik.http.routers.jobpt-${ENVIRONMENT}-api.rule=Host(`${APP_HOST}`) && PathPrefix(`/api`) + # 백엔드에 /api 프리픽스가 포함되어 있으므로 stripPrefix 미들웨어 없이 그대로 전달 + - traefik.http.routers.jobpt-${ENVIRONMENT}-api.rule=Host(`${APP_HOST}`) && (PathPrefix(`/api`) || PathPrefix(`/docs`) || PathPrefix(`/redoc`) || PathPrefix(`/health`) || Path(`/openapi.json`)) - traefik.http.routers.jobpt-${ENVIRONMENT}-api.entrypoints=websecure - traefik.http.routers.jobpt-${ENVIRONMENT}-api.tls=true - traefik.http.routers.jobpt-${ENVIRONMENT}-api.tls.certresolver=le - traefik.http.services.jobpt-${ENVIRONMENT}-api.loadbalancer.server.port=8000 - # FastAPI Docs router - - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.rule=Host(`${APP_HOST}`) && (PathPrefix(`/docs`) || PathPrefix(`/redoc`) || PathPrefix(`/openapi.json`)) - - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.entrypoints=websecure - - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.tls=true - - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.tls.certresolver=le - - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.service=jobpt-${ENVIRONMENT}-api - - # /api prefix 제거 미들웨어 연결 - - traefik.http.middlewares.jobpt-${ENVIRONMENT}-api-stripprefix.stripprefix.prefixes=/api - - traefik.http.routers.jobpt-${ENVIRONMENT}-api.middlewares=jobpt-${ENVIRONMENT}-api-stripprefix - - # HTTP → HTTPS 리다이렉트 (Backend) + # HTTP → HTTPS 리다이렉트 (backend) - traefik.http.routers.jobpt-${ENVIRONMENT}-api-http.rule=Host(`${APP_HOST}`) && PathPrefix(`/api`) - traefik.http.routers.jobpt-${ENVIRONMENT}-api-http.entrypoints=web - traefik.http.routers.jobpt-${ENVIRONMENT}-api-http.middlewares=redirect-to-https@file