echos-ocr/docker-compose.yml
Randall Stillwell 7e423a3e50 Build Echo OCR app: full-stack response card scanner
- Next.js 15 + Tailwind v4 + shadcn/ui + TanStack Table
- Prisma + PostgreSQL schema for ResponseCard, ProcessingJob, AppSettings
- Ollama vision integration with structured extraction prompts
- PDF-to-image pipeline with pdf2pic + sharp
- MinIO S3 storage for uploaded files and extracted images
- Chokidar-based folder monitoring for automatic processing
- REST API (9 endpoints) ready for Monday.com integration
- Dashboard with filterable data table, chip filters, bulk actions, CSV export
- Card detail page with editable fields and side-by-side scanned images
- Upload page with drag-and-drop and real-time processing queue
- Settings page for Ollama, folder watch, and Monday.com config
- Dockerfile (multi-stage) + docker-compose for local dev
- Configured for Coolify deployment at echo.stillwell.cloud

Made-with: Cursor
2026-03-10 07:17:45 -05:00

55 lines
1.2 KiB
YAML

services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://echos_ocr:localdev@postgres:5432/echos_ocr
- OLLAMA_BASE_URL=http://host.docker.internal:11434
- OLLAMA_MODEL=llava:7b
- MINIO_ENDPOINT=minio
- MINIO_PORT=9000
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- MINIO_BUCKET=echos-ocr
- WATCH_DIR=/data/watch
volumes:
- watch-data:/data/watch
depends_on:
postgres:
condition: service_healthy
minio:
condition: service_started
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_USER=echos_ocr
- POSTGRES_PASSWORD=localdev
- POSTGRES_DB=echos_ocr
ports:
- "5432:5432"
volumes:
- pg-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U echos_ocr"]
interval: 5s
timeout: 5s
retries: 5
minio:
image: minio/minio
command: server /data --console-address ":9001"
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
volumes:
- minio-data:/data
volumes:
pg-data:
minio-data:
watch-data: