Add HTTP API server, Android app, and CI build/publish pipeline
build / build (push) Failing after 14s

- docker-compose.yml + tooling-container/src/server.py: serve
  preprocess/OCR/extract over an async job API (POST /jobs, GET
  /jobs/{id}) instead of manual host-script runs per receipt
- android/: Kotlin/Compose app - capture a receipt photo, poll job
  progress, review/edit extracted fields, save locally (Room), export
  to CSV/ODS
- .gitea/workflows/build.yml: build the debug APK and publish it to
  dl.ladkau.de on push
- build-image.sh: also pull ollama/ollama so all pipeline images are
  ready after one script
- add project logo (also used for the app's launcher icon/splash)
This commit is contained in:
ml
2026-09-29 12:58:58 +02:00
parent 7cea285ec3
commit 516f5d3b7d
54 changed files with 2101 additions and 3 deletions
+35
View File
@@ -0,0 +1,35 @@
# Runs the pipeline as a long-lived HTTP API for the Android app, on top
# of the same tooling-container image the numbered host scripts use.
# `docker compose up` alone is enough: the api service waits for Ollama
# and pulls the model itself (see tooling-container/src/server.py).
#
# The numbered host scripts (0_run_ollama.sh, 1/2/3_*.sh) and
# test_batch.sh are untouched and remain the way to inspect/test the
# pipeline stage by stage; this is the additive "serve it for real" path.
#
# Usage: docker compose up -d
# API reachable at http://<this-host>:8080 from any device on the LAN.
services:
ollama:
image: ollama/ollama
volumes:
- fuelish-ollama-data:/root/.ollama
restart: unless-stopped
api:
build:
context: ./tooling-container
restart: unless-stopped
depends_on:
- ollama
environment:
OLLAMA_URL: http://ollama:11434/api/chat
OLLAMA_BASE_URL: http://ollama:11434
OLLAMA_MODEL: qwen2.5:3b
command: ["uvicorn", "server:app", "--app-dir", "/opt/app/src", "--host", "0.0.0.0", "--port", "8000"]
ports:
- "8080:8000"
volumes:
fuelish-ollama-data:
name: fuelish-ollama-data