Gateway: serve web/ at root via StaticFiles; redirect / to /index-live.html
Some checks are pending
build / lint-test (push) Waiting to run
build / build-push (push) Blocked by required conditions

This commit is contained in:
kianiadee 2026-05-23 01:35:13 +03:00
parent 0fb24a8ade
commit 6dcfaffb7c
2 changed files with 14 additions and 2 deletions

View file

@ -38,9 +38,10 @@ COPY --from=builder /opt/venv /opt/venv
WORKDIR /srv/app WORKDIR /srv/app
COPY app/ ./app/ COPY app/ ./app/
COPY web/ /srv/web/
COPY scripts/entrypoint.sh /usr/local/bin/entrypoint.sh COPY scripts/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh \ RUN chmod +x /usr/local/bin/entrypoint.sh \
&& chown -R app:app /srv/app && chown -R app:app /srv/app /srv/web
USER app USER app

View file

@ -1,8 +1,10 @@
from collections.abc import AsyncIterator from collections.abc import AsyncIterator
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from pathlib import Path
from fastapi import FastAPI, Request from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse, RedirectResponse
from fastapi.staticfiles import StaticFiles
from slowapi.errors import RateLimitExceeded from slowapi.errors import RateLimitExceeded
from slowapi.middleware import SlowAPIMiddleware from slowapi.middleware import SlowAPIMiddleware
@ -15,6 +17,8 @@ from app.routers.auth import router as auth_router
from app.routers.push import router as push_router from app.routers.push import router as push_router
from app.routers.views import router as views_router from app.routers.views import router as views_router
WEB_DIR = Path("/srv/web")
@asynccontextmanager @asynccontextmanager
async def lifespan(_: FastAPI) -> AsyncIterator[None]: async def lifespan(_: FastAPI) -> AsyncIterator[None]:
@ -49,4 +53,11 @@ def create_app(role: str) -> FastAPI:
app.include_router(push_router) app.include_router(push_router)
app.include_router(views_router) app.include_router(views_router)
@app.get("/", include_in_schema=False)
async def _root() -> RedirectResponse:
return RedirectResponse(url="/index-live.html", status_code=307)
if WEB_DIR.is_dir():
app.mount("/", StaticFiles(directory=str(WEB_DIR), html=True), name="web")
return app return app