Migrate to PostgreSQL + add FastAPI webapp for Coolify deploy
Backend migration: - Replace pyodbc/SQL Server with psycopg2/PostgreSQL throughout - Rewrite Database class with portable SQL: SERIAL, ON CONFLICT, NOW() - Lowercase table names (rip_help_files, rip_help_sections) - Postgres convention - libpq connection string format in HELP_DB_CONN Webapp (webapp/): - FastAPI app: GET /, GET /images/<f>, GET /home-image, GET /api/sections, POST /api/keywords/<code>, GET /healthz - Jinja2 template extracted from generate_html.py with HTTP image URLs - Direct keyword save to DB (no JSON download detour) - Same prefix scoping as CLI tools (?prefix=RIP) Deployment: - Dockerfile (python:3.12-slim + uvicorn) - docker-compose.yml for local dev - requirements-webapp.txt (minimal, no Windows-only deps) - .dockerignore excludes pipeline scripts and BAT files - README updated with webapp section and Coolify deploy guide Also: switch AI model to claude-haiku-4-5 (~3x cheaper, same quality for this task) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
19
Dockerfile
Normal file
19
Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
# Slim Python image; psycopg2-binary включва свои libs, не е нужен build deps
|
||||
FROM python:3.12-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Сваляме само файловете нужни за webapp-а (не и Windows-only deps)
|
||||
# Затова инсталираме отделен webapp-requirements без pywin32 / pdfplumber / docx
|
||||
COPY requirements-webapp.txt /app/
|
||||
RUN pip install --no-cache-dir -r requirements-webapp.txt
|
||||
|
||||
# Кода
|
||||
COPY webapp /app/webapp
|
||||
|
||||
# Изходна директория за картинките — Docker volume mount
|
||||
ENV OUTPUT_DIR=/data/help_output
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["uvicorn", "webapp.main:app", "--host", "0.0.0.0", "--port", "8000", "--proxy-headers", "--forwarded-allow-ips=*"]
|
||||
Reference in New Issue
Block a user