MEGA-BOQ-WEBAPP/docker-compose.yml
MEGA INFRA 301d0fff44 MEGA INFRA BOQ Converter — Candy PDF to consultant Excel
Reads our Candy PDF (deterministically, no OCR or model needed) and populates
the consultant's own workbook using their formulas, column layout and PAYMENT
column. Nothing is ever silently overwritten: every disagreement is reported,
can be settled inside the app, and regenerated.

- extract   Candy text PDF -> tree (x-position column detection)
- template  layout detect, sequence align, write, totals, overrides
- validate  qty x rate and children-vs-subtotal reconciliation
- profiles  per-consultant layout profiles, stored on a volume

Shipped with a Dockerfile + docker-compose for Coolify.
2026-10-01 02:32:13 +02:00

41 lines
1.3 KiB
YAML

# MEGA INFRA · BOQ Converter
#
# Deploy on Coolify: New Resource -> Docker Compose -> point it at this repo
# and set the compose file to `docker-compose.yml`. Coolify builds the image
# from the Dockerfile, publishes the port, and puts its own HTTPS in front.
services:
boq-converter:
build:
context: .
dockerfile: Dockerfile
image: mega-infra/boq-converter:latest
container_name: mega-boq-converter
restart: unless-stopped
# Coolify routes to the first exposed port. Declaring it explicitly stops
# it guessing from the Dockerfile.
expose:
- "8501"
environment:
# Where the per-consultant layout profiles are written. MUST be on the
# volume below or every redeploy forgets who is who.
BOQ_PROFILES: /data/profiles
STREAMLIT_BROWSER_GATHER_USAGE_STATS: "false"
TZ: Africa/Johannesburg
volumes:
# Named volume, so saved consultant profiles survive a rebuild. Without
# this the "remember this consultant's layout" feature resets every deploy.
- boq-profiles:/data/profiles
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:8501/_stcore/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
volumes:
boq-profiles: