Add Docker production build and update README
- Multi-stage Dockerfile: builds frontend, packages with Python backend - admin.py serves frontend/dist as StaticFiles in production - docker-entrypoint.sh runs proxy + admin-api, exits cleanly if either dies - .dockerignore excludes .env, venv, tests, node_modules - Split requirements.txt (prod) / requirements-dev.txt (dev+test) - aiofiles added for StaticFiles support - start.sh: port checks before startup, venv auto-activation, trap cleanup - vite.config.js: clearScreen disabled - README rewritten to reflect current architecture Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
c8235ec274
commit
317c7f0340
@@ -1,8 +1,10 @@
|
||||
import os
|
||||
import secrets
|
||||
import httpx
|
||||
from pathlib import Path
|
||||
from fastapi import FastAPI, Depends, HTTPException, Request
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from sqlalchemy.orm import Session
|
||||
from database import get_db
|
||||
import crud, schemas
|
||||
@@ -119,3 +121,8 @@ async def get_ollama_models(db: Session = Depends(get_db), _ = Depends(require_a
|
||||
except Exception:
|
||||
models = []
|
||||
return {"models": models}
|
||||
|
||||
# Statisches Frontend ausliefern (nur im Produktivbetrieb, wenn dist/ existiert)
|
||||
_dist = Path(__file__).parent.parent / "frontend" / "dist"
|
||||
if _dist.exists():
|
||||
app.mount("/", StaticFiles(directory=_dist, html=True), name="frontend")
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
-r requirements.txt
|
||||
pytest==8.3.4
|
||||
pytest-asyncio==0.25.1
|
||||
pytest-cov==6.0.0
|
||||
@@ -1,5 +1,6 @@
|
||||
fastapi==0.115.6
|
||||
uvicorn[standard]==0.34.0
|
||||
aiofiles==24.1.0
|
||||
httpx==0.28.1
|
||||
sqlalchemy==2.0.36
|
||||
alembic==1.14.0
|
||||
@@ -9,6 +10,3 @@ python-jose[cryptography]==3.3.0
|
||||
bcrypt==5.0.0
|
||||
tiktoken==0.9.0
|
||||
python-dotenv==1.0.1
|
||||
pytest==8.3.4
|
||||
pytest-asyncio==0.25.1
|
||||
pytest-cov==6.0.0
|
||||
|
||||
Reference in New Issue
Block a user