Technisches Systemprotokoll & Entwicklungsdokumentation

Projekt: Archivarius – CMS für Sammlungsverwaltung

Dokumententyp: Technisches Architektur- & Meilenstein-Protokoll (v0.2 → v0.3)

Zielhardware: Raspberry Pi 5 (64-bit, Raspberry Pi OS Lite, 1 GB RAM)

Laufzeitumgebung: Docker Engine 29.7.2 & Docker Compose v5.4.0

Dokumentationsstand: 20.08.2026 – Migrationsstand 8216f3a30af2 bestätigt

1. Ursprüngliche Vision & Zielbild

Archivarius ist als lokal betriebenes, KI-gestütztes Collection Management System (CMS) konzipiert, das die Erfassung, Katalogisierung, Suche und Organisation einer privaten Sammlung automatisiert.

1.1 Kernphilosophie

1.2 Geplanter Funktionsumfang

BereichGeplante FunktionZiel
ErfassungBarcode-/ISBN-Scan, Kameraaufnahme, Manuelle EingabeSchnelle Objekterfassung ohne Tippaufwand
MetadatenAutomatischer Abruf externer Daten & CoversStammdaten automatisch vervollständigen
StandorteHierarchische Schachtelung (Raum → Regal → Fach)Lückenlose physische Auffindbarkeit
KI & OCRCover-Erkennung, Ähnlichkeitssuche via pgvectorErfassung und Visualisierung automatisieren
SchnittstellenPlugin-System für MetadatenproviderZukunftssichere Erweiterbarkeit

2. Systemarchitektur & Laufzeitumgebung

Das System wird über Docker Compose orchestriert und ist ressourcenschonend für den Raspberry Pi 5 konfiguriert.

2.1 Container-Setup & Bindings

Container-Name Basis-Image Port-Binding Spezifikationen & Speicherlimits
archivarius-postgres postgres:16-alpine 127.0.0.1:5432:5432 Optimiert: shared_buffers=64MB, effective_cache_size=256MB, max_connections=10.
archivarius-api python:3.12-slim 0.0.0.0:8000:8000 FastAPI-Backend mit Uvicorn, SQLAlchemy 2.0 (AsyncIO) und Alembic.

2.2 Verzeichnisstruktur

.
├── alembic/                  # Alembic Migrationsskripte
├── backend/                  # Applikationscode & Test-Suite
│   ├── app/
│   │   ├── api/              # REST Endpunkte (Router)
│   │   ├── core/             # DB Engine, Session Handler & Config
│   │   ├── models/           # SQLAlchemy ORM Domänenmodelle
│   │   ├── repositories/     # Data Access Layer
│   │   └── schemas/          # Pydantic Schemas (DTOs)
│   └── tests/                # Async Pytest Test-Suite
├── database/                 # PostgreSQL Persistent Mount (/database/data)
└── uploads/                  # Medien-Speicher (Covers, Objektfotos)

3. Modell-Konsolidierung & Datenbankstand (Meilenstein v0.2)

Das ORM-Schema wurde konsolidiert, um Mapping-Fehler, zirkuläre Imports und Primary-Key-Konflikte zu beheben.

3.1 Modell-Anpassungen im Detail

3.2 Bestätigter Datenbank- & Migrationsstand

Der Abgleich zwischen der PostgreSQL-Datenbank und Alembic wurde erfolgreich verifiziert:

PrüfpunktErgebnis / VersionStatus
Datenbank-Schema9 Relationen (inkl. media_types, items, works)OK
Alembic Head8216f3a30af2 (Revision: Add Media Types)OK
alembic_version in DB8216f3a30af2OK
API Healthcheck{"status":"ok","database":"ok"}OK

4. Test-Infrastruktur & Qualitätssicherung

Für automatisierte Tests ohne Beeinträchtigung der PostgreSQL-Produktivdatenbank wurde eine asynchrone SQLite-Testumgebung aufgebaut.

4.1 Test-Konzept & Ergebnisse

tests/api/v1/test_conditions.py::test_create_condition PASSED
tests/api/v1/test_conditions.py::test_create_duplicate_condition_fails PASSED
tests/api/v1/test_conditions.py::test_list_conditions PASSED
tests/api/v1/test_conditions.py::test_get_condition_by_id PASSED
tests/api/v1/test_conditions.py::test_delete_condition PASSED
tests/api/v1/test_items.py::test_create_and_filter_item PASSED

====================== 6 passed in 4.58s ======================

5. Roadmap & Nächste Schritte (Meilenstein v0.3)

Nach Abschluss von v0.2 richtet sich der Fokus auf den Ausbau der Geschäftslogik und der Schnittstellen.

5.1 Arbeitspakete für v0.3 (REST API)

6. Betriebsbefehle & Operations-Cheatsheet

# System im Hintergrund starten
docker compose up -d

# Container- & Health-Status prüfen
docker compose ps
curl http://localhost:8000/health

# Test-Suite im API-Container ausführen
docker exec -it archivarius-api pytest -o asyncio_mode=auto tests -v

# Alembic Migrationsstand abfragen
docker compose exec api alembic current
docker compose exec postgres psql -U archivarius -d archivarius -c "SELECT * FROM alembic_version;"
Status-Hinweis: Der Migrationsstand zwischen Alembic und PostgreSQL ist synchron auf 8216f3a30af2. Das Backend ist bereit für die Implementierung der Repositories und Router in v0.3.