Add project scaffold #1

Merged
mcp-bot merged 1 commit from feature/scaffold into develop 2026-11-01 19:53:15 +01:00
Member

Why

Every later feature needs the same foundation: a running FastAPI app, migrations, a test setup against a real Postgres and an image that builds on both target architectures. Building this first means architecture and licensing problems surface before any feature depends on them.

What

  • uv project with FastAPI app factory, settings, /health and German base layout
  • Security headers with a strict same-origin CSP
  • Tailwind standalone CLI (pinned, sha256 verified), vendored htmx and SortableJS
  • Alembic with unaccent, pg_trgm, f_unaccent and a German ICU collation
  • pytest against a separate database built through alembic upgrade head
  • make lint includes a license allow-list, a test enforces SPDX headers
  • Dockerfile, compose.yaml, compose.dev.yaml, .env.example, test.yaml

Verification

  • make lint and pytest pass locally (24 tests)
  • Image built natively on arm64: runs as uid 1000, migrations run on start, /health returns ok, tesseract --list-langs shows deu
  • test.yaml on the Forgejo runner is verified by this PR for the first time
## Why Every later feature needs the same foundation: a running FastAPI app, migrations, a test setup against a real Postgres and an image that builds on both target architectures. Building this first means architecture and licensing problems surface before any feature depends on them. ## What - uv project with FastAPI app factory, settings, `/health` and German base layout - Security headers with a strict same-origin CSP - Tailwind standalone CLI (pinned, sha256 verified), vendored htmx and SortableJS - Alembic with `unaccent`, `pg_trgm`, `f_unaccent` and a German ICU collation - pytest against a separate database built through `alembic upgrade head` - `make lint` includes a license allow-list, a test enforces SPDX headers - Dockerfile, `compose.yaml`, `compose.dev.yaml`, `.env.example`, `test.yaml` ## Verification - `make lint` and `pytest` pass locally (24 tests) - Image built natively on arm64: runs as uid 1000, migrations run on start, `/health` returns ok, `tesseract --list-langs` shows `deu` - `test.yaml` on the Forgejo runner is verified by this PR for the first time
Add project scaffold
All checks were successful
test / test (pull_request) Successful in 1m14s
438593531e
mcp-bot merged commit 6d7d524ecf into develop 2026-11-01 19:53:15 +01:00
mcp-bot deleted branch feature/scaffold 2026-11-01 19:53:16 +01:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
makeitsystems/Notenwart!1
No description provided.