- backup service: nightly pg_dump with retention, recorded as a run
- GET /api/v1/status/sources: 503 when a scheduled source or the backup
missed its last two slots (for Uptime Kuma)
- worker logs to ${DATA_DIR}/logs, so they survive redeploys
- procurement: reject implausible award dates (1900, contract end dates),
skip placeholder contractors, credit framework agreements to the BBG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/impressum and /datenschutz read the operator's details from the environment
so they stay out of this repository, and show a visible notice until set.
Portraits go through an allowlisted /api/img so visitors' IPs stay with us.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Initial import of Politrack, a self-hosted service that tracks Austrian
politicians from federal to municipal level - roles, votes, money flows,
statements, meetings, social media and legal proceedings - with every claim
linked to its sources.
- backend: FastAPI + Postgres/pgvector; adapter framework (fetch -> parse ->
load -> enrich) with robots.txt/TDM-aware fetching, a raw-response archive
for reparsing, and a claim/evidence model with corroboration
- sources: Parliament, Wikidata, EU Parliament/Commission, Council of
Ministers, Rechnungshof party reports and donations, procurement, RTR media
transparency, political ad libraries, WKStA, news feeds, Wikipedia edits,
Bluesky, Mastodon, public Telegram channels, YouTube and X (official API)
- web: Next.js frontend in German and English with typed API client
- mcp: MCP server for AI agents and RAG
- docs: architecture, data model, sources, legal notes, Unraid deployment and
contributor guides; Docker Compose setup for Unraid
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>