5 Commits

Author SHA1 Message Date
5ae4aba4a8 Lock issue-core from Gitea registry 2026-06-05 20:42:33 +02:00
483a4dfd3b Add multi-stage Dockerfile for container deployment
Three-stage build:
- assets: Node 22 + Vite + Tailwind CSS 4 → static/dist/main.css
- python-deps: uv sync --frozen --no-dev against pyproject + uv.lock,
  with the issue-core path dependency satisfied via a BuildKit
  named context (--build-context issue-core=...)
- runtime: python:3.12-slim-bookworm + libpq5 + curl, non-root 'app'
  user, collectstatic at build time, gunicorn on :8000,
  /health/ HEALTHCHECK every 30s

Adds gunicorn>=22 to project dependencies (was missing).

Build:
  docker build --build-context issue-core=/home/worsch/issue-core \
    -t gitea.coulomb.social/coulomb/vergabe-teilnahme:<tag> .

Smoke-verified: container reports (healthy) and /health/ returns
{"status": "ok"} without a database connection.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 23:32:51 +02:00
17f511fbcd Rewire issue tracker integration from issue-facade to issue-core
issue-facade was renamed to issue-core. Update the dependency
declaration and the three Python imports it touched. Model field
names (issue_facade_backend, issue_facade_id) and the Django setting
ISSUE_FACADE_LOCAL_DB stay as-is — they are persisted/semantic
identifiers, not part of the package wiring.

All 20 aufgaben tests pass after the rewire.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 22:33:28 +02:00
a907ed6f74 issue-facade integration 2026-05-14 11:30:30 +02:00
14b0bc6d01 Prototype implementation 2026-05-08 14:26:48 +02:00