403Webshell
Server IP : 202.61.199.114  /  Your IP : 216.73.217.139
Web Server : nginx/1.22.1
System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : web20 ( 1018)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/clients/client2/web31/web/plate-ai-api/app/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/clients/client2/web31/web/plate-ai-api/app/main.py
"""FastAPI-Anwendung (Einstiegspunkt).

Start (Dev):   uvicorn app.main:app --reload
Start (Prod):  gunicorn -c deploy/gunicorn_conf.py app.main:app
"""
from __future__ import annotations

import time
import uuid

from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware

from .api.router import api_router
from .config import settings
from .core.errors import register_exception_handlers
from .core.logging import configure_logging, get_logger

configure_logging()
logger = get_logger("plate_ai.app")

app = FastAPI(
    title="plate-ai-api",
    version="0.1.0",
    description="Kennzeichen- und Fahrzeugerkennung als API (DE/EU-Fokus).",
    docs_url="/docs" if not settings.is_production or settings.debug else None,
    redoc_url=None,
)

if settings.cors_origins_list:
    app.add_middleware(
        CORSMiddleware,
        allow_origins=settings.cors_origins_list,
        allow_methods=["GET", "POST", "DELETE"],
        allow_headers=["*"],
    )


@app.middleware("http")
async def add_request_context(request: Request, call_next):
    request.state.request_id = request.headers.get("X-Request-ID") or str(uuid.uuid4())
    start = time.perf_counter()
    response = await call_next(request)
    response.headers["X-Request-ID"] = request.state.request_id
    response.headers["X-Response-Time-ms"] = str(int((time.perf_counter() - start) * 1000))
    return response


register_exception_handlers(app)
app.include_router(api_router)


@app.on_event("startup")
async def _startup():
    if settings.secret_key.startswith("CHANGE_ME"):
        logger.warning("insecure_default_secret", extra={"event": "config_warning"})
    logger.info("startup", extra={"event": "startup"})


@app.get("/")
def root():
    return {"service": "plate-ai-api", "version": "0.1.0", "docs": "/docs",
            "health": f"{settings.api_prefix}/health"}

Youez - 2016 - github.com/yon3zu
LinuXploit