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>
22 lines
829 B
YAML
22 lines
829 B
YAML
# Local dev / Coolify production
|
||
# За local: docker compose up --build
|
||
# За Coolify: качваш през git, Coolify сам пуска docker build + run
|
||
version: '3.8'
|
||
|
||
services:
|
||
webapp:
|
||
build: .
|
||
container_name: rip-help-webapp
|
||
environment:
|
||
# libpq формат (Postgres). Коригирай към твоя Postgres host.
|
||
HELP_DB_CONN: "host=192.168.88.18 port=5432 dbname=rip_help_system user=sa password=Parola~12345!!!"
|
||
OUTPUT_DIR: "/data/help_output"
|
||
HOME_IMAGE: "/data/help_output/Bairaci.png"
|
||
volumes:
|
||
# Картинките се очакват в OUTPUT_DIR/images/
|
||
# На сървъра ще качваш с WinSCP/rsync (напр. /home/sabo/share/help_output)
|
||
- ./data:/data/help_output:ro
|
||
ports:
|
||
- "8000:8000"
|
||
restart: unless-stopped
|